面试 Google, 我失败了!
作者:碼農(nóng)唐磊
來源微信公眾號:程序猿石頭(ID:tangleithu)
去年換工作的時候, 面試了一下 Google (這里說的是 Google 中國), 來了個 Google 面試六輪游, 結(jié)果是沒通過. 🤣 現(xiàn)在分享下我參與面試的具體流程以及個人認為應(yīng)該注意的事項, 希望對大家有所幫助.
一、個人相關(guān)背景
先介紹下自己相關(guān)背景, 985 本科, top2碩士(其實, 大公司都比較看重第一學(xué)歷的). 在校期間, 科研也沒啥能拿得出手的論文. 社招時, 4 年多工作經(jīng)驗, 面試時為大疆后端開發(fā)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!)
我一共經(jīng)歷了 1 輪電話面試, 5 輪 onsite, 如果算上前面的HR 的預(yù)篩選的話, 就是 7 輪.?
三、簡歷投遞
之前校招其實也參加過, 無奈門檻太高, 競爭壓力太大, 連面試流程都木有進. 當初校招時直接網(wǎng)上刷題, 這個網(wǎng)站上其實還能看到往年的一些題目情況: Google Code Jam.? 基本上分幾輪,?每輪 top xx 的選手才有機會進入面試.?
第一次換工作的時候, 其實也有找在 Google 的同學(xué)內(nèi)推, 填了不少內(nèi)推推薦理由呀等等, 最后簡歷都沒過. 😿 當然, 簡歷沒過肯定也有多種理由啦, 這個其實跟各個公司都一樣. 比如人家需求是招聘 P7, 以你的工作年限經(jīng)驗等最多就 P6, 肯定不行; 還有比如希望是招聘機器學(xué)習(xí)等相關(guān)經(jīng)驗的等等, 崗位信息等不匹配也不行; 當然還有一種, 崗位描述等都相關(guān), 確實簡歷沒啥亮點, 太平庸, 也直接被 HR 給篩選掉了.
這次其實剛開始是沒有考慮過面 Google 的, 機緣巧合在 linkedin 在有 Google 的 HR 聯(lián)系, 說要不要試試 Google 的機會. 當然就抱著 “試試就試試” 的想法跟進面試流程啦. 既然要嘗試, 當然還是需要認真對待, 修改簡歷. ?防止手生, 肯定需要提前準備”刷題”的. ?發(fā)簡歷給HR 小姐姐后, HR 小姐姐會給你一些準備材料供你參考, 這份材料還相對比較豐富, 直接會告訴你面試涉及到的知識點, 推薦書籍還有一些推薦參考的視頻等.需要的小伙伴可以留言, 我整理下發(fā)給你(跟 HR 求證過, 這些資料是可以公開分享的哈).
其實, 時間有限, “刷題”準備不夠, 當初預(yù)感估計面試面不下來. 不過真正走完所有面試流程, 發(fā)現(xiàn)其實面試題目沒有想象中的那么難(然而, 我仍然沒有過, 說明實力不足呀), 積極準備, 還是有希望的. 因為面試題目比較敏感, 不能直接分享原題哈, 不過我會根據(jù)我的理解, 找類似知識點和類似難度的題目分享一下.
四、HR 面試
對, 第一輪就是 HR 面試, 上面流程中的 “Recruiter Prescreen”, 其實就是一些計算機相關(guān)基礎(chǔ)的填空題和選擇題. 幾分鐘的時間, 十幾道題目. 面試過程中, 不需要給予明確的解釋, 知道就是知道, 不知道就不知道. ?題目可能會涉及到比如: 快排的時間復(fù)雜度是多少? 選擇排序是穩(wěn)定的排序算法嗎? 等等之類的.
這也是我參與的所有面試當中, HR 直接參與的”技術(shù)”面的. 我理解就通過這一輪面試可以用比較少的成本把一些不合適的候選人直接排除了. 當然這種方法可能不一定適用于所有公司.
五、電話面試
電話面試要求直接用 Google doc 共享寫代碼, 需要要求你有一個穩(wěn)定的網(wǎng)絡(luò)環(huán)境. ?這輪面試我理解應(yīng)該不會太難, 從我面試的經(jīng)驗來看也確實如此.
相比 onsite, 電話面試不能在一個很好的溝通環(huán)境下, 不能面對面和面試官進行交流. 當初我面試的一道題目和二叉樹的遍歷相關(guān), 當然題目不會是直接寫二叉樹的先序/中序/后序/層次之類的遍歷, 會有一個具體的業(yè)務(wù)場景在里邊. 需要你分析這個具體的業(yè)務(wù)場景, 能夠抽象出題目本質(zhì)上就是 二叉樹的遍歷方法. ?這道題目算是拿下了. 實際 coding 后, 面試官可能會根據(jù)你寫的 code 去提問, 一些邊界條件以及讓你提優(yōu)化方案.
HR 小姐姐介紹的電話面試時 1-2 輪, 其實我理解, 這應(yīng)該是需要看第一輪的面試官的反饋, 是否猶豫是否再安排一輪電話面試. 畢竟和 onsite 相比, 電話面試成本相對更低一些.?在線 code 其實在面試過程中, 還是蠻重要的環(huán)節(jié). 從你 code 的細節(jié), 包括 code style, 邊界條件的判斷, 哪怕是注釋情況, 都能看出一些編程習(xí)慣. ?我認為這個環(huán)節(jié)對于招聘一個寫代碼的工程師來說, 肯定是一個必不可少的環(huán)節(jié)(google 整個就搞了五六輪).
六、現(xiàn)場面試
電話面試通過后, HR 會很快跟你反饋溝通面試結(jié)果, 是否通過, 以及 onsite 的安排. ?因為現(xiàn)場面試是 4-5 輪, 平均1 輪一小時的話, 需要 4-5 個小時, 其實還是蠻耗費精力的. 一般會溝通可以約 2 個半天或者 1 整天, 兩個半天的好處是, 時間不會那么緊張, 前兩輪后, 中途可以過幾天再休整調(diào)整下再繼續(xù). 我當初就選擇”快刀斬亂麻/早死早超生” 的方案直接約了 1 天時間搞定.
onsite 也基本上是在電腦上 coding. 你和面試官一人一個筆記本, code 時共享屏幕, 有時候題目面試官會在白板上寫出. onsite 的題目, 明顯就要比電話面試的題目難度高一些呢. 但實際上比我想象中的要簡單些. 因為曾經(jīng)想 Google 這樣的公司面試恐怕連理解題目意思都要理解大半天吧. 可能也是社招的緣故, 社招整體感覺在算法的要求比校招就要低一些. 這只是我的主觀感受啦. ?(確實自己在當面試官的過程中, 在算法這塊對社招的同學(xué)預(yù)期也會低一些)。
我記得其中有一道題目就跟 leetcode 上的類似(再次聲明不是原題, 也不 share 原題), leetcode 上那個題目應(yīng)該是二維矩陣, 最短路徑相關(guān)的. 用 dp 可以解決. 只不過, 一般題目會分為好幾個小問題, 難度一般從易到難.
同時也考察到了二叉樹, 仍然圍繞著二叉樹的遍歷進行. 需要熟知二叉樹的各種遍歷方式, 非遞歸的方法(遞歸比較容易, 一般不會讓寫這個). 在遇到二叉樹相關(guān)問題的時候, 是否可以聯(lián)想到二叉樹的遍歷上來.
另外有一道系統(tǒng)設(shè)計的問題, “知識圖譜”的概念, 圍繞著”圖”的相關(guān)算法, 這個要求在白板上寫出設(shè)計方案和偽代碼. 同時面試官會不斷 push 你讓你提出更優(yōu)的解決方案. 有足夠多的計算資源, 并行去跑, 以及具體怎么實現(xiàn). ?這道題目我回答的不好(當初也知道不好, 后面 HR 反饋也印證了這一點).
還有一道題目, 是解決生活中的場景題目. 需要你抽象出這個問題, 用代碼來解決. 一般這種題目, 就需要反復(fù)跟面試官去溝通和確認其中的場景, 怎樣把業(yè)務(wù)抽象成算法. ?記得之前面試 Amazon 的時候也有類似的題目(只不過當初面 Amazon 考察的是 OO Design, 而本題是具體算法實現(xiàn)).
onsite 一共聊了 5 輪, 上午 2 輪, 下午 3 輪, 其中有兩輪是英文面試(英文面試后面會說).?整體來說,工程師崗位面試會圍繞如下幾個方面進行(以下參考 HR 提供的面試指南):
-
Coding: 用熟悉的編程語言(不限)實現(xiàn)給定的題目. 會重點關(guān)注解題目過程中的理解和溝通能力;
-
算法: 涉及到 排序/搜索/分治/動態(tài)規(guī)劃/貪心/遞歸, 具體數(shù)據(jù)結(jié)構(gòu), 以及也有可能會涉及到 Dijkstra 和 A* 等算法, 需要會算法復(fù)雜度的分析;
-
排序: 常見的排序算法, 時間/空間復(fù)雜度, 例如 快排/歸并/堆排序/插入/基數(shù)排序等等;
-
數(shù)據(jù)結(jié)構(gòu): 數(shù)組/連表/堆/棧/hash/數(shù)/二叉樹等;
-
數(shù)學(xué): 可能會涉及到離散數(shù)學(xué), 組合數(shù)學(xué), 例如 N個中選k 個的方法等;
-
圖: 圖的表達(例如矩陣/鄰接表), bfs/dfs 等;
-
遞歸: 遞歸和迭代的轉(zhuǎn)換;
-
其他: 設(shè)計和操作系統(tǒng)等;
以上這部分摘自 HR 提供的 Google 工程師面試指南.pdf, 有需要的同學(xué)(再次強調(diào)已和 HR 確認, 此資料可共享), 從公眾號后臺回復(fù) “Google面試指南+郵箱”, 我會發(fā)送給你(或者直接掃碼加我微信也可以).
七、午飯
中午 HR 小姐姐會安排一個 Google 的工程師, 帶你吃飯, 跟你聊天. 有任何疑問都可以跟他溝通. ?不得不說, Google 的伙食還是蠻不錯的.?我當初就跟小哥哥聊了下他在 Google 工作的感受.
八、英文面試
英文面試, 單獨拿出來說一下. 建議還是提前準備, 練習(xí)一下基本的口語. 不要因為面試過程中, 突然讓你只用英語溝通, 讓氣氛變得緊張起來, 導(dǎo)致發(fā)揮不好. 自我介紹之類的肯定你可以提前準備, 然后就是你可以嘗試比如拿其中的題目自己模擬一下面試場景. 主要是可能需要提前熟悉一下基本的計算機相關(guān)詞匯, 不要到時候想表達確表達不出.
整體來說, Google 的面試確實很難, 但確實也沒我想象中的那么難. 但要求確實是很高的, 基本上一些邊界 case 等也都是在考察范圍內(nèi)的. onsite 面試完后, 在第二天, 我就得到結(jié)果通知, 面試沒通過. ?事實來看沒通過的結(jié)果反饋比通過反饋更快. HR 會反饋你哪里表現(xiàn)得不夠好, 然后如果想進 Google, 就加油刷題, 說 1 年后, 可以再次嘗試, 保持聯(lián)系哦.?
哈哈, 以上就是我這次完整的 Google 面試之旅, 雖然失敗(實力還不夠)了, 但還是有收獲的. 如果大家有足夠自信(當然也要有一定實力哈), 也可以找我?guī)兔?nèi)推, 我可以給在 Google 的同學(xué)幫忙或者直接給招聘的 HR 同學(xué).??如果要面試 Google, 刷題是在所難免的了. 整體來講, Google 的面試體驗還是很不錯的, 全程 HR 小姐姐悉心指導(dǎo)和及時反饋,?給 HR 小姐姐點贊?
總結(jié)
以上是生活随笔為你收集整理的面试 Google, 我失败了!的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 40岁了,还要跟小年青一样埋头敲代码吗?
- 下一篇: 快夸我!我把SpringBoot项目从1