軟體工程師能走多遠?
很高興看到阿里雲的成立。這意味著阿里已經把對網際網路技術的投入提高到了的戰略高度。過去經常聽工程師抱怨阿里不是一家技術公司。現在再沒有理由可以這樣抱怨了。但是要實現這個戰略,沒有技術儲備是不行的。招聘和培養工程師顯然是目前集團各子公司同時面臨的一個令人頭痛的難題。
由於曾經在矽谷工作過,我常想,為什麼矽谷有這麼多40歲以上的工程師,而國內30歲以上的就已經寥寥無幾了?為什麼矽谷的工程師的技術壽命可以這麼長?為什麼他們可以不浮躁,不急功近利呢?阿里要走102年,阿里的工程師可以一起走多遠呢?
在國內,有2-3年工作經歷的工程師就可以算有經驗的了。工作了5年以上的工程師往往會考慮向管理崗位轉型,或者向業務轉型。中國目前處於高度發展的階段。很多企業缺乏管理人才,工作5年就被提吧為幹部很正常。但留下的後遺症是30歲以上的優秀技術人才極度缺乏。
在矽谷,5年以下工作經驗的人都算是初級的。一般高階工程師需要5年以上的工作經驗,架構師一般需要10年以上的工作經驗。這還不算上大部分矽谷的工程師都有計算機碩士學位。畢業的時候一般已經是24,25歲了。再工作10年,35歲才升為架構師是非常正常的。然而,公司裡的架構師有限。其實大部分 40歲的工程師仍然在一線工作,比如寫程式,做測試,進行專案管理等。
美國矽谷是計算機人才集中的地方,也是創業公司群集的地方。在矽谷,從只有幾個人到幾十個人的創業公司比比皆是。他們的共同夢想就是經過幾年的奮鬥,通過技術的創新,再次締造像英特爾,蘋果,思科,甲骨文,雅虎,Google,Facebook等這樣的神話。即使創造不了神話,也可以通過IPO或者被收購的途徑創造財富。在這樣的環境中,公司對管理人才的需求同樣是非常大的,但為什麼仍然有大量的工程師“無動於衷”,仍然從事著技術活兒呢?
我認為有兩個主要原因。
一個是外因。在美國,管理崗位的待遇和技術崗位待遇相差不大。特別在崇尚技術的矽谷,經理的地位並不比工程師高,甚至更低。比如架構師在公司裡的重要性往往要超過經理。因此管理崗位的“誘惑”並不大。在這樣一種技術氛圍中,走技術路線很正常。
但是即使在這樣一個技術環境中,矽谷對管理人才依然需要。當工程師表現出色時,也有很多機會轉成管理崗位。然而相當一部分工程師會主動放棄這樣的機會,而繼續幹他們的技術活兒。這就是內因在驅動了。技術工作和管理工作的本質區別是,前者面對的是系統(軟體,硬體等),而後者面對的是人。系統問題再難,只要有足夠的時間和資源,一般都可以解決。越難的問題,解決之後越有成就感。而人的問題,有時候看似很簡單,卻解決不了。是人,總要有頭疼腦熱,生病的時候。是人,免不了產生情緒,從而影響工作。有人的地方,就會有矛盾,就會有摩擦。簡單地講,系統會按照事先設定的邏輯執行,是死的,因此往往可控,可規劃。而人是活的,不是輸入幾條命令就可以控制的,而是需要溝通,需要感情的。因此,大部分矽谷的工程師很“聰明”。他們主動選擇“簡單”地工作。白天好好地工作,晚上好好地生活。何必去“自尋煩惱”,轉做管理呢。
其實不光是矽谷的,其它地區的工程師都有一個共同的性格特點,追求簡單,追求完美,思維方式上比較理性和邏輯性,看問題比較趨向於非黑即白。這樣的性格非常適合做技術工作,可是我們中國的工程師有時候偏偏看不到自己的這個特點。
不想當元帥的士兵不是好士兵。工程師希望向管理方向發展是非常正常的。但問題是為什麼和怎樣?我碰到過不只一個工程師告訴我,希望轉做管理的原因是擔心今後年級大了,技術能力跟不上了。我覺得非常可笑。這就好比是一個士兵說:我殺敵本領不行,不適合上戰場,那就讓我做軍官吧。一個沒做過士兵的元帥肯定不是好元帥。其實做技術和當兵畢竟不同,不是靠體力吃飯的。年級大點往往是優勢。
我覺得走技術路線對工程師性格的人是一條捷徑。如果能靜下心來仔細鑽研技術,一定能在某個方面做得比別人好。這裡的關鍵是好奇心和耐心。在今天這樣的資訊時代,找到答案並不是一件難事。難就難在有沒有好奇心和耐心去找。比如,Java程式設計師天天都用到String這個型別。但有沒有想過為什麼 Java語言裡有String和StringBuffer兩種字串型別,而不是一種?有沒有去看過String和StringBuffer的原始碼?再例如,天天做網站和HTTP打交道,有沒有看過HTTP協議?有沒有嘗試過不用瀏覽器,wget等工具,而用最原始的telnet方式來訪問網站?看看這 HTTP的頭裡到底是什麼東東?在我面試過的工程師中,做過這幾件事的人不到5%。
一旦瞭解得比別人深,就容易看到問題本質,產生信心,激發樂趣。這時候你的解決方案就比別人漂亮,逐漸建立起了影響力,成為了“專家”。因此公司裡的疑難雜症會主動找上門來。你就比別人得到了更多的解決問題的機會,從而更快地提升能力。一旦進入良性迴圈,你的進步就比別人快,但付出的卻不一定比別人多。這時候你已經走上了捷徑。
在技術人才極度缺乏的中國,在眾人盲目追求管理崗位的那點虛榮的今天,如果你的性格是工程師型別的,走技術路線其實是非常適合的。如果你才畢業,那你是最幸福的。你可以給自己制定3個甚至4個五年計劃。例如5年打基礎,10年變專家,15年國內知名,20年世界聞名。如果你已經奔三或者三十出頭,那你快成熟了,但離開花結果還早呢。不信你看看下面幾位我們都熟悉的人。
拉里·沃爾(Larry Wall)33歲時出版了《Perl語言程式設計》一書。之前他是一個系統管理員。
網際網路之父溫特·瑟夫(Vint Cerf)在發明TCP/IP時,已經35歲。
全球資訊網之父蒂姆·伯納斯—李(Tim Berners-Lee)在37歲時才發明了全球資訊網(WWW)。
丹尼斯-裡奇(Dennis Ritchie)的《C程式設計語言》一書出版時,他37歲。
Java之父詹姆斯·戈士林(James Gosling)40歲時才因為發明Java而成名。
蘋果公司創始人之一史蒂夫·沃茲尼艾克(Steven Wozniak)在今年年初以首席科學家的身份加入一家創業公司,研發基於高速快閃記憶體技術的儲存。他如今已經59歲了。