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