客戶端的職業發展是不是相對較窄?
大家好,我是安醬。
說回標題,這個問題其實是有些大的,因為這實際上是一個選擇,很難拋開個人興趣、行業方向、細分領域以及成長規劃等因素,來單純的判斷哪個更好。
事實上,對于應屆生而言,客戶端和服務端的選擇爭議還是蠻大的。如果這個問題在脈脈上提問的話,基本上肯定都是勸退客戶端的。因為服務端顯而易見的崗位選擇更多,行業公司選擇也更多,特別是在二三線城市。但畢竟我也是客戶端的相關從業者,可能在某些角度上比別人看的很清晰一些。
說多了無益,我就簡單講講我在公司的工作內容吧。也給大家一個參考。
我現在在抖音客戶端開發部門,負責的是抖音app端的開發。目前抖音的DAU已經是上億級別,這就意味著每天會有幾億人打開這么個客戶端軟件。那我們的工作是什么呢?
改改UI?調調動畫?這可能是大多人對客戶端的理解。但其實太過于片面,在如此巨無霸的項目里,即便是增加轉場動畫,也需要考慮很多東西,比如與其它業務的代碼耦合問題,后期的架構維護和擴展等問題。這些都是對代碼能力、架構設計能力的要求。
除此之外,由于客戶端天然的屬性,所以在開發的時候更需要掌握對操作系統的理解,才能寫出性能更高體驗更好的代碼。因而在技術層面,客戶端開發很多時候需要去鉆研操作系統層面甚至物理資源層面的底層原理,才能讓app啟動時更快更絲滑,才能讓你在刷短視頻時更流暢,才能讓服務端承受的壓力不會那么大。
所以我能告訴你的是,客戶端開發入門的門檻很低,相比于服務端需要掌握一些復雜的框架,客戶端可能畫個按鈕畫個表單,就會讓人已經掌握了客戶端開發的錯覺。
實際上,客戶端開發的技術天花板并不會比服務端低。甚至在很多層面上,對個人底層基礎以及計算機科學層面的要求會更高。而對于大多數的服務端而言,說實話走到后面更多的是對于框架自身理解以及架構設計的要求。一個更偏底層,一個更偏應用。
但是話又說回來,你要是問我建不建議去客戶端。我的答案是否定的。畢竟現在環境就是這樣,在所有人都在唱衰客戶端的風氣下,倘若你沒有對客戶端的堅定興趣,以及雖千萬人吾往矣的勇氣,還是選擇更穩定更安全的服務端會好點。至少大概率不會后悔。
大多數人的技術生涯都是有限的,可能都是想著寫幾年代碼賺些錢,然后就會轉行。這樣的話,服務端開發可以擁有更多的選擇,在就業崗位的選擇上也更多。至少不會面臨著去三四線城市找不到客戶端開發工作的困境。
所以如果你有這樣的疑問,本身就是已經被勸退客戶端了。那大概率別人給的建議已經沒有了意義,所以還是堅持本心,突破自己的舒適區,盡量做出不讓自己后悔的選擇吧。