天天看點

程式員憂慮

不久前,現年 64 歲的 Bill Budge 老爺爺給谷歌 V8 引擎(V8 是 Chromium 項目的 JavaScript 解釋器。如果你現在閱讀本文的工具是基于 Chromium 核心的微信版本,那麼,你可能就在使用 V8)送出了一些更新檔。

  64 歲老爺爺的更新檔

在最近的一年裡,Bill Budge 在這個項目裡非常活躍:

程式員憂慮

我不追星,看到有演員拍出好的電影,最多說不錯,不至于去調查這個演員的背景資料。但我還在學校的時候,就是讀着理查德斯托曼和 Linus 的生平小故事開始了解開源和 Linux 核心。

是以對 V8 子產品裡面的 Bill Budge 老爺爺,我也沒放過:

  出生年月   參加工作時間   學校   職位
  1954. 8   1980   加州大學伯克利分校   Software engineer

這四條如果是不同的人,或許是平常的事情。但是放到了一起,就讓我肅然起敬:

  • 1954 年出生,現年 64 歲;
  • 1980 年參加工作,工作了近 39 年;
  • 加州大學伯克利分校,它的計算機和工程世界排名前幾;
  • 目前在谷歌從事軟體工程師的工作,還在寫代碼。

我見過 70 後的程式員,但是我從來沒見過 64 歲還在寫代碼的程式員。有着高貴的出生,在基礎的軟體領域持續耕耘,勤奮(看看他最近一年給

V8 引擎送出的那些更新檔的數量),這麼一個老爺爺,和一堆 70、80、90 後坐在一起,開發和改進了軟體行業最困難的子產品之一 V8

引擎,這是怎樣的境界?

有興趣的可以去領英和維基上搜尋這個老爺爺的詳細履歷。這裡僅僅截取了他的領英首頁,來表達我對他的敬仰:

程式員憂慮

  焦慮的 35 歲

工作了 39 年的老爺爺,在世界上最偉大的企業裡,充滿激情地寫着代碼,維護世界上最困難的子產品。當然,他肯定會在退休前的幾天繼續寫代碼打更新檔,我對此深信不疑。

然而,最近國内出現了很多 35 歲中年程式員焦慮、甚至被裁員的消息。譬如“老闆告訴我,超過 35 歲的履歷不用看了”,又如“程式員 35

歲之後不轉管理隻能混吃等死?” 。從表面看,似乎我們的環境(不讨論國企和事業機關)和别人的不一樣,我們的環境是排斥 35 歲以上的程式員的。

但是,是否需要 35 歲以上的程式員,不僅和企業研發的産品的知識密度有關,也和程式員自身的知識密度有關。本文嘗試着從企業的角度和程式員的角度,也就是供求的雙方,來分析這個問題。

  企業的需求和知識的密度

老爺爺所在的 Chromium 團隊,工作了很多年的大有人在(部分名單):

  姓名
  圖形   Antoine Labour   2001   ENSEEIHT   Principal engineer
  Adrienne Walker   2004   University of North Carolina at Chapel Hill
  網絡   Asanka Herath   2005   Massachusetts Institute of Technology
  Bence Béky   2014   Harvard University
  多媒體   Dale Curtis   Texas A&M University   Staff Software Engineer
  Fredrik Hubinette   1993   Linköping University
  V8   Adam Klein   University of Washington
  Bill Budge   University of California, Berkeley
  Blink   Rick Byers   2003   Senior Staff Software Engineer
  Darin Fisher   2000   Software Engineer

除了 2014 年參加工作的 Bence Béky(他是 PHD),其他的工作時間都超過了 10 年。可以看到,老爺爺和他的谷歌 Chromium 團隊,對 35 歲以上的程式員是有需求的,并沒有所謂的年齡界限。

程式員憂慮

國内的有些企業,譬如華為也很歡迎 35 歲以上的工程師。企業要做到華為這樣的知識密度,光靠人頭和資本不夠,還需要一代一代人的縱向積累。沒有任何理由去相信華為會放棄那些掌握了核心技術的老員工,否則他不可能在知識密集的通信行業做到目前的位置。

關于網上流傳的華為辭退部分 35

歲以上的員工,抛開華為的狼性文化,和生存的艱難等因素,這其實是華為對在職員工的再次雙向選擇(确實也很殘忍,這樣的再次雙向選擇在其他私企和外企也同樣存在)。如果到了這個年紀,技術沒有深厚的積累,也沒有走上管理層,那說明員工積累的技術和經驗不适合這個企業。

是以,老員工真正要思考的不是年齡的問題,而是知識的密度。

但是确實有些企業會在招聘廣告裡明确年齡限制。以前去招聘網站搜尋程式員的職位,經常看到年齡要求 35

歲以下。寫本文之前,又去搜尋了一次,要求工程師年齡 35 歲以下的職位少很多了。但是還是有年齡限制的,有些放寬到了 45 歲,有些依然堅持要求

35 歲以下:

程式員憂慮

如果說華為,對 35 歲以上的員工再次應聘,隻是為了檢查員工的技術積累是否深厚。那麼,像這樣在招聘需求裡明确寫上要求 35

歲以下的,企業應該思考下自身是否有足夠的知識積累。或者說,有這樣要求的企業,可能是資本密集型的,而不是知識密集型的。在資本密集的企業裡面,程式員的技術積累沒那麼重要,那麼程式員的年齡可能就成了緻命傷。

資本和知識的界限其實是模糊的。在一個開放的世界,錢可以買到任何東西,資本的密集和知識的密集很難區分。但是現實世界遠遠沒有這麼開放,這個不開放的世界,給資本和知識圈上了各自的邊界。

我們來看一個資本密集的例子:小米公司。魅族比小米起步早,技術和産品在早期做的也很好,但是沒有建立起足夠的技術壁壘。小米在商業模式和資本方面勝過了魅族,能夠用更優秀的人,是以後來小米獲得了的成功。

但是資本不是萬能的。如果資金非常雄厚,甚至不計成本,還是可以在較短的時間内打造出 BAT

或者小米、摩拜單車滴滴等的。但是再有錢,也很難在短時間内造出蘋果、谷歌、Intel

和高通。一方面是美國對核心技術出口做了限制,用錢很難買到他們的人和技術。另一方面,在基礎技術方面我們落後太多年了,短時間很難趕上。這是美國人在知識上的成功,他們知識上的密度不是我們多加人、多加錢、用幾年時間可以趕上。而是要一代人一代人的接力。

而且,在資本幫助下做出産品占領市場後,企業和資本都是要逐利的。産品和團隊最終還是會回歸到知識密集的路線上來,這樣才能保持産品的競争優勢,也能減少被資本更加雄厚的團隊搶奪領地的機會。

企業之間互相搶占對方領地的例子很多,前面談到的小米和魅族,以及 BAT 之間:騰訊控股易迅,推出自己的搜尋;阿裡釘釘;百度也有百度

Hi。财大氣粗的資本們,總是想去攻下别人的領地。BAT

之間互相侵消結果不怎麼明顯,并不是技術本身的差别多大,而是資本最後還是要看收益。再看看去年打得火熱的 ofo 和摩拜單車。ofo

先期産品設計輸了一着,但這不是兩者輸赢的關鍵。在打價格戰的時候,價格決定了消費者的選擇。當然了,摩拜的産品維護成本低,這為他的資本赢得了更多的時間。

企業的産品決定了企業對人才深度和廣度的要求,也影響了企業用人的時候到底有沒有年齡的要求。

如果企業的知識密度很高,譬如前面談到的谷歌和華為,對人的需求其實不會加上年齡限制的。有些企業的工程師團隊過分年輕化,其背後的本質是,這些高科技軟體網際網路企業,是資本密集型的,企業的知識密度較低,其核心

IP 的科技含量不高。這時候焦慮的應該是企業,企業應該思考為什麼我隻要 35

歲以下的員工,是不是我們的技術壁壘不夠?沒有足夠的技術壁壘,如果有人拿錢砸我,我該怎麼辦?

BAT

都是大公司,大公司之間是如此頻繁地試圖侵入對方的領地,被侵入的也在不遺餘力地利用資本和壟斷地位的暫時優勢來提高自己的知識密度,加強自己的護城河。是以那些隻要

35 歲以下員工的中小公司,也需要思考下,該如何挖深拓寬自己的知識護城河。否則很難面對同行的技術競争,更難以應對大資本使勁砸錢。

  每個程式員都有不一樣的十年

在我小時候,如果說一個木匠做木工很多年了,我們會很自然地認為這個木匠做的東西很好。現在,我們要是說,這個程式員寫代碼好多年了,是不是差不多就等于變相的貶低人?這差不多就等于說,你看他工作了十多年還是程式員。自古以來,對于工匠,我們都認為老的就是好的。老的有經驗,做出的活計好。那為什麼現在,老的程式員反倒不怎麼吃香呢?如前面的招聘廣告,就要求

35 歲以下的程式員。

程式員和企業,是供給和需求的關系。前文從企業的角度分析了為什麼有些企業隻有 35 歲以下的需求,下面我們從供給,也就是程式員的角度來看這個問題。

前面談到,企業知識的密度決定了企業要不要 35 歲以上的程式員。撇開那些知識密度不高的企業不談,就是華為這種知識密度較高的企業,也會選擇性的讓一些 35 歲以上的工程師離職。這個時候,問題就不僅僅出現在企業本身了(不考慮做了管理或者創業的情況)。

一個原因是,35 歲的我們,所積累知識的深度和廣度都不夠,因而失去了成本效益。35 歲的我們,把知識密集的腦力勞動,漸漸做成了機械的缺少創造性和深度思考的體力勞動。

腦力勞動做成了體力勞動,是技術的快速更新換代、以及社會,個人浮躁造成的。以 2007 年到 2018 年,一個大概的十年來看,這個行業經曆了很多熱點:

  • 新的移動計算平台:IOS,Android,Chrome、HTML5;
  • 雲計算, IOT;
  • 新的程式設計語言,程式設計架構;
  • VR,AR,AI。

在這個十年裡面,有的人可能把所有主流的作業系統都嘗試了一遍(被動的或者主動的,譬如我就被動地把 Android、Windows、IOS 的

HelloWorld

都寫了一遍);有人做全棧,将網站的背景和前端都學了;也有人把熱門的語言和架構都學習了一遍;還有人可能硬體、軟體、管理之間換來換去。一個技術切換很頻繁、積累不是很深厚的程式員,在企業看來十年工作經驗和兩三年的差别不會很大的(不排除少數非常有天分,能夠把所有主流的技術都學會的程式員。本文讨論的是更一般的情況)。是以在這個時候,企業當然優先選擇經驗少一些但是更具有成本效益的程式員。

時代總是在變化的。有些熱點,譬如 WebOS、裸眼 3D 都漸漸散去了,VR、AI

也經曆過低潮高潮。有些卻始終吸引着人們前進,譬如作業系統雖然從 Windows/Linux 變成了

Windows/Linux/IOS/Android,這些系統在這十年裡面也都經曆了好多次的版本更新,但是一些基本的東西并沒有被徹底颠覆,颠覆的,往往是使用者體驗和軟體架構。

少數醉心于技術本身的人,能夠堅守一些相對長期的大的技術方向,看透新舊技術背後的算法和數學實體原理,做到新舊技術融會貫通。因而在每次新技術出現之後,他的知識的密度更高了。

  結語

目前 AI 技術這麼熱門,我身邊的很多人都開始把注意力轉到 AI。這個時候,你是選擇把原來技術的新舊版本融彙貫通,還是跟着曆史的車輪投入 AI 陣營?

當我們工作 39 年後,是否還有機會像這個老爺爺一樣,滿懷激情,給某個著名的、影響深遠的項目送出一個老爺爺更新檔? 還是像我家裡那位說的,以後看到年邁的看門老大爺,還帶點秃頭的,有點焦慮的,可能就是曾經的程式員?

繼續閱讀