Google 面試六輪遊,結果還是沒過!Google面試真題分享

Google 面試六輪遊,結果還是沒過!Google面試真題分享

 

前言

入職谷歌向來是可遇不可求的,只有那最爲頂尖的萬分之一的人才,纔有資格收到谷歌的橄欖枝。因此,就算應聘谷歌失敗了,也很正常。重要的是,從失敗經歷中不斷學習,砥礪前行。

去年換工作的時候,面試了一下 Google (這裏說的是 Google 中國),來了個 Google 面試六輪遊,結果是沒通過。現在分享下我參與面試的具體流程以及個人認爲應該注意的事項, 希望對大家有所幫助。

ps:文末有Google面試題專場(美國)

個人相關背景

先介紹下自己相關背景:985 本科,op2碩士(其實大公司都比較看重第一學歷的)。在校期間科研也沒啥能拿得出手的論文,社招時4 年多工作經驗,面試時爲大疆後端開發TL(帶3~4個人而已)。

面試流程

Google 整體面試流程上基本如下:

  • Recruiter Prescreen →
  • Phone Interview (1~2 sessions) →
  • Onsite Interview (4~5 sessions, 1 week to receive feedback) →
  • Hiring Committee Review →
  • Offer Review →
  • Offer Delivery (Yippee!)

Google 面試六輪遊,結果還是沒過!Google面試真題分享

 

我一共經歷了 1 輪電話面試,5 輪 onsite,如果算上前面的HR 的預篩選的話,就是 7 輪.

簡歷投遞

之前校招其實也參加過,無奈門檻太高、競爭壓力太大, 連面試流程都木有進。 當初校招時直接網上刷題,這個網站上其實還能看到往年的一些題目情況:Google Code Jam 基本上分幾輪。每輪 top xx 的選手纔有機會進入面試

第一次換工作的時候,其實也有找在 Google 的同學內推,填了不少內推推薦理由呀等等,最後簡歷都沒過。當然,簡歷沒過肯定也有多種原因啦,這個其實跟各個公司都一樣。比如人家需求是招聘 P7,以你的工作年限經驗等最多就 P6,肯定不行。還有比如希望是招聘機器學習等相關經驗的等等,崗位信息等不匹配也不行。當然還有一種,崗位描述等都相關,確實簡歷沒啥亮點,太平庸,也直接被 HR 給篩選掉了

這次其實剛開始是沒有考慮過面 Google 的,機緣巧合在 linkedin 在有 Google 的 HR 聯繫,說要不要試試 Google 的機會。當然就抱着 “試試就試試” 的想法跟進面試流程啦。既然要嘗試,當然還是需要認真對待。修改簡歷、防止手生肯定需要提前準備”刷題”的。

發簡歷給HR 小姐姐後,HR 小姐姐會給你一些準備材料供你參考,這份材料還相對比較豐富,直接會告訴你面試涉及到的知識點,推薦書籍還有一些推薦參考的視頻等。

其實時間有限“刷題”準備不夠,當初預感估計面試面不下來。不過真正走完所有面試流程,發現其實面試題目沒有想象中的那麼難(然而我仍然沒有過,實力不夠啊),積極準備還是有希望的。因爲面試題目比較敏感不能直接分享原題哈,不過我會根據我的理解,找類似知識點和類似難度的題目分享一下

HR面試

對,第一輪就是 HR 面試,上面流程中的 “Recruiter Prescreen”,其實就是一些計算機相關基礎的填空題和選擇題。幾分鐘的時間,十幾道題目。面試過程中不需要給予明確的解釋,知道就是知道,不知道就不知道。題目可能會涉及到比如:快排的時間複雜度是多少? 選擇排序是穩定的排序算法嗎? 等等之類的。

這也是我參與的所有面試當中,HR 直接參與的”技術”面的。我理解就通過這一輪面試可以用比較少的成本把一些不合適的候選人直接排除了,當然這種方法可能不一定適用於所有公司。

電話面試

電話面試要求直接用 Google doc 共享寫代碼,需要要求你有一個穩定的網絡環境。這輪面試我理解應該不會太難,從我面試的經驗來看也確實如此。

相比 onsite,電話面試不能在一個很好的溝通環境下,不能面對面和面試官進行交流。當初我面試的一道題目和二叉樹的遍歷相關,當然題目不會是直接寫二叉樹的先序/中序/後序/層次之類的遍歷,會有一個具體的業務場景在裏邊。需要你分析這個具體的業務場景,能夠抽象出題目本質上就是 二叉樹的遍歷方法。這道題目算是拿下了,實際 coding 後面試官可能會根據你寫的 code 去提問,一些邊界條件以及讓你提優化方案。

HR 小姐姐介紹的電話面試時 1-2 輪,我想這應該是需要看第一輪的面試官的反饋,是否猶豫是否再安排一輪電話面試。畢竟和 onsite 相比,電話面試成本相對更低一些。在線 code 其實在面試過程中,還是蠻重要的環節。從你 code 的細節包括 code style、邊界條件的判斷,哪怕是註釋情況,都能看出一些編程習慣。我認爲這個環節對於招聘一個寫代碼的工程師來說,肯定是一個必不可少的環節(google 整個就搞了五六輪)。

現場面試

電話面試通過後,HR 會很快跟你反饋溝通面試結果,是否通過,以及 onsite 的安排。因爲現場面試是 4-5 輪,平均1 輪一小時的話需要 4-5 個小時,其實還是蠻耗費精力的。一般會溝通可以約 2 個半天或者 1 整天,兩個半天的好處是時間不會那麼緊張,前兩輪後,中途可以過幾天再休整調整下再繼續,我當初就選擇”快刀斬亂麻/早死早超生” 的方案直接約了 1 天時間搞定。

Google 面試六輪遊,結果還是沒過!Google面試真題分享

 

onsite 也基本上是在電腦上 coding。你和面試官一人一個筆記本,code 時共享屏幕,有時候題目面試官會在白板上寫出onsite 的題目,明顯就要比電話面試的題目難度高一些呢。但實際上比我想象中的要簡單些,因爲曾經想 Google 這樣的公司面試恐怕連理解題目意思都要理解大半天吧。可能也是社招的緣故,社招整體感覺在算法的要求比校招就要低一些。

我記得其中有一道題目就跟 leetcode 上的類似(再次聲明不是原題,也不 share 原題),Leetcode 上那個題目應該是二維矩陣,最短路徑相關的。用 dp 可以解決,只不過一般題目會分爲好幾個小問題,難度一般從易到難。

同時也考察到了二叉樹,仍然圍繞着二叉樹的遍歷進行。需要熟知二叉樹的各種遍歷方式,非遞歸的方法(遞歸比較容易一般不會讓寫這個)。 在遇到二叉樹相關問題的時候,是否可以聯想到二叉樹的遍歷上來。

另外有一道系統設計的問題“知識圖譜”的概念,圍繞着”圖”的相關算法這個要求在白板上寫出設計方案和僞代碼,同時面試官會不斷 push 你讓你提出更優的解決方案。有足夠多的計算資源,並行去跑,以及具體怎麼實現。這道題目我回答的不好(當初也知道不好,後面 HR 反饋也印證了這一點)。

還有一道題目,是解決生活中的場景題目。需要你抽象出這個問題,用代碼來解決。一般這種題目,就需要反覆跟面試官去溝通和確認其中的場景, 怎樣把業務抽象成算法。 記得之前面試 Amazon 的時候也有類似的題目(只不過當初面 Amazon 考察的是 OO Design而本題是具體算法實現).

onsite 一共聊了 5 輪,上午 2 輪,下午 3 輪,其中有兩輪是英文面試(英文面試後面會說),整體來說,工程師崗位面試會圍繞如下幾個方面進行(以下參考 HR 提供的面試指南):

  • Coding:用熟悉的編程語言(不限)實現給定的題目,會重點關注解題目過程中的理解和溝通能力;
  • 算法:涉及到 排序/搜索/分治/動態規劃/貪心/遞歸,具體數據結構,也有可能會涉及到 Dijkstra 和 A* 等算法,需要會算法複雜度的分析;
  • 排序:常見的排序算法,時間/空間複雜度,例如 快排/歸併/堆排序/插入/基數排序等等;
  • 數據結構:數組/連表/堆/棧/hash/數/二叉樹等;
  • 數學:可能會涉及到離散數學,組合數學,例如 N箇中選k 個的方法等;
  • 圖:圖的表達(例如矩陣/鄰接表),bfs/dfs 等;
  • 遞歸:遞歸和迭代的轉換;
  • 其他:設計和操作系統等;

以上這部分摘自 HR 提供的 Google 工程師面試指南.pdf

午飯

中午 HR 小姐姐會安排一個 Google 的工程師,帶你吃飯,跟你聊天。有任何疑問都可以跟他溝通,不得不說,Google 的伙食還是蠻不錯的。我當初就跟小哥哥聊了下他在 Google 工作的感受。

Google 面試六輪遊,結果還是沒過!Google面試真題分享

 

英文面試

英文面試,單獨拿出來說一下,建議還是提前準備,練習一下基本的口語。不要因爲面試過程中,突然讓你只用英語溝通,讓氣氛變得緊張起來導致發揮不好。自我介紹之類的肯定你可以提前準備,然後就是你可以嘗試比如拿其中的題目自己模擬一下面試場景,主要是可能需要提前熟悉一下基本的計算機相關詞彙,不要到時候想表達卻表達不出。

整體來說,Google 的面試確實很難,但確實也沒我想象中的那麼難。但要求確實是很高的,基本上一些邊界 case 等也都是在考察範圍內的。onsite 面試完後,在第二天我就得到結果通知:面試沒通過 事實來看沒通過的結果反饋比通過反饋更快。HR 會反饋你哪裏表現得不夠好,然後如果想進 Google就加油刷題,說 1 年後可以再次嘗試,保持聯繫哦。哈哈!以上就是我這次完整的 Google 面試之旅,雖然失敗(實力還不夠)了,但還是有收穫的。

Google面試真題專場(美國)

筆者有個朋友進了美國Google,下面是他在Google整理的面試真題專場:

  • Google面試標準
  • 解題的步驟
  • 經典Google面試題

Google 面試六輪遊,結果還是沒過!Google面試真題分享

 

圖片太大,上傳不了,感興趣的朋友可以幫忙轉發文章後,關注私信回覆【學習】來免費獲取

筆者還給大家準備了左程雲左神的算法書籍、視頻,幫助大家更好的學習算法

《程序員代碼面試指南 IT名企算法與數據結構題目最優解》

Google 面試六輪遊,結果還是沒過!Google面試真題分享

 

目錄(算法有分 將、校、尉、士四個等級來表示難易程度)

第1章棧和隊列

設計一個有getMin功能的棧(士★)

由兩個棧組成的隊列(尉★★)

如何僅用遞歸函數和棧操作逆序一個棧(尉★★)

貓狗隊列(士★)

用一個棧實現另一個棧的排序(士★)

用棧來求解漢諾塔問題(校★★★)

生成窗口最大值數組(尉★★)

構造數組的MaxTree (校★★★)

求最大子矩陣的大小(校★★★)

最大值減去最小值小於或等於num的子數組數量(校★★★)

限於篇幅原因,同時也爲了大家更好的閱讀,只截取了部分目錄,感興趣的朋友可以幫忙轉發文章後,關注私信回覆【學習】來免費獲取

Google 面試六輪遊,結果還是沒過!Google面試真題分享

 

Google 面試六輪遊,結果還是沒過!Google面試真題分享

 

Google 面試六輪遊,結果還是沒過!Google面試真題分享

 

第1章棧和隊列

設計一個有getMin功能的棧(士★)

Google 面試六輪遊,結果還是沒過!Google面試真題分享

 

Google 面試六輪遊,結果還是沒過!Google面試真題分享

 

左神算法講解視頻

左程雲針對大廠頭條、京東、騰訊、阿里算法面試題而講解的視頻,感興趣的朋友可以關注我來領取一份

Google 面試六輪遊,結果還是沒過!Google面試真題分享

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章