大龄程序员重启计划
作者 | Jesse Jiryu Davis
譯者 | 薛命燈
在紐約,每年都會有 600 名程序員參加一個叫作 PyGotham 的大會。大會組織者知道科技行業多為男性和白人所盤踞,因此他們努力邀請多元化的演講者。他們在郵件列表中為女性和有色人種程序員做宣傳,并為技術女性舉辦研討會,鼓勵她們表達自己的想法。
我在大會委員會任職,在今年的 PyGotham 大會結束之后,我意識到我們忽略了一個群體:老程序員。與女性和有色人種在技術方面的代表性相比,四十歲及以上的程序員并沒有引起我們的注意。在紐約,并沒有針對他們的大會或郵件列表,也沒有專門針對他們的倡議組織。
軟件行業的從業人員相對年輕。谷歌和亞馬遜員工的年齡中位數為 30 歲,而美國工人的年齡中位數為 42 歲。2018 年,Stack Overflow 對全球 100,000 名程序員進行的調查發現,有四分之三的人未滿 35 歲。Hacker News 上有一個帖子問道:“老程序員都去哪兒了”?30 多歲的開發者焦慮地稱自己為“老年人”。
我今年十月就要滿 40 歲了,已經在紐約的 MongoDB 公司工作了七年。很多我這個年紀的程序員已經回爐重新學習,要么改行,要么成為管理者。作為一名程序員,我想寫一輩子的代碼,但未來幾十年的職業前景似乎不是很明朗。令人不安的是,在我認識的比我年長的工程師中,很少有我可以效仿的例子。所有年長的程序員都去哪兒了?我們這些留下來的人的職業前景將何去何從?
2007 年,22 歲的扎克伯格大聲說出了很多軟件行業人士的想法:“年輕人更聰明”。十二年后,與其他多樣性問題相比,缺少老程序員的問題仍然很少被關注。例如,谷歌的年度多元化報告統計了公司女性員工或有色人種員工的數量,微軟統計了美國印第安人和阿拉斯加原住民的員工數量,蘋果公司很自豪能夠雇用退伍軍人。這些公司揭示了多樣性方面的衡量標準,這是值得稱贊的,但他們都漏了另一個東西:他們都沒有報告程序員的年齡分布。
Ari Rapkin Blenkhorn 是一名 47 歲的工程師,她說她之所以辭去上一份全職工作,是因為公司想要“一群廉價的年輕人,他們不想再為具有多年職業經驗的資深人士埋單”。
Blenkhorn 說,一旦回到就業市場,她將受到來自年齡和性別雙方面的歧視,導致情況變得更為復雜。盡管她在技術方面取得了巨大的成就,但在招聘人員看來,她是一名“媽媽”,所以她在技術方面的成就也就變得無關緊要了。她最近拿到了一個計算機科學博士學位,并希望這能提高她在就業市場中取勝的機會。
現年 55 歲的程序員 Kevin Stevens 在六年前申請 Stack Exchange 的職位時也面臨類似的問題。面試他的是一位年輕的工程師,他說,“年長的程序員能夠跟上技術的發展步伐總是讓我感到很驚訝”。Stevens 最后被拒掉了。他現在是一家服務類公司的程序員,他說在現在的公司年齡不是問題。
對于其他程序員來說,結果可能會更糟糕。來自 ProPublica 的 Peter Gosselin 和 Ariana Tobin 在 2018 年對 IBM 的年齡歧視問題進行了調查。他們發現,從 2014 年左右開始,IBM 試圖通過用年輕員工取代老員工來重塑自我。一位名叫 Ed Kishkill 的 60 歲系統工程師收到了一份裁員通知,他有三個月的時間在 IBM 另找其他工作。盡管他有數十年的經驗,但仍然被其他所有部門拒絕。在 ProPublica 發布調查報告時,Kishkill 正在擔任 Staples 的店員。
老程序員必須保持他們的技能與時俱進,在不斷變革的行業中與時間賽跑。2018 年的一份研究報告顯示,科學、技術、工程和數學(STEM)方面的技能要求比其他行業變化得更快,而針對程序員的需求變化得尤為嚴重。該報告的作者之一 Kadeem L. Noray 表示,“STEM 比其他領域更看重技能”,對短期競爭力的重視程度高過長期的智慧。STEM 專業人士每學習一項新技能,另一項技能就會過時,幾乎沒有機會將技能累積起來作為增加工資的籌碼。
盡管技術領域的起薪很高,但與其他領域相比,他們的優勢在就業的前十年減少了一半。Noray 說,“大多數經濟學家都不知道這一點”。來自 Hired.com 網站的一份報告表明,50 歲以上技術從業者的薪水實際上低于年輕人。因此,很多 STEM 工作者改行到變化較慢且薪資有上漲空間的行業。在 24 歲時,有 89%的 STEM 專業人員從事 STEM 工作,但到了 35 歲,這個數字下降到 71%,此后繼續下降。
程序員想要留在技術行業但又不從事具體的技術工作,其中的一種方式是成為管理者。馬薩諸塞州的一位 54 歲的工程師告訴我,“我的公司為新人提供了很明顯的職業發展路線:他們進來時是開發人員,然后一路發展進入到管理層”。
但并不是所有人都適合做管理。54 歲的 MongoDB 高級工程師 Sue LoVerso 告訴我,“管理者需要具備個性特征,我是一個內向的人,解決技術問題才是我最感興趣的”。一位 63 歲的谷歌工程師曾經做過一小段時間的經理,那段時間讓他感到很不適應:“我知道自己可以很好地完成一份工作,但我不知道該如何讓其他人也這么做”。
作為成為管理者的替代方案,谷歌、微軟和其他大公司提出了“個人貢獻者(IC)發展路線”,這是高級工程師的職業發展階梯,與管理者階梯平行。IC 發展路線讓工程師可以在不放棄自己喜歡的工作的前提下順著資歷的階梯往上走。
但 IC 發展路線也有一些問題。我采訪過的一些程序員說,IC 發展路線的晉升速度非常慢,而且頭銜之間的區別也很模糊。45 歲的 MongoDB 工程師 David Golden 表示,“在技術晉升路線上,要進入下一個級別,我需要面臨更大的障礙。目前還不知道如何從一個級別跳到另一個級別,也不知道具體該做些什么”。
基于對六位程序員的采訪,我已經很明白,公司應該為資深的個人貢獻者創造不同的角色,并根據候選人過去的成就來做出評判,就像評判管理者一樣,而不是通過快速變化的技能清單來評判他們。更高的清晰度意味著工程師可以更快地往上爬,每個級別給他們帶來的聲望和新的智力挑戰為程序員提供足夠的動力進入到他們的五十歲和六十歲。
處于越高級別的工程師應該在關鍵項目中解決越棘手的問題,他們應該通過寫作、演講和指導來彰顯他們的技術領導力。
由于豐富的經驗和深厚的知識積累,年長的程序員能夠將知識轉化為通俗易懂的術語,因此他們能夠充當與非編程世界相連接的橋梁。Ari Blenkhorn 在工業光魔公司領導布料模擬項目時就擔任了這樣的職位。她說,“尤達的長袍、哈利波特的斗篷、攝魂怪的長袍——所有這些都是我幫助一起開發的。我需要與物理模擬研究團隊和動畫團隊溝通,了解他們的專業術語。他們不會偏微分方程,他們只知道布料是柔滑有彈性的,就像風中的漣漪”。
我很幸運:我的公司能夠理解我的中間職業倦怠,并讓我開始了一次專業探索之旅。今年,我將在三個團隊中分別輪崗幾個月,看看以后適合做什么。
其他公司不見得有這么慷慨。我特別擔心這個行業的大齡女性和有色人種,他們會受到雙重歧視。公司必須為在 IC 發展路線上前進的程序員定義有意義的級別。與此同時,程序員應該更加積極主動,向公司施加壓力,反對年齡歧視。工會可以制定工資標準,保護高級雇員免受裁員,這樣做還可能可以縮小種族和性別方面的薪資差距。
軟件行業應該更加歡迎三十歲以上的程序員,并為經驗豐富的程序員創造合適的角色,這將使公司變得更加有效,更加公平。這些變化也將為我們帶來好處——在一個越來越受軟件和算法支配的社會中,程序員必須具備一定的智慧來匹配他們的能力。公司必須從最近發生的黑客事件、有偏見的算法和在線煽動種族滅絕事件中吸取教訓,讓大齡程序員在行業中逗留足夠長的時間,讓他們將知識傳授給后繼者。培養終身程序員可以確保今天學到的經驗教訓在 50 年后仍然有效。
?英文原文:
https://onezero.medium.com/ctrl-alt-delete-the-planned-obsolescence-of-old-coders-9c5f440ee68
對于中國的大齡程序員來說,情況又是怎樣的呢?
國外的環境跟國內在一定程度上來說確實不一樣。在歐洲老齡化嚴重,勞動力供不應求,所以大齡程序員不會被嫌棄,而且歐洲公司不加班。在 InfoQ 的訪問中我們了解到,很多人見到的年紀最大的程序員近 60 歲。其實你不會在 35 歲,45 歲或者 55 歲的時候失去寫代碼的能力。所以,不要覺得程序員到了 35 歲了就“死了”。
在 InfoQ 社區,因為樣本量大,我們也了解到有很多程序員都是一直走在編程的道路上。有從創業團隊技術總監不斷學習進入阿里現在已經是高級技術專家的;有從畢業就踏上軟件行業從一個普通工程師成長為高級工程師、架構師、大數據工程師,熱衷于學習新技術抽空還能翻譯技術書籍的。
InfoQ 的一位社區編輯一直在一家軟件公司工作,除去中間短暫的一段時間,幾乎在這家公司工作了十幾年,目前負責架構設計,依然寫代碼。對于大齡程序員繼續寫代碼,他這樣看:
公司招的程序員肯定越來越年輕了,我現在的公司主要招應屆碩士,自己培養,所以新員工基本都是 90 后了。現在的年輕人思維活躍,學習能力普遍很強,但是有一些個性,喜歡有挑戰性有意思的工作,像一些簡單的增刪改查的活兒不太愿意干,而且穩定性略差,入職工作兩年左右離職的挺多的。
我覺得應該遵循一種增量式學習的思路,掌握基礎知識,學習新東西可能就不會那么費時間了。隨著年齡的增長,在基礎業務編碼方面,肯定比不上年輕人,但是積累的經驗和知識可以發揮到更高的層面上,比如做一些前瞻性的技術預研,指導年輕人學習,解決一些棘手的實際問題等等。
大齡程序員的核心競爭力
好的道理我都懂,那么要跟年輕人競爭,大齡程序員怎么提高自己的核心競爭力呢?
《創新者的窘境》一書中提到,機構的能力包括:
-
資源
-
流程
-
價值觀
資源包括時間,技能,金錢,人脈等;流程指的是解決問題的方法,思維模式等;價值觀就是你認為什么重要。
這三點放在每一個職場人身上也同樣合適。對于技術人來說,你會的編程語言和工具都是資源,框架設計,邏輯思維,數據分析這些都是流程,你是熱衷做技術還是喜歡做管理,這就是你的價值觀。
一位職業規劃師在一篇文章中說道:
決定程序員是否具有優勢的,是思維能力,是解決問題的框架,是快速學習,是自我管理,是創新與創造,是這些應用流程方面的能力。而這些,都需要時間的沉淀和項目的歷練。這正是大齡程序員的優勢:他們的閱歷、思維、解決問題的框架往往都得到了充分的歷練和實踐的檢驗,遇到問題時能夠更快找到更合適的解決方案,先人一步在頭腦里創造出最終的形象(第一次創造),然后在充分思考后用代碼實現出來(第二次創造)。
幾乎所有人在談到職業發展的時候都會提到要保持終身學習的能力,這個是跟年齡沒有關系的。多學習,就是要注意提高自己的核心競爭力,也就是淬煉出自己良好的思維方式,解決問題的流程,通過思考層面的創造工作體驗自己年齡的價值。
作為大齡程序員,要認識到自己的優勢,盡量擴大自己的影響力,保持工作熱情依,靠努力工作帶來的成就感,形成努力-收獲-更努力的正循環。
年紀大了,該不該換工作??
比起年輕人,年長意味著過去的經歷都是你的資產。到了中年,一般家庭生活也偏于穩定,就業也更傾向于穩定一些的,重視自己的聲譽和職業成就感。如果是在一家公司工作多年,老員工會對公司系統更了解,你可以做前端,后臺,構建管道或者監控,關于改善系統還有很多可以做的事情。你還可以重構新的架構。公司的新人對系統不了解,老員工可以更好地做這些事情。當然,這是對于你在大公司而言。
至于該不該換工作,極客時間專欄作者白海飛,一位在 IBM 工作了 14 年的軟件商務系統經理的建議是先從物質保障、精神滿足和能力發展三個角度看自己的滿意度,再從下面三個方面評價一下你的工作:
-
可接受的薪酬,不要只拿薪水來定義工作的好壞,但是薪水很重要。在 Hack News 上有一個帖子討論在一家公司工作十年是怎樣的感受,那些回答在一家公司待了 5 年以上的人無不提及“get well paid for it”——報酬豐厚。
-
“合適”的事,做的事是否有挑戰、有發展,不要只看公司大小,團隊更重要。
-
“合適”的人,團隊的信息共享程度,決定了配合度,而且一個好老板也很重要。
如果你下定決心要跳槽,希望你能梳理出自己的核心競爭力,進入到更好的平臺。
愿大齡程序員,你的工作能充滿挑戰和新鮮感,能進步能突破,不要讓年齡成為你的天花板。
總結
- 上一篇: 不懂算法,还想进大厂?做梦吧
- 下一篇: 人工智能的发展之路,居然要从春秋时期讲起