某數學家在談論計算機科學家的時候曾說過:計算機科學家是那些數學不夠好當不上數學家的人。這種說法帶有偏見但也不是一點道理都沒有。那麼計算機科學家(Computer Scientist)同程序員(Programmer),俗稱「碼工」,又有什麼差別呢?答案:程序員是那些數學不夠好,當不上計算機科學家的人。
計算機科學在比較低的層次是以編程為主,對數學的要求不算高,但如果讀到博士,目的不再是開發一個實用的軟體或產品,更多的是發明一個新奇的演演算法,一種新的語言,處理信息的一種新手段等。不但要提出這樣的原創的東西,很重要的一部分是要在數學上加以證明,它確實比以前的方法更快更好。學到博士,計算機科學不再是編程,更多的是數學。
要說明這點,我們不妨對比一下兩位有名人物,看他們是屬於計算機科學家還是屬於碼工。
前微軟CEO比爾·蓋慈是不需要太多介紹的。他雄居世界首富多年,以從哈佛輟學,創立微軟而出名。我在博文「比爾·蓋茨和數學55傳奇」談到他在哈佛讀大一的時候上過號稱全美最難的數學課 - 數學55。比爾·蓋茨還對一種比較少見的排序方法 – 煎餅排序(pan cake sorting),有過重要的貢獻。他發明了一種更好的排序方法,並將這個最佳記錄保持了30多年。蓋茨在完成了數學證明之後寫了一篇論文「前綴逆轉排序的邊界問題」在學術雜誌上發表,這也是他唯一的論文。由此可以看出比爾·蓋慈是計算機科學家,他原本是做教授的料,但人生跟他開了個小玩笑。
另一名哈佛輟學生馬克·扎克柏格(Mark Zuckerberg)也很快接近不需要介紹的地步。我在博文「當華裔女遇上猶太男」講述過他與同學Priscilla Chan的故事。他在哈佛時也上過數學55嗎?沒有,他上的數學課要低兩個級別。電影「社交網站」有這樣的鏡頭,扎克柏格在校園裡搗鼓一個無聊的網站叫FaceMash給女生們的容貌排序:屏幕上會跳出兩張哈佛女生的照片讓玩的人選哪一個更火辣(Hot or Not),然後得勝的那張再同下一張對比。這個網站的核心是一個排序的演演算法 - 這還是他從朋友Eduardo Saverin那裡偷來的:
Ea = 1 / (1 + 10(Rb - Ra) / 400)
說實在的,這個演演算法看上去沒啥了不起的地方。但扎克柏格是一個編程天才,他居然把這個很傻氣、有點噁心的網站做成了,還相當成功。男生多認為只是好玩,哈佛女生自然火很大,認為他是性別歧視而且很不成熟。這就是臉書(Facebook)弱智的前生。從這點可以看出,扎克柏格不是計算機科學家而是如假包換的碼工,而且還頗為猥瑣。
屌絲的絕地反擊
雖然有時被稱為「矽谷科技新貴」,程序員有個形象的問題。不信,你想想哪部電影給了程序員有正面的演繹,連駭客都比程序員的形象要好。這點連華裔都知道,程序員常自稱「碼工」,意思是寫代碼的工人;最近,又自降一級,稱為「碼農」,整天在那點破地上扒來扒去。英文里沒有碼工一詞,但有一短語相近:Code Monkey (「代碼猴」或者「程序猿」)。「程序猿」幾乎可以肯定來自於法國數學家Emile Borel的「無限猴子定理」(Infinite Monkey Theorem)。定理指出,猴子在鍵盤上隨機敲打,假設有無限的時間,他幾乎可以肯定打出任何一篇給定的文字,比如莎士比亞全集。碼工們自嘲:我們也就是隨意敲打,耐心點等著,總有一天好東西會出來。
程序猿
當然碼工不僅僅有形象的問題,他們常常覺得自己混的很差。我知道這一點因為我住在矽谷,有很多碼工朋友。工作忙壓力大,出問題時當替罪羊,出成績時功勞又被人搶走,沒完沒了的裁員,上升空間受印度人擠壓,等等。也不僅是華人有這種感覺,美國歌手Jonathan Coulton在2008年就寫過一首叫「Code Monkey」的歌,唱出了很多灣區猥瑣男心裡的話。
沒勁的會議,苛刻的老闆,程序猿活的很憋屈。想向辦公室的秘書獻殷勤,但也沒人理睬,只能慢慢走回他的CUBE。歌中唱到:
Code Monkey not thinking so straight (程序猿腦子直發毛)
Code Monkey not feeling so great (程序猿感覺很糟糕)
可是三十年河東,三十年河西,誰能想到老母豬也能上樹,猥瑣的碼工男也有出頭的一天。
最近幾年機算機正在成為全美最熱門的專業。比如,哈佛的計算機入門課CS50在2014年有818人選修,佔全校本科學生人數的八分之一,成為選修的人數最多的課程。這個趨勢在加州灣區看得更清楚,計算機不再只是極客、書獃子、亞裔的領地,很多人原本會去做金融,當律師,做醫生的學生改去學計算機。一時間百舸爭流,有如加州淘金熱再起。
計算機科學突然變「酷」或許同扎克柏格有關係。臉書的成功使人們發現當碼工原來是可以發大財的。的確,要想在30歲前成為億萬富翁,當碼工、開初創公司可能是唯一的方法。從某種意義上講,扎克柏格是運氣極佳、中了大獎的「程序猿」– 他打出了莎翁全集。臉書開始時只是在哈佛校園,接著擴展到其他大學,最後又向公眾開放,一路擊敗多個競爭對手比如MySpace而成為社交網站的龍頭老大。扎克柏格也隨著公司從碼工升到上市公司的總裁,成為最年輕的超級富翁之一。
有人說:扎克柏格可能要算屌絲逆襲的最佳註解,太勵志了。這個說法有些道理,但說他是屌絲恐怕有點過分。扎克柏格雖然沒有畢業,是哈佛的學生本身就給了他即刻的可信度,在同風險投資談判時就有一定資本。哈佛的品牌對臉書幫助良多。以前風險資本不大放心讓碼工出身的創始人當CEO,扎克柏格的成功也打破了這一玻璃天花板。
計算機科學的熱潮能保持多久沒人知道,也許直到下次高科技泡沫破滅。屆時將會血流成河,就像2000年泡沫破裂時一樣。在這之前,歌舞昇平,一片繁榮景象。儘管如此,我覺得最優秀的數理人才能投身高科技業,不管怎樣,是美國的福氣。當我們回過頭來看那些已經離不開的科技產品,無論是個人電腦,還是英特網,無論是無所不能的智能手機,還是每天都要用的搜索引擎,我們都可以發現計算機科學家以及普通程序員的影子。他們才是這個偉大時代的真正的英雄。
相關閱讀:為什麼矽谷最聰明的年輕工程師忙於製造「性簡訊」軟體
本文的圖片均來自網路
和程序員約會的優缺點:他們不花心(沒有時間),但他們對你也沒有時間
他們喜歡KISS,但意思是「越簡單越好」
他們會很多語言:計算機語言
CODE MONKEY VIDEO