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