最近為中文社區寫了一篇developer career path的稿子

來源: lvalv 2020-10-19 06:53:23 [] [舊帖] [給我悄悄話] 本文已被閱讀: 次 (9859 bytes)
本文內容已被 [ lvalv ] 在 2020-10-19 07:10:49 編輯過。如有問題,請報告版主或論壇管理刪除.

職壇很多資深的同行,希望有機會和大家分享討論。

=======================================================================

今天借這個平台和大家聊聊developer的career path。我思考這個問題很多年了,一直試圖找到適合自己的道路。希望和有類似困擾的朋友們分享,幫初入行的朋友少走彎路。也借此機會和群裏資深的朋友們討論,互相啟發。
 
Developer是比較generic的崗位,幾乎所有的行業都需要,市場需求一直強勁。初級崗位對相關學曆和交流要求較低,收入不錯,機會多。因此吸引了大量的理工背景的移民轉行,新生代年輕人也源源不斷加入。
 
說說負麵的。Developer工作強度高(大概率加班),在非科技行業visibility低(升職機會少),知識更新的速度快,入行要有終身學習的覺悟。
我父親退休前是機械類工程師:前20年學習和積累經驗,後20年德高望重。Developer雖然也叫Software Engineer,但傳統工程師的career path並不適用。因為技術淘汰周期短,經驗貶值快,產品重寫/部門重組/公司倒閉的周期也越來越短。我很喜歡Anne之前分享的一句話“沒有job security,但是有career security。”活到老學到老是入行必須有的覺悟(重要的話多說幾遍)。
 
Developer的career path有三個方向:
  1. 橫向的不同的技術領域間的切換。比如Web轉Mobile,backend轉Big Data。
  2. 縱向的成長,就是內部升職,承擔更大責任,屬於leadership層麵的成長。
  3. 斜向的發展 (念著真別扭),轉行其他崗位,比如:PM, BA, DA(Data Analysis),QA, Product Manager等等。
幾個方向可以在不同時期組合進行。比如早期更換技術領域擴大視野,中期在穩定的公司多做幾年爭取升職。因人而異,沒有定式。  
當然還有一個方向,創業自己開公司。大話題,咱今天就不討論了。
 
先說橫向的發展,我根據市場需求,粗分成:Web, Mobile, Data Engineer, Machine Learning Engineer, DevOps幾個領域,每個都有自己的技術stack和特點。新手入門到成為senior至少需要幾個industry level的項目,5年+的時間沉澱。
 
Web Developer是個大類。細分有web frontend, backend和full stack等等。
很多轉行新人從web frontend開始,自學流行的framework(比如REACT, Angular,Vue)開啟職業生涯。
Full stack是這幾年才流行起來的title,但是職責並不新,要全棧技能:Frontend UI開發和後台(比如數據庫)都有涉足,可以獨立完成中小型項目。
Backend 需要一定的經驗或相關學曆,database, streaming, distributed system,一般大型複雜度高的係統會有專門的backend developer崗位。歸在web裏不太精確,可以單提出來算一類。
Web的技術stack最多樣化,幾乎所有的主流語言都有web framework。Backend的技術更是源遠流長、百花齊放,篇幅有限不展開了。
 
Mobile Developer。Mobile是繼Web後的一大熱點,大約10年前開始爆炸增長(iPhone問世)。很多web developer在這個時期轉到Mobile領域。主要技術stack有iOS 的SWIFT/Objective C,Android的Kotlin/Java等等。還有hard core用C/C++寫底層模塊。這些年一些IoT embeded system也用Android開源係統。
我的觀察,Mobile和Web fullstack developer是市場需求最大的崗位,大中小企業都需要。做contract,自己創業,或者“接私活”的機會也很多。當然同時競爭者也多。
 
Data Enginner。隨著Mobile/IoT的增長,服務器端更大的數據量催熟了Distributed System和Big Data產業化。Big Data技術是Hadoop stack和近年更流行的Cloud solutions。Data Engineer這幾年供不應求,有做ETL和傳統backend的developer進來,同時因為是新技術,相關專業畢業生競爭起來也不落下風。
Data Enigneer經常和Data Scientist緊密合作,需要一定數據建模和數據分析的能力。有機會成長為Data Analysis和Data Scientist。
Big Data的技術本身並沒多hard core,今後會合並到傳統backend工具箱。在Cloud的大潮下,會有越來越多business friendly的工具,技術門檻將持續降低,會SQL就能做Big Data正在發生。
 
Machine Learning Engineer(MLOps)。Machine Learning的技術理論幾十年前就有,但是沒有海量的數據train model一直停留在lab階段。近年Big Data的成熟,直接引爆了ML/AI市場。據說現在Computer Science的在校生,10個有9個想做Data Scientist。我這幾年參與了幾個Big Data, ML的innovation類型的項目,說說我對這個方向的觀察。
Data Scientist不一定要PHD和計算機背景,最重要的是很強的數學和分析能力。AI/ML類型的項目從實驗室走向工業化,需要大量的automation, 模塊化和傳統的軟件開發流程銜接,湧現了新崗位。比如側重programing(而不是分析)的ML Engineer。各巨頭也紛紛推出MLOps framework和solution。又是一個硝煙彌漫的新戰場。
 
DevOps。顧名思義,Development + Operation。前麵的大牛們做了很多講解,還有係統的培訓。據我觀察,更多DevOps從業人員來自Operation方向。Developer community反響相對平靜(可能因為熱點太多)。我理解DevOps的終極理想是取消Dev和Ops之間的壁壘。DevOps應該是一個從開發到部署all in one的崗位,不僅限於局部automation。這不是單純的技術革新,更涉及流程和機構重組。Cloud technology會催化這個趨勢。又一個大坑,不展開說了。
 
以上technical domains是比較通用,市場需求大的分類,不涵蓋研發類的領域,比如數據庫、操作係統研發,底層算法,量子計算機(!)等等,歡迎有insights的朋友來掃盲。
 
花了很大篇幅說橫向的技術domain展開。我個人的經驗,早期職業生涯應該盡量多做不同的項目,嚐試不同的技術stack,堅持持續學習的好習慣。有效的辦法是每幾年換一次工作或公司內部轉組。
有一條略顯投機的”高薪“之路是追新技術,打市場的時間差。比如ML Engineer現在方興未艾,有準備的朋友在市場井噴的時候大概率能拿到高薪工作。但是這個領域是不是真的適合自己,有沒有發展空間,是每個人自己的功課。
 
科技行業從不缺機會,每幾年就一波新技術的浪潮。如果覺得自己不適合現在的領域,或者缺乏發展空間,觀察、等待、為下一個適合自己的浪頭做準備,不失為一個好的策略。
 
技術說到底是為business服務才有價值。 追技術不是唯一的出路,也不一定是最好的出路 。很多朋友積累行業知識和人脈,最後會穩定在一個行業裏。比如金融銀行業,能源行業,廣告行業等等。
 
 
縱向發展,內部升職。這方麵大家身邊的例子很多,有自己的理解。值得一提的是技術路線v.s.管理路線。一般大的公司有這個劃分,小公司可能不分這麽清楚。
  • 技術路線管項目不管人,比如tech lead, architect。
  • 管理路線是people manager,有人report給你,要做performance review,要花更多精力coach team。比如manager, director, VP, CTO。

兩者都是leadership role,但側重不同。

我做過兩年管理兼技術(team lead),後來回到了技術方向做solution architect。現在看管理的經驗很重要,即使不立誌去爬大公司的梯子,leadership對擴大視野和技術職位升遷都有幫助。
 
 
斜向發展(還是念著別扭),轉崗到BA, PM,QA, Product等等崗位。這是另一個角度的職業思考。Developer是個需要耐得住寂寞的工作。特別在非科技行業,責任相對小、visibility低。也許你的性格和抱負更適合其他的崗位,有開發經驗對這些職業發展也是bonus。建議有興趣的朋友向這些方麵的大牛們谘詢。
 
 
說了很多,感謝您的耐心閱讀。以上總結基於我平時的觀察思考,與同行的交流,還有閱讀。可能有bias,歡迎交流討論。

所有跟帖: 

好文章!讀完了。 多謝分享! -美國老土- 給 美國老土 發送悄悄話 美國老土 的博客首頁 (0 bytes) () 10/19/2020 postreply 07:50:18

好文!謝謝分享! -viewfinder- 給 viewfinder 發送悄悄話 viewfinder 的博客首頁 (0 bytes) () 10/19/2020 postreply 08:19:41

隔行如隔山,學習了 -米奇的廚房- 給 米奇的廚房 發送悄悄話 米奇的廚房 的博客首頁 (0 bytes) () 10/19/2020 postreply 10:13:14

讚!難得的好文章。 -katies- 給 katies 發送悄悄話 (101 bytes) () 10/19/2020 postreply 10:44:02

謝謝。正在寫英文版的,會發到Medium上。 -lvalv- 給 lvalv 發送悄悄話 (32 bytes) () 10/19/2020 postreply 12:46:14

謝謝! -katies- 給 katies 發送悄悄話 (0 bytes) () 10/19/2020 postreply 14:00:31

好文。問個題外話,後來那個日本人,你怎麽handle的? -加州lalin- 給 加州lalin 發送悄悄話 加州lalin 的博客首頁 (0 bytes) () 10/19/2020 postreply 16:42:33

沒要。抓緊時間從外麵招了一個人。 -lvalv- 給 lvalv 發送悄悄話 (62 bytes) () 10/19/2020 postreply 17:21:46

哈哈,讚一個。這種人蠻普遍的。 -加州lalin- 給 加州lalin 發送悄悄話 加州lalin 的博客首頁 (0 bytes) () 10/19/2020 postreply 17:30:38

好文!認真讀完了,覺得更適合年輕人看。 -小河石子- 給 小河石子 發送悄悄話 小河石子 的博客首頁 (161 bytes) () 10/19/2020 postreply 16:58:39

確實是這樣的 -lvalv- 給 lvalv 發送悄悄話 (97 bytes) () 10/19/2020 postreply 19:27:39

還有一個打破盒子的方向,轉做投資 -justforfun- 給 justforfun 發送悄悄話 (122 bytes) () 10/19/2020 postreply 21:22:25

確實,應該有投資觀念。 -lvalv- 給 lvalv 發送悄悄話 (65 bytes) () 10/20/2020 postreply 05:35:27

好文章,不在此行但希望給孩子看。期待英文版 -SunnyCreeks- 給 SunnyCreeks 發送悄悄話 (0 bytes) () 10/20/2020 postreply 11:00:30

好文,謝謝分享! -三裏店- 給 三裏店 發送悄悄話 三裏店 的博客首頁 (0 bytes) () 12/03/2020 postreply 15:00:28

加跟帖:

  • 標題:
  • 內容(可選項): [所見即所得|預覽模式] [HTML源代碼] [如何上傳圖片] [怎樣發視頻] [如何貼音樂]