程序員,在你 40 歲之前,要有個 Plan B
簡評:程序員的職業(yè)生涯和 NBA 籃球運動員大致相似,你怎么看?隨著年齡的增長,程序員可能要多想一想出路。但不管如何有一點是一定的,時刻保持學(xué)習(xí)!(本文翻譯,我代表原作者)
紐約時報做過一份調(diào)查報告(Op-Ed piece from The New York Times ),其中引用了 NSF(美國國家衛(wèi)生基金會) 和人口普查局的數(shù)據(jù),其中關(guān)于軟件工程師的職業(yè)生涯的數(shù)據(jù)令人驚訝。
大學(xué)畢業(yè) 6 年后,57% 的計算機畢業(yè)生作為程序員在工作;15 年后,34% 作為程序員在工作;20 年后,他們已經(jīng)步入 40 歲,這個數(shù)字下降到了 19%。對比之下,土木工程系的數(shù)字分別是 61%,52%,52%。
(當(dāng)然這份報告忽略了很多程序員是非計算機系、或者沒有上過大學(xué))
但不得不承認(rèn),軟件工程師確實很容易貶值,英特爾總裁兼聯(lián)合創(chuàng)始人克雷格·巴雷特(Craig Barrett) 1996年的評論:
工程師,軟件或硬件的半衰期都只有幾年。
誠然, 他當(dāng)時是高管,但是他也是個 57 歲的前工程師,卻還堅持軟件工程師年齡大了就不行了的歧視性觀點。像這樣有影響力的業(yè)內(nèi)人士都認(rèn)為,程序員和職業(yè)籃球運動員的職業(yè)生涯壽命大致相同,這是很可怕的。
我接受這個說法
相當(dāng)多的文章觀點在強調(diào)程序員的生涯短,但歸其原因,還是因為這一行業(yè)的快速變革導(dǎo)致的必然結(jié)果。
我們要注意到計算機領(lǐng)域的一些特點:
- 員工的市場價值主要取決于與雇主有關(guān)的技術(shù)經(jīng)驗。
- 至少每 10 年軟件工程必然發(fā)生重大技術(shù)變革。
- 技術(shù)轉(zhuǎn)變并不能完全抵消老程序員的技能,但是對于最新的畢業(yè)生來說,老程序員與新程序員肯定存在一個競爭環(huán)境。
對此,我們可以聽聽在這軟件行業(yè)深耕了多年的老前輩們,是怎么看待這個問題的。
bwanab(網(wǎng)名):
我是個 60 歲的老程序員,編程一直貫穿著我的職業(yè)生涯,哪怕是現(xiàn)在我也依舊在敲代碼?,F(xiàn)在我的薪資處于停滯狀態(tài)的,但盡管如此,我發(fā)現(xiàn)最好的小幅提升的方法是換工作,這很悲哀,但卻是事實。我離開過一些相當(dāng)體面的工作,因為別人愿意支付更多的錢。這在我職業(yè)生涯的每十年都是如此。
我總是在自我抵制去做管理,我所了解的從編程轉(zhuǎn)入管理崗的人,他們大多數(shù)都不是真的喜歡編程,而是把編程當(dāng)做一個跳板,一個職業(yè)生涯的手段。對于非學(xué)術(shù)性的任何 STEM(科學(xué)Science、技術(shù) Technology、工程 Engineering、數(shù)學(xué) Mathematics 集合的縮寫)領(lǐng)域也都是如此。如果你想要做管理,當(dāng)你就告訴老板,如果你不想做或者想做做不成,都要直說。任何靠譜的老板都非常想留住開發(fā)人員,并且滿足他們繼續(xù)編程的愿望,如果你不說,他們可能為了留住你而把你推向管理層。
我不建議你成為任何一個編程語言的專家,因為你不知道將來會發(fā)生什么。做一個通才,但要不斷的學(xué)習(xí)你可以學(xué)的一切。到目前為止,我已經(jīng)在 COBOL,Basic,F(xiàn)ortran,C,Ada,C ++,APL,Java,Python,PERL,C#,Clojure 和各種匯編語言中專業(yè)地編程,其中每一種我都可以成為一名專家。另外需要提的是,哪怕在一個新環(huán)境(新語言)上,反復(fù)做同樣的事情會讓你變老,這是真實的,我自己不知道如何避免這種情況。我認(rèn)識個和我差不多年齡的老伙計,他仍在古老的系統(tǒng)上作為一名 COBOL 程序員而工作,但是所接觸使用的都是與時俱進的新知識,所以他每天都顯得生機勃勃的。
現(xiàn)在最重要的是如果你想繼續(xù)編程,而你又不在學(xué)術(shù)界,你想讓編程溶于血液,想因為編程而獲得體面的生活,如果你想要做一個好程序員,你必須學(xué)習(xí),你的夢想是敲代碼,那么別管是銀行系統(tǒng)、流程控制、聯(lián)系管理還是 App 開發(fā),只要它是程序就沒問題。作為開發(fā)者你編寫的東西對某些人至關(guān)重要,或者有些人壓根不知道你所做的貢獻,沒關(guān)系,重點是你在編程,了解你所編寫的內(nèi)容比工作本身更重要。你需要一些資源來實現(xiàn)你的想法,那你就要掌握這些資源(知識),如果你做不到那就想辦法做到。 Never stop learning.
KentBeck(網(wǎng)名):
我馬上就要 53 歲了,我花費大量的時間在 Facebook 上指導(dǎo)年輕的程序員(他們年齡真的都很小),我們結(jié)對編程,我們探討問題。我為一些投機性項目(speculative projects)工作,有時候面向消費者,有時候做一些編程工具,有時候做基礎(chǔ)設(shè)施。我還研究軟件設(shè)計和創(chuàng)新的傳播理論。
我用了 10 的遠足成為了一名精神導(dǎo)師,但是我現(xiàn)在還在編程, 并且打算一直保持。我喜歡編程,我從來不認(rèn)為自己是個管理。我想我早已到了工資上限,但是我對現(xiàn)在的編程工作感到很滿意,我不在意工資隨著年齡的增長而下降,當(dāng)然我的經(jīng)驗可能不值得學(xué)習(xí)。
我熱愛編程,但編程于我越來越難,我的記憶力、專注度、一般性認(rèn)知都有明顯的下降,但是我通過更好地挑選重要的問題,匹配我的經(jīng)驗知識庫而不是恐慌地應(yīng)對。
幾年前我開始學(xué)習(xí) Haskell,這真的有助于擴展我的編程風(fēng)格。我還是不太喜歡這個語言,但對我來說很有幫助。我也在學(xué)習(xí) React 和 reactive style of coding UI。活到老學(xué)到了,程序員更是。
ColdCode(網(wǎng)名):
我 56 歲半,仍然在編程一線,一個字一個字的敲著代碼,從雇主手里賺些錢。我的訣竅就是不斷學(xué)習(xí)新東西,我的整個職業(yè)生涯總是在最重要的技術(shù)轉(zhuǎn)型期保持領(lǐng)先地位。有時候人們不想面試你,他們認(rèn)為你老了,面試也沒什么意義,通常這些人壓根就沒看過你的簡歷,閱讀你的 blog,你的采訪或者 Github。但有的人會用另一個角度去思考,認(rèn)為年齡和視野、經(jīng)驗緊密掛鉤。你要找到后者,避免前者。
有些人不學(xué)習(xí)任何新東西,變得有點過時,他們或是成為了管理,或是不得不重新學(xué)習(xí)編程。很多人沒意識到這個問題,但是如果你想要在編程這條路上走下去,必須心懷若谷,時刻求道。
以上的這些程序員都熱愛者編程,把敲代碼看成一種信仰,一種生活方式,甚至把編程當(dāng)做一種人生。如果你想成為他們的一員,你需要明白一些事情:
- 通才很重要
- 語言的新舊,技術(shù)的新舊不是決定因素,不論再老的平臺也有新知識
- 當(dāng)?shù)搅艘欢挲g,要明白資源整合,知道如何實現(xiàn)
- 薪資到了一定年齡,就存在天花板
- 經(jīng)驗和視野在年齡大了,比精力和敢打敢拼更重要
- 永遠,永遠,永遠不要停止學(xué)習(xí)
不過我們知道,不可能所有的程序員都敲代碼到老,也有些程序員需要另一條出路。
PlanB
我認(rèn)為,準(zhǔn)備走管理路線的程序員,對于編程本身可能不如上述的「純程序員」要求高,畢竟沒有多少人真的會在電腦前敲一輩子代碼,很多技術(shù)人員都希望能夠「畢業(yè)」,成為管理者。但在成為管理者之前,你要了解到:
- 中層管理人員往往會比高級軟件工程師做的更多
- 由于管理人員不直接使用最新的技術(shù),因此越來越難以跟上技術(shù)的發(fā)展
- 會議、辦公室政治、處理各種不切世界的要求幾乎成為了你的生活全部
- 即使不是你的錯,也是你的錯
- 即使你成功了,也是團隊的功勞
- 技術(shù)專家、技術(shù)人員的技術(shù)能力比管理人員強多了,所以你要想各種辦法能夠讓程序員們服你
- 你將被迫做出影響他人生活的決定(薪資、獎金、開除等),有時候非常痛苦
- 電腦是可控的,人是復(fù)雜的,你會幻想擁有機器人員工
- 有回報但挑戰(zhàn)頗多
世界上最難的事情就是你知道事情怎么做,并且看到別人做錯了這件事你還什么也不說。-Theodore H. White.
逃避很正常,但總要做出選擇,所以要趁早
程序員隨著年齡大了,競爭力會有所下降,轉(zhuǎn)行率會上升,這個必須承認(rèn),但這個行業(yè)賦予了年長的程序員一些特殊的機會,比如成為專家顧問或是中高層領(lǐng)導(dǎo)者。
其實說白了,程序員三條路,走純技術(shù)路線,走半技術(shù)路線,走非技術(shù)路線。
非技術(shù)路線在這先不細說,但如果還想要在計算機 IT 圈混,隨著年齡的增大,要不就成為技術(shù)大咖,要不就成為管理者,但不論怎么走,你都要在學(xué)習(xí)中摸索。
正如高爾基所說:「人的天才只是火花,要想使它成熊熊火焰,就只有學(xué)習(xí),學(xué)習(xí)!」
原文:Programmers: Before you turn 40, get a plan B
網(wǎng)友 bwanab、KentBeck、ClodCode 的語錄出自:Ask HN: What happens to older developers?