【為什麼我們要挑選這篇文章】想去 Google 工作,或是想知道工程師去面試應該如何準備,看這位亞馬遜工程師整理的攻略準則準沒錯。(責任編輯:陳伯安)
本文經 AI 新媒體量子位(公眾號 ID:QbitAI)授權轉載,轉載請聯繫出處
作者:量子位/郭一璞
一位從 1997 年就入行的 Web 工程師,立志要成為 Google 軟體工程師,3 年前寫下了一篇超完整學習和面試教程,以此作為自己的奮鬥計劃。
這位名叫 John Washam 的工程師,換了好幾份工作,最後卻陰差陽錯在 2017 年成為了亞馬遜 AWS 的技術專家。
但這並不妨礙他的教程成為熱門,在 GitHub 上線以來,已獲得近 10 萬星的好評。
而且最近這篇教程已經完成了中文翻譯,就算你沒有去 Google 面試的機會,也可以用它來好好充實一下自己。
「想去 Google 工作千萬不要妄自菲薄」
作者 Washam 本人並非電腦學位,但在兒時就已經展現出對電腦的濃厚興趣,從事的工作是關於 web 程式的構建、服務器的構建。
作為一名非專業人士轉行,Washam 已經算是相當成功。然而,他還是想去 Google 工作,真正地去理解電腦系統、演算法效率、數據結構性能、低級別編程語言及其工作原理。
可對這些知識都不瞭解的他,怎麼會被 Google 應聘呢?
於是他在網上收集了各類電腦專業知識,以及進入 Google 工作的員工分享的資源,並系統地整理了這些資料。
Washam 強調,想去 Google 工作首先不要妄自菲薄。Google 的工程師都是才智過人的。但是,就算是工作在 Google 的他們,仍然會因為覺得自己不夠聰明而感到一種不安 。
首先掌握 C++、Java、Python 其中一個
接下來就跟著 Washam 的腳步去學習。
首先要做的就是選擇一門語言,在 Google 一般是 C++、Java、Python,有時也會用到 JavaScript、Ruby。背後還有一些如 SQL、HTML 等技術沒有列出。
接著開始學習電腦硬體知識:
然後補充電腦專業的基礎數學知識,如演算法複雜度 / Big-O / 漸進分析法、數據結構、樹、排序、圖論。
此外還有遞歸、動態規劃、組合與概率、NP&NP- 完全和近似演算法、緩存、線程與進程、系統設計、可伸縮性、數據處理。
看到這麼多知識點,你會不會覺得有點懵呢?Washam 告訴你一點小技巧。
把重點知識變成小字卡複習
因為你不可能一遍就記住所有知識點。所以需要把要回顧的知識點做成抽認卡(flashcard):正常的及帶有程式碼的,類似於背單詞。
每種卡都會有不同的格式設計。項目主頁中就有抽認卡的源程式碼,可以根據自己的學習特點去製作。
Washam 還留有一組 ASCII 碼表、OSI 堆棧、Big-O 記號及更多的小抄紙,以便在空閒的時候可以學習。每編程半個小時就要休息一下,並去回顧你的抽認卡。
當然,論文的閱讀也是必不可少的,尤其是谷歌曾經發表的一些基礎技術論文。
書籍則推薦一些關於演算法和 C++ 編程之類的。
去 Google 面試要注意什麼
面試的第一步當然是要有一份好的簡歷,這樣才能為你爭取到寶貴的面試機會。知名科技部落客 Steve Yagge 給出了 10 個建議,幫你做出一份還不錯的簡歷。
這位 Steve 曾經在亞馬遜、Google 都工作過,Washam 的這個項目就大量地引用了他的技術部落格內容。
在面試時,你可能會遇到這 20 個問題,每個問題準備 2-3 種回答。準備點故事,而不要只是擺一些你完成事情的數據。
面試官在也會問你還有哪些問題,不要說自己沒有什麼要問題,可以試試問一些此類問題:
當然,進入 Google 也不意味著結束,你還要新的學習過程。
Washam 還有一份附加內容,包括 Emacs 和 Vim、Unix 命令行工具、密碼學。這些內容雖然不會直接用到,但是會大大提高你的效率。
最後,在這樣一個特殊的時期,好好給自己充個電。祝大家在新的一年裡都能面試成功!
(本文經 AI 新媒體 量子位 授權轉載,並同意 TechOrange 編寫導讀與修訂標題,原文標題為 〈一份来自亚马逊工程师的 Google 面试指南,GitHub 收获 9.8 万星,已翻译成中文 〉,首圖來源:REGIUM 官網 。)
你可能感興趣
◊ 【錄取攻略】《富比世》雜誌 :這 4 個行為決定了你的面試成功率
◊ 【優秀履歷這樣寫】財經外媒揭秘:面試官最重視的 5 大職場技能
◊ 面試明明很順利,為什麼最後沒被錄取?關鍵取決於「面試順序」
遠端工作免費資源在這!
高品質線上會議工具,簡單 3 步驟註冊免費體驗
《馬上註冊》