阿里資深技術(shù)專家:誰說程序員是吃“青春飯”的?
你是否認(rèn)真思考過:畢業(yè) 3-5 年、10 年,乃至更久后,我們希望成為什么樣的人?作為一名技術(shù)人,我們要如何規(guī)劃自己的職業(yè)發(fā)展生涯?
網(wǎng)上熱議的“35 歲中年危機(jī)”,本質(zhì)上又因什么而焦慮?今天,阿里資深技術(shù)專家毗盧,將帶來自己的思考與理解,希望對(duì)大家有所啟發(fā)。
- 近期,我與團(tuán)隊(duì)同學(xué)探討了職業(yè)發(fā)展規(guī)劃的問題:
- 有些同學(xué)表示希望后續(xù)能進(jìn)一步在技術(shù)領(lǐng)域(或管理方向)有進(jìn)一步的積累。
有的同學(xué)表示希望在新的一年能具有更好的技術(shù)影響力,自己能做一些技術(shù)決定,去影響其他人,這樣自己會(huì)很有成就感。
因此,我也問了一些問題:
- 你希望技術(shù)能進(jìn)一步積累,那你積累的方向和期望達(dá)到的結(jié)果分別是什么?
- 你希望能有技術(shù)決策,希望有影響力,你覺得應(yīng)該如何做到?是希望通過崗位任命的方式嗎?
- 你覺得是否成功的標(biāo)志,就是今年或明年得到晉升嗎?
- ......
大部分同學(xué)在面對(duì)這些問題時(shí),其實(shí)是比較迷茫的,也缺少真正可度量的衡量標(biāo)準(zhǔn)。
是否能在短期內(nèi)獲得晉升成了大部分人作為“組織是否認(rèn)可、自己是否認(rèn)可”的衡量標(biāo)準(zhǔn)了。
當(dāng)然,這個(gè)話題仁者見仁、智者見智,這里我簡單地談?wù)勎业目捶?。我以相?duì)比較口水化的方式,將職業(yè)發(fā)展分兩個(gè)階段來進(jìn)行闡述:
- ***階段:大學(xué)畢業(yè) 3 到 5 年。
- 第二階段:大學(xué)畢業(yè) 5 到 10 年。
***階段:大學(xué)畢業(yè) 3 到 5 年
對(duì)于從事 Java 軟件開發(fā)的技術(shù)同學(xué),在畢業(yè)后的 3 到 5 年內(nèi)主要都是以學(xué)習(xí)、積累為主。
這個(gè)階段的工作幾乎每天都有驚喜,都有收獲。從一開始啥都不懂的校園“新鮮人”向“職業(yè)人”轉(zhuǎn)變。
在這個(gè)階段,你會(huì)學(xué)習(xí):
- 基礎(chǔ)的 Java 知識(shí):你會(huì)開始看《Java編程思想》、《Effective Java》。
- 高質(zhì)量代碼進(jìn)階知識(shí):你會(huì)開始看《重構(gòu):改善既有代碼的設(shè)計(jì)》、《代碼大全》、《編程珠璣》。
- 常用的主流框架:比如 SSH 相關(guān)的《Spring實(shí)戰(zhàn)》、《Spring Boot實(shí)戰(zhàn)》、《Hibernate實(shí)戰(zhàn)(第2版)》。
當(dāng)然,這些書已經(jīng)不夠了,你會(huì)通過 Google、Baidu 大量地瀏覽在線的資源:Apache官網(wǎng)、Spring官網(wǎng)、Hibernate官網(wǎng)。你會(huì)去 Stack Overflow 問問題或找答案。
- 系統(tǒng)設(shè)計(jì)與算法知識(shí):《系統(tǒng)分析與設(shè)計(jì)方法》、《設(shè)計(jì)模式》、《需求分析與系統(tǒng)設(shè)計(jì)》、《面向?qū)ο蠓治雠c設(shè)計(jì)》、《UML用戶指南》、《算法導(dǎo)論》。
- 其他知識(shí):比如數(shù)據(jù)庫調(diào)優(yōu)、緩存框架、NoSQL 數(shù)據(jù)庫、日志框架等等。
在這 5 年間,快速地完成這些基礎(chǔ)知識(shí)的學(xué)習(xí),并能在項(xiàng)目中快速地學(xué)以致用。
不僅自身能獲得比較高的成就感,而且實(shí)際的用人單位、獵頭也會(huì)非常喜歡這類熟練工。
從大部分人的實(shí)際發(fā)展軌跡看,這個(gè)階段發(fā)展快的人和正常發(fā)展速度的人,差別還不是很大。
比如,發(fā)展非??斓娜耍瑥漠厴I(yè)就入職阿里的 P5 到 P7(注:阿里內(nèi)部職稱評(píng)級(jí)),可能三年就可以做到。發(fā)展速度正常的人,可能需要 5-6 年也可以到 P7。
也就是說,這個(gè)階段正常發(fā)展速度的同學(xué)也僅僅比發(fā)展速度快的人慢2-3年而已。
這 2 到 3 年的差距,是可以通過有針對(duì)性的學(xué)習(xí)、重大項(xiàng)目的歷練等完成這些知識(shí)的學(xué)習(xí)。
無非是,有的同學(xué)會(huì)嚴(yán)格要求自己,有嚴(yán)格的學(xué)習(xí)計(jì)劃;有的同學(xué)趕早參加了一些重點(diǎn)的、痛苦的項(xiàng)目得到了鍛煉。只要是做技術(shù)的,遲早都會(huì)經(jīng)歷過,都會(huì)成長起來。
發(fā)現(xiàn)沒有?這個(gè)階段,我們能協(xié)調(diào)好的資源其實(shí)就是自己,更多的是一個(gè)“個(gè)人貢獻(xiàn)者”。只要把自己管好了,學(xué)習(xí)計(jì)劃執(zhí)行好了,工作高質(zhì)量做好了就能得到認(rèn)可。
第二階段:大學(xué)畢業(yè) 5 到 10 年
很多本科同學(xué),特別是研究生同學(xué)。在畢業(yè) 10 年后,就已經(jīng)到了 34、35 歲左右了。也是前段時(shí)間網(wǎng)上廣泛討論的所謂 34+ 歲現(xiàn)象。
其實(shí),年齡并不是問題的真正原因。真正的原因還是在于自身“競(jìng)爭(zhēng)力”是否符合這個(gè)年齡所應(yīng)該具備的。
到了這個(gè)年齡的人,往往已經(jīng)不是“個(gè)人貢獻(xiàn)者”了,而是“團(tuán)隊(duì)貢獻(xiàn)者”。團(tuán)隊(duì)貢獻(xiàn)者可能是帶團(tuán)隊(duì)的 Team Leader,也可能是個(gè)架構(gòu)師,在技術(shù)決策上具有團(tuán)隊(duì)影響力和話語權(quán)。
那么,為什么這些人能管理團(tuán)隊(duì)或者有影響力呢?從公司的經(jīng)營視角看,一個(gè)管理團(tuán)隊(duì)的人,他必須為業(yè)務(wù)的成功負(fù)責(zé)。
說個(gè)大白話,一個(gè) Team Leader 管了 N 個(gè)人,他至少要能保證大家輸出所產(chǎn)生的價(jià)值,至少要高于這個(gè)團(tuán)隊(duì)的工資、獎(jiǎng)金、五險(xiǎn)一金、OPEX、CAPEX 等等吧。
這個(gè) Team Leader 為了大家輸出得有價(jià)值,他是不是需要能:
對(duì)所負(fù)責(zé)領(lǐng)域的業(yè)務(wù)特點(diǎn)、發(fā)展趨勢(shì)、友商競(jìng)爭(zhēng)分析有很好的洞察?能知道這個(gè)業(yè)務(wù)領(lǐng)域的客戶是誰?他們的需求是什么?他們的痛點(diǎn)是什么?
所以,這個(gè) Team Leader 應(yīng)該需要學(xué)習(xí)《咨詢的奧秘》、《探索需求》、《系統(tǒng)化思維導(dǎo)論》。對(duì)于技術(shù)型的 Team Leader,還應(yīng)該了解《成為技術(shù)***:掌握全面解決問題的方法》。
服務(wù)于特定領(lǐng)域的客戶,我們需要了解我們客戶的企業(yè)架構(gòu)、業(yè)務(wù)知識(shí)。要了解清楚規(guī)劃的產(chǎn)品、服務(wù),什么才是客戶所需要的。
那么,從理論上,我們是否應(yīng)該學(xué)習(xí)一些 TOGAF、NGOSS、ITIL 等業(yè)務(wù)理論以及業(yè)務(wù)知識(shí)?
作為 Team Leader,是否有必要能將自己對(duì)于市場(chǎng)的洞察轉(zhuǎn)換成業(yè)務(wù)規(guī)劃,并能向自己的老板(或者投資人)說清楚、講明白?并爭(zhēng)取到老板的同意,包括資金、人力資源等。
對(duì)于,能否把事情講明白,我們可能需要學(xué)習(xí)《金字塔原理》,并能非常清晰、有邏輯性地進(jìn)行表達(dá)與溝通。
當(dāng)然,有些業(yè)務(wù)發(fā)展的事不一定特別有邏輯,是需要摸索、嘗試的,那么你是否能將一個(gè)不確定的領(lǐng)域說服老板并獲得支持,我們又需要什么?《博弈論》、《影響力》等。
獲得老板支持后,就需要開始帶著兄弟們干活了。作為帶頭人,你看我們是否需要能將業(yè)務(wù)趨勢(shì)、客戶痛點(diǎn)進(jìn)行業(yè)務(wù)建模好讓團(tuán)隊(duì)的 PD、技術(shù)都能理解?
在做業(yè)務(wù)進(jìn)一步深入分析,可能就需要學(xué)習(xí)《領(lǐng)域驅(qū)動(dòng)設(shè)計(jì):軟件核心復(fù)雜性應(yīng)對(duì)之道》、《實(shí)現(xiàn)領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)》、《企業(yè)應(yīng)用架構(gòu)模式》、《恰如其分的軟件架構(gòu)》等等。
做完業(yè)務(wù)設(shè)計(jì)后,開始要帶著團(tuán)隊(duì)做技術(shù)方案設(shè)計(jì)、接口設(shè)計(jì)以及編碼實(shí)現(xiàn)等。這個(gè)過程,Team Leader 又需要具備軟件項(xiàng)目管理的能力。
無論是《PMBOK指南》,還是《敏捷軟件開發(fā)》、《人月神話》、《程序開發(fā)心理學(xué)》,相信總歸還是會(huì)有點(diǎn)幫助的。
對(duì)于一些有國際化要求的公司,還需要再學(xué)習(xí)英語吧!
嗯,還需要有個(gè)好的身體,還需要經(jīng)常鍛煉,學(xué)習(xí)科學(xué)的健身吧(說起來自己臉紅)。
至少我明白了一個(gè)道理,以前我都是跟自己說,等這段時(shí)間過了,閑下來去鍛煉一下。其實(shí),我發(fā)現(xiàn),越是忙的時(shí)候,越需要鍛煉身體!
另外,在這 10 年內(nèi),比較關(guān)鍵的是——你還經(jīng)歷過什么有挑戰(zhàn)的業(yè)務(wù)、技術(shù)、產(chǎn)品、平臺(tái)等方面的成功與失敗經(jīng)驗(yàn)?
在這些經(jīng)歷里,你可能會(huì)遇到這些困難與挑戰(zhàn):團(tuán)隊(duì)磨合的挑戰(zhàn)、技術(shù)方案上的爭(zhēng)執(zhí)、平臺(tái)優(yōu)先 or 業(yè)務(wù)優(yōu)先的博弈、低落的團(tuán)隊(duì)氛圍、個(gè)人的低谷等等。
這些困難與挑戰(zhàn),你是退縮了?還是有成長?在帶團(tuán)隊(duì)時(shí),再次面臨這些挑戰(zhàn)時(shí),這時(shí)你是否有解或者有勇氣了?
發(fā)現(xiàn)沒有?畢業(yè) 10 年后,作為一個(gè)團(tuán)隊(duì)貢獻(xiàn)者,你可能需要具備這些能力,并且還遠(yuǎn)遠(yuǎn)不止。
而且,更可悲的時(shí),當(dāng)畢業(yè) 10 年后,突然發(fā)現(xiàn)自己不具備這個(gè)能力時(shí)(比如晉升失敗時(shí)發(fā)現(xiàn)了),這些能力 GAP 就不再是 2 到 3 年就能追得上的了。
我見過一些有準(zhǔn)備的同學(xué),他們給自己的目標(biāo)是在畢業(yè)第 7 年就要具備這些能力,他有嚴(yán)格的學(xué)習(xí)計(jì)劃、實(shí)踐計(jì)劃、甚至是冒險(xiǎn)的創(chuàng)業(yè)經(jīng)歷。
當(dāng)他到第 10 年這個(gè)點(diǎn)時(shí),這些高階技能很可能已經(jīng)有 3 年的實(shí)踐經(jīng)驗(yàn)了。
如果我們沒有做好準(zhǔn)備,十年后,如何和這批人競(jìng)爭(zhēng)?這些軟、硬知識(shí),從十年這個(gè)時(shí)間刻度倒排,學(xué)習(xí)計(jì)劃、實(shí)踐計(jì)劃的執(zhí)行還是很緊張的。
所以,從現(xiàn)在開始給自己制定一個(gè)嚴(yán)格的學(xué)習(xí)計(jì)劃、嚴(yán)格執(zhí)行,多實(shí)踐吧!