您使用的是較舊的瀏覽器版本。若要獲得最佳 MSN 體驗,請使用支援的版本

想進Google工作?這裡有一份Google面試流程和攻略

T客邦 標誌 T客邦 2017/9/18 36氪

Google可以說是很多IT工程師心中最理想的工作處。不過,去Google求職也是出了名的難而且流程複雜。早期一般人並不清楚Google的面試流程到底有哪些關卡,不過透過網路的分享,現在Google的面試流程已經不是秘密了。中國的IT求職教育網站「九章算法」,就根據眾多經歷過Google求職經驗者以及現職者分享的資料,整理出了一份Google面試流程指南。以下就是他們整理出來的內容。

Google 的招聘流程涉及兩種面試。在每一輪面試中,Google 都會從面試官那裡收集反饋,然後確定後續步驟。

© 由 T客邦 提供

Part 1 面試流程

1、第一階段:電話面試(Phone Screen)

電話面試的面試官很有可能是你以後的同事或經理。

如果你申請的是軟體工程師相關職位,電面將持續 30 到 60 分鐘。回答程式碼相關問題時,你需要一邊在與面試官共享的 Google Doc 上編寫程式碼,一邊清晰地闡述你的思路。建議你使用耳機或擴音器,以便你能夠快速輸入相關內容。

電面會問到資料結構和演算法。使用你最擅長的程式語言寫 20-30 行程式碼。根據如下步驟(注意你的程式碼寫作的簡潔性,能用一兩行寫完就不要寫得冗長):

  1. 你會被問到一個開放式的問題。面試官會據此問一些問題,然後規定一些要求。

  2. 用一個演算法解釋這個問題。

  3. 將其轉換為可行的程式碼。 (提示:因為有時間限制,不要想著一下子寫出完美的程式碼,寫下你所想到的,稍後再進行修改,還要確保考慮了特殊情況和執行問題。)

  4. 優化程式,測試並發現錯誤。

對於所有其他職位,電面將持續 30 到 45 分鐘。請準備好回答涵蓋職位相關知識的行為問題、假設問題或案例式問題。

2、第二階段:現場面試(Onsite)

一般情況下,會有 4 位 Google 員工(一些可能成為你以後的同事,還有一些是跨職能部門的員工)面試你,每個人的面試時間大約為 30-45 分鐘。

對於軟體工程職位的應聘者,面試官希望瞭解你的程式寫作能力和技術領域的專業知識(其中包括工具或程式語言,以及有關資料結構和演算法等主題的一般知識)。面試官通常會在這種討論中反覆提及與此相關的問題,就像討論實際工作中遇到的問題一樣,因為他們喜歡激發彼此的思想碰撞火花,進而瞭解不同的方法。因此,請準備好深入探討你的解決方案。超越自我界限,找到最佳答案,這很可能就代表了您的工作方式。

工程師職位以外的應聘者將有機會從 4 個不同的方面突出展示自己的優勢:

一般認知能力:

面試官會提出一些開放式問題,以便瞭解你如何著手處理問題和解決問題。這些問題沒有標準答案,因此,他們最看重的是,你是否具備一定的能力,可以清晰地闡明你的思路以及你如何利用數據做出明智決策。

領導能力:

準備好談一談你曾如何利用自己的溝通和決策能力調動他人積極性。這種案例可以是你在工作期間或單位的晉陞經歷,也可以是你帶領團隊取得成功(即便在你並未正式成為領導者的情況下)的經歷。

職位相關知識:

面試官希望可以瞭解你如何將自己的個人優勢與經驗相結合以帶來積極的影響。面試官不僅想知道你目前能做出的貢獻,還要瞭解你打算如何提升自身能力以便挑戰不同的職位,甚至包括目前尚不存在的職位。

Google 精神:

分享你如何獨立工作以及如何與團隊協作,如何幫助他人,如何在迷茫中找到方向,以及如何激勵自己居安思危、不斷進步。

在整個面試過程中,你可以放心大膽地請面試官明確說明面試問題,以確保你完全理解所問的問題。你也可以暢所欲言,面試面試官們,詢問有關工作、團隊和文化的問題,這樣做可以幫助你確定相應職位是否適合你。

 

© 由 T客邦 提供  

Part 2 如何準備

1、適用於所有職位的面試

預測可能遇到的面試問題:

你可以預測到面試官會向您提出的 90% 的面試問題。例如「為什麼想要這份工作?」、「你曾解決過什麼棘手的問題?」等等。

計畫:

針對你列表上的每個問題寫下答案。這有助於你牢記相關問題及答案,以便在需要時能夠不假思索地說出來,這一點至關重要。

制定備選方案:

實際上,對於每個問題,建議你寫下 3 個答案。為什麼要寫 3 個呢?對於每個問題,你都需要另外準備一個同樣可行的不同答案,因為第一個面試官有可能不喜歡你講述的案例,這時,你就得寄希望於下一位面試官聽聽你的另一個案例,或許他/她能因此成為你的支持者。

說出想法:

面試官想瞭解你的想法,在面試中說出你的思考過程和決策。 請記住,面試過程中,不僅評估你的技術能力,更是要評估你如何處理問題並嘗試解決問題。 和面試官明確地說明和檢查他給出的假設,確保它們是合理。

用證據說話:

在回答每個問題時,你都需要透過具體的事例來說明自己具備問題中所要求的能力。例如,如果你被問到「你是如何履行領導職責的?」這樣的問題,你應該回答:「我是一個具有協作能力/決策能力/諸如此類任何能力的領導,我來給你講一下當我在…」

遇到問題隨時詢問:

面試題可能是有問題的,面試官故意不提,來深入瞭解你在技術難題中所看重的範疇和信息。 他們是想看看你是如何參與解決問題的。 一定要談談你的思考過程,如果遇到疑問,隨時提問。

優化:

想想如何改進你提供的解決方案。在許多情況下,你一開始的解決方案可能需要一些進一步的解釋。 如果有必要,從最簡單直接的方案開始,然後再改進它 - 要讓面試官知道你在做什麼以及為什麼。

練習:

每個人都可以通過不斷練習獲得進步。大聲複述你的面試答案,直到你可以簡明扼要地講述每個案例。

2、適用於軟體工程和技術職位的面試

程式碼考古題:

你可以在 LintCode、CodeLab、Quora 和 Stack Overflow 等網站上找到一些程式碼的問題範例。面試會要求手寫,所以請在紙張或白板上練習編寫程式碼。一定要測試你的程式碼,並確保它易讀而且沒有錯誤。不要糾結於小的語法錯誤,比如對於給定的方法用哪個字串,直接選擇一個,讓面試官知道就可以了。

程式語言:

至少擅長一種編程語言,最好是 C ++,Java,Python,Go 或 C。如果你擅長 API、物件導向設計,知道如何測試程式碼,以及知道如何處理特殊狀況會更好。請注意:面試注重的是概念理解而不是記憶。

演算法:

掌握用自下而上和自上向下的演算法解決問題。知道演算法的複雜性,以及如何優化/改變演算法。熟悉解決 Google 問題的演算法:排序,分治法,動態規劃,遞歸或有關數據結構的演算法。知道 Big-O 符號(例如執行時間),並準備好像 Dijkstra 和A *這樣的複雜演算法。

排序:

熟悉常見的排序類型以及它們有效的輸入資料類型。考慮執行時間和空間。例如,在特殊情況下,插入排序或基數排序比通用的快速排序、歸併排序、堆疊排序答案要好得多。

資料結構:

研究儘可能多的資料結構。最常使用的資料結構是數組,鏈表,堆棧,隊列,HASH集合,HASH圖,HASH表,字典樹,樹和二叉樹。瞭解內部的資料結構,以及哪些演算法傾向於和哪個資料結構一起使用。

數學:

一些面試官會提一些基本的離散數學問題。尤其在 Google,因為 Google 的工作經常會接觸計數問題、概率問題和其他離散 Math 101情況。在面試之前花上一些時間,記住基本概率理論和組合的基本要素。熟悉n選擇問題和類似的問題。

圖:

考慮一個問題是否可以應用於距離、搜索、連接、循環檢測等圖形算法中。有三種圖形表示方法:對象和指針、矩陣、鄰接列表,你需要熟悉每個方法及其利弊。掌握基本圖遍歷算法、廣度優先搜索和深度優先搜索。瞭解它們的複雜度,瞭解什麼情況該用哪個,以及如何在實際代碼中實現它們。

遞歸:

許多程式問題涉及遞歸的思想和用遞歸編碼給出解決方案。對於可以用迭代的方法解決的問題,用遞歸找到更優的解決方案。

 

Part 3 其他問題

著裝:

大部分面試對著裝都沒有特定的要求,但招聘人員會告知你如何著裝最得體。如果你不確定哪種風格適合自己,那就做你自己,穿你認為舒適的衣服就好。

如何回答面試答案:

回答問題時,請務必說明你是如何得出解決方案的,因此,你可以想到什麼就說什麼。

做準備工作時要考慮的有幫助的問題:

獨立工作以及參與團隊協作時,你如何讓自己的能力得到充分發揮?你在求學時和職場中遇到過哪些挑戰?你是如何戰勝這些挑戰的?你有哪些技能和經驗可作為你申請本職位的優勢,為什麼?

如果你沒有理解面試問題:

可以請面試官明確說明,且回答問題時可視需要從容作答。

  • 本文授權轉載自:36kr(36氪)
加入T客邦Facebook粉絲團

更多來自 T客邦 的內容

image beaconimage beaconimage beacon