谷歌大牛Jeff Dean是如何成為互聯網戰神的
1
谷歌大牛Jeff Dean是如何成為互聯網戰神的 |
|
“光在真空中的速度曾經是大約每小時35英里,然后Jeff Dean花了一個周末優化了基礎物理學。”——出自“關于Jeff Dean的事實” |
|
其實,“關于Jeff Dean的事實”這個G+帖中描述的并非是真實的。不過有人大費周折為他建立了一個類似于“關于Chuck Norris 的事實”這樣的網站,這倒是件不同尋常的事。這是因為Jeff Dean是一位軟件工程師,而軟件工程師們通常是不會像武術界的戰神Chuck Norris那樣的。一方面,他們不是獨行俠,軟件開發從本質上來講是一個協作過程。另一方面,他們也從來不會像這個視頻里面的Chuck Norris那樣用沖鋒槍來打牛仔。 |
|
譯注:Chuck Norris(查克·諾里斯)是空手道世界冠軍、美國電影演員。他有另一個更為人所共知的譯名“羅禮士”,出自功夫名片《猛龍過江》。 他發展電影事業初期,在李小龍執導的武打電影《猛龍過江》中飾演一名空手道高手Colt,與李小龍在羅馬斗獸場決斗,公認是經典的武打場面。(摘自維基百 科) |
|
Jeff Dean |
|
然而,在2007年的愚人節,一些慕名而來的年輕谷歌工程師覺得應該給Jeff Dean制作一個網站,來贊揚他在編程方面的成就(譯者:以下都只是玩笑,并不是真的)。例如: |
|
編譯器不會向Jeff Dean給出警告的,Jeff Dean會給編譯器警告的。 |
Jeff Dean是直接寫二進制代碼的,然后他寫了源代碼,作為給其他開發人員看的文檔。 |
當Jeff Dean考慮人體工程學的問題的時候,這是為了保護他的鍵盤。 |
有一天當Jeff Dean在優化一個功能時,他被迫發明了異步調用的API。這樣的話這個功能可以在它被調用之前就可以返回結果了。 |
|
關于Jeff Dean的一個真正的事實是:你必須是一個計算機高手,才能了解人們說的很多關于Jeff Dean的笑話。(對此有興趣的讀者,Business Insider 網站提供了一些關于他的比較流行的笑話的解釋。)如果你沒有計算機科學的背景知識,那么你就很難理解那些玩笑中談到的那些他的虛假成就,更不用說理解他在 工作中真正的成就了。Dean親手打造的系統,例如,MapReduce、BigTable、Spanner等,對于眾多Google用戶來說并不知道是 來源于Goolge的。但是,這些程序都是Google和現代互聯網存在的基石。他現在所工作的一些項目,很有可能會再次為信息技術帶來革命。 |
|
當你在思考是誰創造了當今互聯網的時候, 你可能會想到很多公司的創始人和CEO,比如:蒂姆·伯納斯 – 李(Tim Berners-Lee)、馬克·安德森(Marc Andreessen)、拉里·佩奇(Larry Page)和謝爾蓋·布林(Sergey Brin),也許是馬克·扎克伯格(Mark Zuckerberg)。這是有道理的,這些人中的每一位都發明了一種產品或框架,塑造了我們今天使用互聯網的方式。 |
|
同時,在這些已從繁重的日常工作中解脫出 來的巨人陰影下,是一幫不知名的開發人員,在鍵盤上每日敲打出來給我們使用的產品和系統。同其他行業不同的是,在高科技行業,這些人通常是不可替換的。一 個出色的會計可能會幫你節省5%的個人所得稅。一個出色的棒球選手的上壘率也就比一般球員高出那么一點點(譯者:棒球運動中一般會用上壘成功率,擊球成功 率等來衡量球員的水準)。但是一個出色的軟件開發人員在一周中的工作可能需要一支近10人的團隊花幾個月才能完成。這種差異是指數級別的。這個并不是一個 關于Jeff Dean的事實,而是硅谷的高科技行業的常識,也就是為什么最好的公司會花如此大的代價來吸引頂尖人才。 |
|
在Dean 1999年中加入Google的時候,他已經擁有了美國頂尖年輕計算機科學家的榮譽。在家用計算機剛開始普及的時候,Dean說他總是在尋找能夠在一臺給 定的機器上不斷追尋極限性能的方法。當他還是一個高中生的時候,他編寫了一個軟件來分析大量的流行病數據。據他說,他的軟件比是當時專業軟件快26倍。這 個系統稱之為Epi Info,被美國疾病控制中心(Centers for Disease Control)采納并翻譯成13種語言。當他在讀計算機科學博士的時候,他研究的是編譯器,用來將程序源代碼翻譯成計算機能夠執行的語言。他說到,“我 總是喜歡運行得快的代碼”。 |
|
不過Dean并不是安于現狀的人,他也不 想把一輩子都花在編譯器上,所以他后來離開了學術界。三年不到,他加入了當時只有20個人的Google。(根據Steven Levy的《In the Plex》一書, 作為搜索初創企業的Google,當時覺得Dean是一個來之不易的人才。)他為早期的Google News 和AdSense 做出重大貢獻,其中AdSense這一廣告產品改寫了互聯網公司的游戲規則。在此之后,他轉而關注了公司核心的問題之一:擴展性。 |
|
Google公司基礎算法的最初想法來自 于Page和Brin, 他們兩在當時都算是頂級的開發人員。在90年代末,他們創造了PageRank算法,一種在用戶給定搜索查詢的時候返回最相關搜素結果的算法。對于搜索結 果相關性的專注讓Google一舉超越了Yahoo, AltaVista以及當時處于領先地位的其他各個搜索引擎。不過隨著Google變得越來越成功的同時,它也碰到了一項巨大的技術挑戰。Dean回憶 道,“我們不能足夠快地部署更多的機器來響應需求”。 |
|
所以Dean和他的同事們,包括另一位出 色的程序員Sanjay Ghemawat一起找到了解決方案。這個問題就像他在高中時對待Epi Info 一樣,看起來象是一個硬件問題。Ghemawat幫助帶領了一個團隊開發了谷歌文件系統(Google File System, GFS),使得超大型的文件能夠分布地被存儲在眾多廉價的服務器上。然后Dean和Ghemawat一起開發了一個稱之為MapReduce的編程工具, 來幫助開發人員有效地使用這些機器并行處理龐大的數據集。正像編譯器幫助程序員在編寫程序的時候不用考慮CPU是如何處理該程序一樣,MapReduce 使得Google的開發人員在調整搜索算法或者增加新功能的同時不必擔憂如何將這些運算并行化,也不必擔心如何處理硬件的故障。 |
|
Dean和Ghemawat的方法如此之 強大,當他們在2004年的一個會議上發表了一篇研究論文之后,這個方法馬上就變成了業界的標準。直到今天,MapReduce成為了眾多其他項目的重要 基石,其中之一就是著名的開源框架Hadoop。而正是Hadoop, 造就了業界中新的流行語“大數據”。從在線旅行到能源勘探等不同的領域中都會用到大數據的方法。而正當Google 開始在一些核心的應用中從MapReduce進一步擴展到其他新的編程模型時,Dean說他還是看到許多夏季實習生到Google后開始新項目的時候,都 會大量地開始使用MapReduce。 |
|
MapReduce正是Google的創 始人之一Page所說的10倍效應的一個好例子。10倍效應說的是比原來的好10倍,而不是比原來做得好10%。MapReduce并沒有使得某一種特定 類型的運算更快一點,而是幫助了Google的每一位開發人員可以做到他們以前做不到的事情。 |
|
Dean的其他幾個項目也有類似的指數效 應。在谷歌文件系統的基礎上,他和Ghemawat創建了一個分布式數據庫系統,名為BigTable。 BigTable可以處理1PB的數據(1 PB=1千萬GB。)( 譯者:開源社區也有類似的項目, 基于Hadoop 之上的Hive)之后他們又進一步開發了被稱之為世界上最大的單一數據庫的Spanner系統。連線雜志(The Wired)的Case Metz說,通過使用創新的時間同步方式,Spanner的物理存儲雖然跨越了全球不同的數據中心,但操作起來就像是在一個地方。換句話來說,它能夠使得 全球的數據中心中不同的信息保持一致,即使一個特定的更新請求可能會需要不同的時間達到不同的數據中心。Metz又說道,在Spanner被報道之前,從 來沒有人覺得這種系統是能夠搭建出來的。 |
|
現在看起來,這些關于Jeff Dean真正的事實看起來有點像是假的一樣。Dean自己也會對這種情況笑起來,說這個有點尷尬,但同時也一種被恭維的感覺。但他又說,要記住的是,他的這些工作上真正的成就,總是通過和不同的人共同合作得來的。 |
幾乎每天早上,他都會到位于加利福尼亞 州,Mountain View的Google總部上班,而且總是坐下來和同一伙人一起喝咖啡。他估算到,這些年來我們大概一起消滅了20,000杯卡布奇諾吧。這些人并不總是 在一起工作。事實上,有些人已經搬到了Google園區另一邊不同的辦公室里。不過當他們聚在一起討論他們正在做的事情的時候,一些人的問題總是能激勵其 他人的新想法。這些咖啡閑聊使得Dean把他在優化、并行計算、軟件架構等方面的經驗運用到眾多不同類型的項目中去。這些使得他產生了足夠的雄心和自信 心。作為他長期合作伙伴的Ghemawat說,“他總是對于我們能做到什么程度充滿了熱情和樂觀,沒有什么能夠阻礙他”。 |
|
他最近的工作可以很好地說明Google 接下來會做什么。去年,他和斯坦福大學機器學習領域的專家、Coursera創始人之一的Andrew Ng一起,幫助了Ng的研究生Quoc Le進行了一項前所未有的無監督機器學習的試驗。這個屬于Google公司秘密的Google X 臭鼬項目下(譯者:指秘密的創新項目)的試驗,將16,000個處理器用于對YouTube視頻進行無人干攝的學習,來得出如何識別一只貓的方法。這個看 起來是用了很多計算機來得出一個非常基本的結果,但是這個試驗能夠幫助我們為下一代的人工智能技術打下基礎。未來的人工智能技術將在許多的潛在應用中發揮 作用,這些包括使用了個人助手技術的Google Now,以及對Google 眼鏡項目(Project Glass)會有很大幫助的圖像搜索功能等。 |
|
Jeff Dean可能正的會發明一些不可思議的東西,就像“關于Jeff Dean的事實”中提到的只有0和1的特殊鍵盤(譯者:這種鍵盤是不存在的,這個網頁上的文章在開玩笑說Jeff Dean是直接用二進制的機器代碼寫程序的。)Jeff Dean承認他并不是機器學習的專家,不過他樂于使用它在搭建可擴展、高可用系統方面的經驗來幫助這一方面的研究。 |
|
和“關于Jeff Dean的事實”說的相反的是,Dean說在很多情況下解決問題的最佳方法并不是簡單地一坐下來就開始寫程序。他的方法總是在開始的時候需要進行一些簡單 的計算,來找到對于特定過程的質量和速度之間的最佳平衡點。他說,從機器翻譯到搜索質量的許多領域,你總是試圖權衡你能夠對每一個查詢所做的計算量。也許 你不能找到最理想的解決方案,但是我們總是可以通過某種近似的方式,通過1%的計算,得到98%的好處。 |
|
Dean經常做這類計算,以至于他給出了 一個“每個計算機工程師都應該知道的數字列表”。其中包括諸如在光速情況下,從加利福尼亞到阿姆斯特丹發送一個網絡包要花多少毫秒,(150毫秒)。將這 些數字牢記在心, 在20分鐘內,你就能從白板上區分在3個設計中哪一個會是最好的。他又說到,如果你不能快速地進行計算?把所有這些數字近似地轉換為2的次方吧,這樣做乘 法的時候會比較容易。 |
|
如果Dean真的擁有超人的力量的話,那 么這種能力并不能在瞬間就把事情做到完美。這是一種能夠根據事情的不同級別進行權衡、優化,及處理問題的能力。換個角度來說,它是一種能發現機會,并把事 情在很短的時間內做到盡可能好,而不是一開始就盡全力追求完美的能力。在硅谷,這可比拿著沖鋒槍向牛仔們掃射酷多了。 |
|
來源:http://www.kuqin.com/shuoit/20130911/335108.html |