天天看點

程式員是青春飯嗎-最新研究顯示程式員的能力從50 歲後才會開始下降

程式員是青春飯嗎

很多人都說寫代碼最多到 35 歲,妥妥的青春飯,然而科學分析不這麼認為。《Is Programming Knowledge Related to Age?》論文對 1694981 名 StackOverflow 使用者的研究發現,程式員的平均年齡是 30.3 歲,其中資料清洗後參與分析的使用者是 84248 名程式員,平均年齡 29.02 歲。在年齡分布中,人數最多的是 25 歲,中位數是 29 歲。然而分析發現,程式員的能力從 25 歲左右開始上升,一直到 50 歲後才會開始下降。論文還研究了程式員對新技術的跟進,發現不同年齡的程式員對新技術的學習并沒有差太多。大齡程式員對某些新技術的學習甚至超過年輕程式員。是以論文得出的結論是,程式員的技術能力上升可以到 50 - 60 歲,并且大齡程式員跟進新技術的能力和年輕程式員相差不多。

從身邊的觀察發現,30 歲的程式員積累了大量經驗,可能才剛剛成為優秀的人才,架構設計能力、上司力需要大量的實踐積累,不是能夠輕松掌握的。網際網路是一個新興行業,大部分從業者都是後期加入的,平均年齡要低于其他行業。

30 歲後的職業規劃

一個程式員在 30 歲後,可能面臨技術專家、技術 Leader、架構師三個發展方向的選擇。

技術專家很好了解,在一個領域深耕,對業務和代碼都有很好深刻的了解,經驗豐富,能夠用技術解決公司遇到的實際問題。成為技術專家需要大量的實踐積累,正常發展情況下差不多都要到 30 歲左右。正常來說,技術專家是人才梯隊中非常重要的角色,對技術方案設計有很大影響。

前幾天看到有個公衆号轉載一篇高并發的文章,一個看起來一年内工作經驗的作者展示了漏洞百出的技術方案,還能發上線,可見技術專家對團隊的重要作用。沒有技術專家的團隊,人才梯隊很難建立起來,團隊内成員的成長可能也會受影響。

技術 Leader 會開始涉及技術管理方面的事務。注意這裡是 Leader,不是 Manager。Manager 是管理者,而 Leader 更多是上司者。作為技術 Leader,需要重點保障核心業務、做技術建設、提升業務效果。為團隊設定合理的目标,做好排兵布陣,協調各個團隊和資源。是以業内往往稱為“技術管理”而不是“管理”。

技術 Leader 比團隊其他同學視野更開闊,對長遠的發展趨勢看的更準,有技術前瞻性。雖然已經成為團隊中最牛逼的程式員之一,但是也要逐漸學會借他人之手寫代碼,專注于寫代碼的時間比以前減少很多,而這一點正是優秀程式員轉變為技術 Leader 所面臨的最大挑戰之一。

架構師是一個非常出名的稱謂了,然而卻很少有專門的架構師崗位。阿裡前幾年有架構師崗位,不過現在也回歸“技術專家”這樣的純技術崗位了。架構師必須是最出色的程式員,擁有技術深度和廣度,有系統性的認知和技術前瞻性。

架構師通常和技術 Leader 有部分重疊,尤其是在團隊規模比較小的時候,兩者往往是同一個人。随着軟體規模的增大,架構師開始在比技術 Leader 更高的高度上看待問題,這時候架構師和技術 Leader 開始分化為不同的人。架構師也不一定是公司任命的權威上司者,但是在團隊内部通常有非權威上司力,是團隊内部非常信任的技術上司者。

這三個發展方向可能會有重疊,對個人來說,還是最好想清楚側重點是什麼。

掌握軟體系統方法論

越是到職業發展的後期,越不能依靠代碼本身。所有人都使用着同樣的開發語言,掌握着同樣的文法和腳本。作為執行者很難展現出優勢,總不能說掌握的文法和二方包比别人多吧。優秀的程式員能比别人寫出更好的代碼,主要還是在如何寫代碼,以及代碼背後的思考,也就是程式員的方法論。

方法論英文單詞是 methodology,也就是說它是關于方法(method)的學問,是關于人們認識世界、改造世界的方法的理論,是人們用什麼樣的方式、方法來觀察事物和處理問題。簡單地說,方法論是成熟的思維方式。

成熟的方法論有很多。前面文章提到的黃金圈法則,是思考問題、分析問題的方法論。領域驅動設計是架構設計方面的方法論,能夠幫助解決複雜問題。金字塔原理,是思考問題、解決問題、寫作、PPT 示範方面的方法論。系統化思維,是對複雜系統如何觀察和分析的理論,也能指導設計複雜系統。

我們常說的“抓手”、“賦能”、“共建”、“打法”、“對焦”等看起來比較虛的東西,其實就出自于方法論,是方法論中對具體事物和行為背後的客觀規律的總結。脈脈上很多人對此嗤之以鼻,成為了大家吐槽的對象,但是這都是很成熟的概念。

如果長期停留在使用架構的層面,容易陷入工具誤區,把使用架構當做技術,思維方式也被局限在架構裡。會有一種技術很牛逼的錯覺,但是和其他人相比,卻沒有多少優勢,容易被更年輕更有活力的後輩取代。

繼續閱讀