Google工程師談程序員的自我修養(yǎng)
美國(guó)計(jì)算機(jī)協(xié)會(huì)十月的人物欄目對(duì)Sanjay Ghemawat進(jìn)行了 專訪,他是Google系統(tǒng)架構(gòu)組(包括MapReduce、 BigTable、Spanner、GFS等)的Fellow,從1999年開始研究分布式系統(tǒng)、索引系統(tǒng)、壓縮方案、內(nèi)存管理、數(shù)據(jù)表達(dá)語言、RPC系統(tǒng)。 Sanjay與Jeff Dean共同獲得了2012 ACM Infosys基金會(huì)計(jì)算機(jī)科學(xué)獎(jiǎng)。
Sanjay Ghemawat在專訪中,Sanjay談及了Google文化中很多有趣的方面。
什么讓Google成為Google?
進(jìn)步是個(gè)現(xiàn)代的概念。通過個(gè)人的進(jìn)步和行動(dòng),未來可以變的更加美好。這種信念已經(jīng)流傳了上百年。
是什么推動(dòng)進(jìn)步?是挑戰(zhàn)。獨(dú)一無二的發(fā)現(xiàn)戰(zhàn)勝了挑戰(zhàn)。通常,當(dāng)人們非??释鲆患聲r(shí),就會(huì)傾其努力、思考和金錢去解決問題。而結(jié)果往往會(huì)創(chuàng)造出新的另人驚嘆的事物。
在Google也是這樣的:
在Google基礎(chǔ)設(shè)施發(fā)展背后的主要?jiǎng)訖C(jī)是保證日益增長(zhǎng)的數(shù)據(jù)集穩(wěn)定運(yùn)行的挑戰(zhàn)。舉個(gè)例子,在同一時(shí)間Google的網(wǎng)頁(yè)搜索量會(huì)大幅提升,我們會(huì)擴(kuò)展索引規(guī)模,還經(jīng)常對(duì)索引進(jìn)行重建。這意味著,我們不得不在很短的時(shí)間內(nèi)有效的處理大量數(shù)據(jù)。這直接導(dǎo)致的結(jié)果是,我們的基礎(chǔ)設(shè)施系統(tǒng)得到了發(fā)展。
關(guān)于MapReduce:
在《 Beautiful Code: Leading Programmers Explain How They Think》一書中,Sanjay提到了Beautiful Code。他表示,書中的MapReduce章節(jié)更多的是在闡述一個(gè)系統(tǒng),這些闡述專注于如何解決主要問題(如何在有硬件失效的情況下快速處理大量數(shù)據(jù))。
MapReduce的產(chǎn)生動(dòng)機(jī)源于Google需要解決遇到的問題。
前沿的項(xiàng)目能產(chǎn)生大多數(shù)創(chuàng)新。也許這是因?yàn)樵诰o密的組織中成員間互相依賴,產(chǎn)生正量反饋,更多的創(chuàng)新由此產(chǎn)生。通常,我們被辦公區(qū)的隔斷分成一個(gè)一個(gè)的格子,這會(huì)切斷一切正量反饋。另外很奇怪的一點(diǎn)是,大多數(shù)組織的結(jié)構(gòu)是一層一層的堆疊,這讓正量反饋無處生存。
大數(shù)據(jù)職業(yè)建議
如何在挑戰(zhàn)困難的過程中不斷學(xué)習(xí)?Sanjay給出了建議:
·在實(shí)踐中學(xué)習(xí);建立學(xué)習(xí)體系
·學(xué)習(xí)已知的系統(tǒng),你可以在許多會(huì)議和論文中找到
·從快速和簡(jiǎn)單的實(shí)踐做起;在不同的系統(tǒng)設(shè)計(jì)中,能找到高效建立模型的方式
關(guān)于未來值得關(guān)注的重大技術(shù),Sanjay表示:語言處理、計(jì)算機(jī)視覺(computer vision)、機(jī)器學(xué)習(xí)可以有效的解決當(dāng)下許多問題,這也是對(duì)大數(shù)據(jù)領(lǐng)域的下一個(gè)挑戰(zhàn)。大規(guī)模的學(xué)習(xí)集群已經(jīng)實(shí)現(xiàn),但需要大量的運(yùn)算才能獲得有價(jià)值的結(jié)果。我希望在這一領(lǐng)域能出現(xiàn)更多的巨頭。