疲勞的程序員(圖片來源:Adobe stock)
【看中國2018年5月22日訊】總說程序員是吃青春飯的,過了35歲編程生涯就終結了——是這樣嗎?
在IT行業,技術日新月異,各種庫、SDK、編程語言層出不窮,對於程序員的要求也越來越高。在腦力勞動和體力勞動的雙壓力之下,年齡大小的優劣無疑顯現出來,那麼優勝劣汰的自然法則之下,無法與時俱進的人最終只會被淘汰。
一、
我今年37歲,曾經住在矽谷,並且我的整個職業生涯中一直從事技術工作。我從來沒有在技術上「大獲成功」,也從沒有「走入管理層」。但是到目前為止,我已經處在了職業生涯的最佳位置。
「35歲以後應該做什麼」這個問題,不應該固性思維,而應該以一個成長的思維來看待。
在我20多歲的時候,一切看起來似乎都很好:我在創業公司工作,並且取得了一些成功,但每當我環顧四周時,都不斷看到我這個年齡段的人在變得更酷,更酷的工作、汽車和生活。如果說在過去的十年裡我發生了什麼變化,那就是我從一個固定的觀點轉向了一個成長的思維模式。我已經認識到在學習的時候我才是最快樂的,並且更注重學習的過程而不是最終的結果。
在某些方面,我實際上比前幾年過得要稍差一些,但我變得更快樂、更健康、也更有內涵。毫無疑問,我和其他人一樣,有糟糕的日子也有美好的日子,但總體而言,事情正在逐漸變好。
「矽谷的生活結束於35歲,除非你大起大落」——這是不正確的,但這要等到35歲才會意識到。
二、
35歲以上確實會面臨著「過山車」般的境況,這是毋庸置疑的。
在軟體開發方面,軟體開發市場所需的技能每五年都要進行一次檢修,所以程序員們需要乘著技術革新的浪潮才能在5年內成功通關。如果不持續升級,隨著年齡的增長,那麼會越來越難以躲避被淘汰的局面。例如,一個35歲的ASP程序員編寫了10年代碼,但是他沒有機會編寫ASP.Net或是.Net-MVC等應用程序,如果他失去了工作,那麼不具備這10年的市場所需技能,10年後的他只會被淘汰。
同樣,軟體開發人員在過去15年中不斷提高的生產力,使得開發經理、架構師、構建者和其他一些人的需求大大減少,因為在許多小團隊中,開發人員也會順便接管一些其他的角色,因此,如果一名專職的經理、建築師或建築商5年後失去了工作,就很難在沒有生產編碼責任的情況下找到另一個相同職位的工作。即使找到了另一份工作,很明顯他就需要和一個年輕人競爭:這個年輕人在相關技術上有兩年的編碼經驗,而你有10年的無關經驗和0年的相關經驗。
另一大趨勢是稀缺資源性質的變化。20年前,電腦是稀缺的資源,項目負責人圍繞稀缺的計算資源和繁瑣的語言、開發工具組織他們的軟體開發計畫和工作習慣。但在今天,計算資源並不稀缺,語言、流程和開發工具也得到了極大的改善。如果一個組織在軟體開發習慣上已經使用了10年,那麼這些新的實踐需要經過一段痛苦的適應階段。
對於這些因素中的每一個,35歲以上的開發者或多或少地都會受到影響。此外,超過35歲的開發者往往還有額外的壓力,如家庭、財產、社區義務和與年齡有關的健康問題,這往往就使得他們不願意耗費全部的工作時間,以及下班後與團隊交往等額外消耗。
三、
當我37歲的時候,我決定結束自己在學術界和工業界多年的研究工作,搬到矽谷。那時我正在西班牙的一家大型電信公司做研究,雖然我聽說過35歲以後在矽谷工作不會成功的,但我最終仍然決定加入Netflix。
是的,現在我已經搬到山谷,加入Netflix並且領導他們的演算法/建議團隊近4年時間了。事後看來,我認為這是一個非常成功的選擇。但是由於我最近(41歲)加入了Quora,所以我的矽谷之路並沒有結束。雖然在Quora這樣的年輕創業公司中的平均年齡相當低,但這並不意味著當你超過35歲的時候就不會成功。事實上,正因為很多人都還年輕,經驗才是我們最大的財富。
現在我已經廢除了「矽谷35後」這個論斷了,但我認為任何大的職業變化都應該在40歲之前。
四、
2001年,我加入了谷歌軟體工程團隊,當時我55歲——沒錯,在谷歌工作的整整四年裡,我是最老的員工。
那四年我做了什麼?我不是經理......我只是一名軟體工程師,與我所有親愛的同事一起工作,他們的平均年齡比我年輕25歲。沒有人覺得我的年齡有問題,我只是團隊的一名普通成員而已。
沒有什麼所謂的「過山車」,只會變得越來越無關緊要罷了。為了避免變得無關緊要,我從不停止學習。在1975年開始我的職業生涯時,我們仍然使用打卡和大型機,使用Fortran和PL/1進行編程。20世紀80年代,有前途的新技術應用了人工智慧,我很幸運找到了一個AI研究團隊的工作,在那裡我不僅學到了更多關於軟體概念的知識,而且學到了尖端的重要性技術。
在經過十年的Lisp編程之後,1990年我轉向了新的面向對象語言C++。幾年後,網路爆發,我開始使用HTML和JavaScript等更多新技術進入網頁開發。學習,不斷學習,是我職業生涯中所有轉變的關鍵。
我看著我這個年齡的其他人要麼進入管理階層,要麼開始攀登企業階梯,有的也變得無關緊要,變成失業者,或轉向全新的事業。幾乎在我所有的早期工作中,我的經理都覺得我應該成為一名經理——但我自己知道我討厭做一名經理,我只喜歡開發軟體。有一天,當我的經理走進我的辦公室,看到我在一個程序上工作,對我說:「你還做什麼軟體?你現在是經理!「
我喜歡且擅長寫程序,為什麼要強迫自己做一個經理?這給我帶來了巨大的壓力,我只想回到我的電腦前,專注地解決一些問題。最後,我在1996年的一天宣布,「我再也不會管人了」。我想,我不在乎是不是永遠不能退休。
2000年,我利用新獲得的PHP技術,從波士頓遷移到了矽谷,那時我非常習慣和同齡的人一起工作,但突然有一天我下崗了。然後我進入了一家200名員工的小公司,向我承諾不會指望我進入管理層。事實上,她說他們剛剛決定聘用一些有幾十年經驗但又不想當經理的人。
四年後,我退休了。我一路上結交了許多親密的朋友,同時我仍然在學習新技術。在過去的一個月中,我已經解決了Ruby,現在我正在開發Ruby on Rails,並且未來還將一直繼續。
最後
技術焦慮是大齡程序員老生常談的主題,其實不論國內國外,不論市場境況如何,面對生活和工作的重要岔口,都會不可避免地陷入自我懷疑的怪圈,重要的是隨波逐流、逐漸淘汰,還是迎難而上、順勢逆襲——總之,保持一顆不斷進取的初心是不會錯的,更要做好技術焦慮的減法和解法。