程序员是青春饭吗?30岁后的发展方向和突破
作者:丁儀
來(lái)源:https://chengxuzhixin.com/blog/post/30_sui_hou_de_fa_zhan_fang_xiang_he_tu_po.html
?
前些年,有人說(shuō)程序員只能干到 30,后來(lái)大家把年齡提到 35,最近好像又有提到 40 的跡象。最近 Python 創(chuàng)始人 Guido 入職微軟了。Guido 在 1989 年創(chuàng)造了 Python,無(wú)論從哪個(gè)角度看,都是絕對(duì)的高齡程序員了。
?
程序員是青春飯嗎
很多人都說(shuō)寫(xiě)代碼最多到 35 歲,妥妥的青春飯,然而科學(xué)分析不這么認(rèn)為。《Is Programming Knowledge Related to Age?》論文對(duì) 1694981 名 StackOverflow 用戶的研究發(fā)現(xiàn),程序員的平均年齡是 30.3 歲,其中數(shù)據(jù)清洗后參與分析的用戶是 84248 名程序員,平均年齡 29.02 歲。
在年齡分布中,人數(shù)最多的是 25 歲,中位數(shù)是 29 歲。然而分析發(fā)現(xiàn),程序員的能力從 25 歲左右開(kāi)始上升,一直到 50 歲后才會(huì)開(kāi)始下降。論文還研究了程序員對(duì)新技術(shù)的跟進(jìn),發(fā)現(xiàn)不同年齡的程序員對(duì)新技術(shù)的學(xué)習(xí)并沒(méi)有差太多。大齡程序員對(duì)某些新技術(shù)的學(xué)習(xí)甚至超過(guò)年輕程序員。所以論文得出的結(jié)論是,程序員的技術(shù)能力上升可以到 50 - 60 歲,并且大齡程序員跟進(jìn)新技術(shù)的能力和年輕程序員相差不多。
從身邊的觀察發(fā)現(xiàn),30 歲的程序員積累了大量經(jīng)驗(yàn),可能才剛剛成為優(yōu)秀的人才,架構(gòu)設(shè)計(jì)能力、領(lǐng)導(dǎo)力需要大量的實(shí)踐積累,不是能夠輕松掌握的。互聯(lián)網(wǎng)是一個(gè)新興行業(yè),大部分從業(yè)者都是后期加入的,平均年齡要低于其他行業(yè)。
?
30 歲后的職業(yè)規(guī)劃
一個(gè)程序員在 30 歲后,可能面臨技術(shù)專家、技術(shù) Leader、架構(gòu)師三個(gè)發(fā)展方向的選擇。
技術(shù)專家很好理解,在一個(gè)領(lǐng)域深耕,對(duì)業(yè)務(wù)和代碼都有很好深刻的理解,經(jīng)驗(yàn)豐富,能夠用技術(shù)解決公司遇到的實(shí)際問(wèn)題。成為技術(shù)專家需要大量的實(shí)踐積累,正常發(fā)展情況下差不多都要到 30 歲左右。正常來(lái)說(shuō),技術(shù)專家是人才梯隊(duì)中非常重要的角色,對(duì)技術(shù)方案設(shè)計(jì)有很大影響。
前幾天看到有個(gè)公眾號(hào)轉(zhuǎn)載一篇高并發(fā)的文章,一個(gè)看起來(lái)一年內(nèi)工作經(jīng)驗(yàn)的作者展示了漏洞百出的技術(shù)方案,還能發(fā)上線,可見(jiàn)技術(shù)專家對(duì)團(tuán)隊(duì)的重要作用。沒(méi)有技術(shù)專家的團(tuán)隊(duì),人才梯隊(duì)很難建立起來(lái),團(tuán)隊(duì)內(nèi)成員的成長(zhǎng)可能也會(huì)受影響。
技術(shù)?Leader?會(huì)開(kāi)始涉及技術(shù)管理方面的事務(wù)。注意這里是 Leader,不是 Manager。Manager 是管理者,而 Leader 更多是領(lǐng)導(dǎo)者。作為技術(shù) Leader,需要重點(diǎn)保障核心業(yè)務(wù)、做技術(shù)建設(shè)、提升業(yè)務(wù)效果。為團(tuán)隊(duì)設(shè)定合理的目標(biāo),做好排兵布陣,協(xié)調(diào)各個(gè)團(tuán)隊(duì)和資源。所以業(yè)內(nèi)往往稱為“技術(shù)管理”而不是“管理”。
技術(shù) Leader 比團(tuán)隊(duì)其他同學(xué)視野更開(kāi)闊,對(duì)長(zhǎng)遠(yuǎn)的發(fā)展趨勢(shì)看的更準(zhǔn),有技術(shù)前瞻性。雖然已經(jīng)成為團(tuán)隊(duì)中最牛逼的程序員之一,但是也要逐漸學(xué)會(huì)借他人之手寫(xiě)代碼,專注于寫(xiě)代碼的時(shí)間比以前減少很多,而這一點(diǎn)正是優(yōu)秀程序員轉(zhuǎn)變?yōu)榧夹g(shù)?Leader?所面臨的最大挑戰(zhàn)之一。
架構(gòu)師是一個(gè)非常出名的稱謂了,然而卻很少有專門(mén)的架構(gòu)師崗位。阿里前幾年有架構(gòu)師崗位,不過(guò)現(xiàn)在也回歸“技術(shù)專家”這樣的純技術(shù)崗位了。架構(gòu)師必須是最出色的程序員,擁有技術(shù)深度和廣度,有系統(tǒng)性的認(rèn)知和技術(shù)前瞻性。
架構(gòu)師通常和技術(shù)?Leader 有部分重疊,尤其是在團(tuán)隊(duì)規(guī)模比較小的時(shí)候,兩者往往是同一個(gè)人。隨著軟件規(guī)模的增大,架構(gòu)師開(kāi)始在比技術(shù)?Leader 更高的高度上看待問(wèn)題,這時(shí)候架構(gòu)師和技術(shù) Leader 開(kāi)始分化為不同的人。架構(gòu)師也不一定是公司任命的權(quán)威領(lǐng)導(dǎo)者,但是在團(tuán)隊(duì)內(nèi)部通常有非權(quán)威領(lǐng)導(dǎo)力,是團(tuán)隊(duì)內(nèi)部非常信任的技術(shù)領(lǐng)導(dǎo)者。
這三個(gè)發(fā)展方向可能會(huì)有重疊,對(duì)個(gè)人來(lái)說(shuō),還是最好想清楚側(cè)重點(diǎn)是什么。
?
掌握軟件系統(tǒng)方法論
越是到職業(yè)發(fā)展的后期,越不能依靠代碼本身。所有人都使用著同樣的開(kāi)發(fā)語(yǔ)言,掌握著同樣的語(yǔ)法和腳本。作為執(zhí)行者很難體現(xiàn)出優(yōu)勢(shì),總不能說(shuō)掌握的語(yǔ)法和二方包比別人多吧。優(yōu)秀的程序員能比別人寫(xiě)出更好的代碼,主要還是在如何寫(xiě)代碼,以及代碼背后的思考,也就是程序員的方法論。
方法論英文單詞是 methodology,也就是說(shuō)它是關(guān)于方法(method)的學(xué)問(wèn),是關(guān)于人們認(rèn)識(shí)世界、改造世界的方法的理論,是人們用什么樣的方式、方法來(lái)觀察事物和處理問(wèn)題。簡(jiǎn)單地說(shuō),方法論是成熟的思維方式。
成熟的方法論有很多。前面文章提到的黃金圈法則,是思考問(wèn)題、分析問(wèn)題的方法論。領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)是架構(gòu)設(shè)計(jì)方面的方法論,能夠幫助解決復(fù)雜問(wèn)題。金字塔原理,是思考問(wèn)題、解決問(wèn)題、寫(xiě)作、PPT 演示方面的方法論。系統(tǒng)化思維,是對(duì)復(fù)雜系統(tǒng)如何觀察和分析的理論,也能指導(dǎo)設(shè)計(jì)復(fù)雜系統(tǒng)。
我們常說(shuō)的“抓手”、“賦能”、“共建”、“打法”、“對(duì)焦”等看起來(lái)比較虛的東西,其實(shí)就出自于方法論,是方法論中對(duì)具體事物和行為背后的客觀規(guī)律的總結(jié)。脈脈上很多人對(duì)此嗤之以鼻,成為了大家吐槽的對(duì)象,但是這都是很成熟的概念。
如果長(zhǎng)期停留在使用框架的層面,容易陷入工具誤區(qū),把使用框架當(dāng)做技術(shù),思維方式也被局限在框架里。會(huì)有一種技術(shù)很牛逼的錯(cuò)覺(jué),但是和其他人相比,卻沒(méi)有多少優(yōu)勢(shì),容易被更年輕更有活力的后輩取代。
?
形成自己的方法論
方法論的形成需要長(zhǎng)期的積累,可以借鑒學(xué)習(xí)圈理論。學(xué)習(xí)過(guò)程由具體經(jīng)驗(yàn)、反思觀察、抽象概括、主動(dòng)實(shí)驗(yàn)四個(gè)階段,并形成一個(gè)閉環(huán)。首先學(xué)習(xí)一個(gè)具體的東西,然后停下來(lái)對(duì)自己的經(jīng)歷進(jìn)行復(fù)盤(pán)和思考,再對(duì)學(xué)習(xí)的內(nèi)容進(jìn)行抽象,概括成為真正能理解、能吸收的知識(shí),最后再把學(xué)習(xí)的概念和理論應(yīng)用于實(shí)踐并解決現(xiàn)實(shí)的問(wèn)題,如此往復(fù)循環(huán)。
?
定向鉆研一個(gè)技術(shù)方向,可以加深技術(shù)深度,有助于形成方法論。比如,可以定一個(gè)目標(biāo),讓需求上線的時(shí)間縮減一半或者同樣成本支撐的需求數(shù)量翻倍。接下來(lái)就需要思考什么樣的架構(gòu)設(shè)計(jì)能夠支撐翻倍的效能,很多情況下都會(huì)走向配置化、提升復(fù)用、熱部署等,接下來(lái)你就可以總結(jié)出你的方法論了。
親自設(shè)計(jì)一個(gè)框架,也是一個(gè)不錯(cuò)的選擇。既能在縱向深挖,又會(huì)有橫向拓展的機(jī)會(huì)。不過(guò)這樣的嘗試一定要以足夠的經(jīng)驗(yàn)積累為前提,否則可能走入誤區(qū)。跳出日常的習(xí)慣,拔高視野,很快就會(huì)有領(lǐng)悟,甚至推翻低層次的認(rèn)知。
復(fù)盤(pán)和反思有助于改造認(rèn)知,實(shí)現(xiàn)認(rèn)知升級(jí)。推薦使用黑匣子思維,記錄下過(guò)程中的思考和問(wèn)題,能夠幫助更好地復(fù)盤(pán)。關(guān)于復(fù)盤(pán)的方法,推薦閱讀《復(fù)盤(pán):對(duì)過(guò)去的事情做思維演練》,書(shū)中講了很多復(fù)盤(pán)的方法和技巧,是關(guān)于復(fù)盤(pán)的方法論。
經(jīng)過(guò)思考和訓(xùn)練,你會(huì)得到很多經(jīng)驗(yàn)和認(rèn)知,會(huì)形成自己的思維方式,能夠?qū)σ活悊?wèn)題形成體系化的深度思考,然后再總結(jié)出一些概念進(jìn)行抽象,使經(jīng)驗(yàn)適用于更廣闊的共性問(wèn)題,就實(shí)現(xiàn)了經(jīng)驗(yàn)到理論的升華。把自己的理論應(yīng)用于實(shí)踐,觀察實(shí)際效果,對(duì)比之前的預(yù)期,再領(lǐng)悟新的經(jīng)驗(yàn)和思考,循環(huán)往復(fù),就形成了方法論。
?
以上就是本文的全部?jī)?nèi)容了,與君共勉。
微.信.搜.一.搜.程序之心,每周一三五原創(chuàng)更新。
總結(jié)
以上是生活随笔為你收集整理的程序员是青春饭吗?30岁后的发展方向和突破的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Symbian手记【一】 —— Symb
- 下一篇: Ubuntu14.04安装微软雅黑字体