Google 面試,我在第 7 輪掛了
去年換工作的時(shí)候,面試了一下 Google (這里說(shuō)的是 Google 中國(guó)),來(lái)了個(gè) Google 面試七輪游,結(jié)果是沒(méi)通過(guò)。??
現(xiàn)在分享下我參與面試的具體流程以及個(gè)人認(rèn)為應(yīng)該注意的事項(xiàng),希望對(duì)大家有所幫助。
個(gè)人相關(guān)背景
先介紹下自己相關(guān)背景,985 本科,top2碩士(其實(shí),大公司都比較看重第一學(xué)歷的)。在校期間,科研也沒(méi)啥能拿得出手的論文。社招時(shí),4 年多工作經(jīng)驗(yàn),面試時(shí)為大疆后端開(kāi)發(fā)TL(帶3~4個(gè)人而已)。
面試流程
Google 整體面試流程上基本如下:
1. Recruiter Prescreen?
2. Phone Interview (1~2 sessions)?
3. Onsite Interview (4~5 sessions,1 week to receive feedback)?
4. Hiring Committee Review?
5. Offer Review?
6. Offer Delivery (Yippee!)
我一共經(jīng)歷了 1 輪電話(huà)面試,5 輪 onsite,如果算上前面的HR 的預(yù)篩選的話(huà),就是 7 輪。
簡(jiǎn)歷投遞
之前校招其實(shí)也參加過(guò),無(wú)奈門(mén)檻太高,競(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)歷都沒(méi)過(guò)。??
當(dāng)然,簡(jiǎn)歷沒(méi)過(guò)肯定也有多種理由啦,這個(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)歷沒(méi)啥亮點(diǎn),太平庸,也直接被 HR 給篩選掉了。
這次其實(shí)剛開(kāi)始是沒(méi)有考慮過(guò)面 Google 的,機(jī)緣巧合在 linkedin 在有 Google 的 HR 聯(lián)系,說(shuō)要不要試試 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),推薦書(shū)籍還有一些推薦參考的視頻等。
其實(shí),時(shí)間有限,“刷題”準(zhǔn)備不夠,當(dāng)初預(yù)感估計(jì)面試面不下來(lái)。不過(guò)真正走完所有面試流程,發(fā)現(xiàn)其實(shí)面試題目沒(méi)有想象中的那么難(然而,我仍然沒(méi)有過(guò),說(shuō)明實(shí)力不足呀),積極準(zhǔn)備,還是有希望的。
因?yàn)槊嬖囶}目比較敏感,不能直接分享原題哈,不過(guò)我會(huì)根據(jù)我的理解,找類(lèi)似知識(shí)點(diǎn)和類(lèi)似難度的題目分享一下。
HR 面試
對(duì),第一輪就是 HR 面試,上面流程中的 “Recruiter Prescreen”,其實(shí)就是一些計(jì)算機(jī)相關(guān)基礎(chǔ)的填空題和選擇題。幾分鐘的時(shí)間,十幾道題目。面試過(guò)程中,不需要給予明確的解釋?zhuān)谰褪侵?,不知道就不知道。題目可能會(huì)涉及到比如: 快排的時(shí)間復(fù)雜度是多少? 選擇排序是穩(wěn)定的排序算法嗎? 等等之類(lèi)的。
這也是我參與的所有面試當(dāng)中,HR 直接參與的”技術(shù)”面試。我理解就通過(guò)這一輪面試可以用比較少的成本把一些不合適的候選人直接排除了。當(dāng)然這種方法可能不一定適用于所有公司。
電話(huà)面試
電話(huà)面試要求直接用 Google doc 共享寫(xiě)代碼,需要要求你有一個(gè)穩(wěn)定的網(wǎng)絡(luò)環(huán)境。這輪面試我理解應(yīng)該不會(huì)太難,從我面試的經(jīng)驗(yàn)來(lái)看也確實(shí)如此。
相比 onsite,電話(huà)面試不能在一個(gè)很好的溝通環(huán)境下,不能面對(duì)面和面試官進(jìn)行交流。當(dāng)初我面試的一道題目和二叉樹(shù)的遍歷相關(guān),當(dāng)然題目不會(huì)是直接寫(xiě)二叉樹(shù)的先序/中序/后序/層次之類(lèi)的遍歷,會(huì)有一個(gè)具體的業(yè)務(wù)場(chǎng)景在里邊。
需要你分析這個(gè)具體的業(yè)務(wù)場(chǎng)景,能夠抽象出題目本質(zhì)上就是 二叉樹(shù)的遍歷方法。這道題目算是拿下了。實(shí)際 coding 后,面試官可能會(huì)根據(jù)你寫(xiě)的 code 去提問(wèn),一些邊界條件以及讓你提優(yōu)化方案。
HR 小姐姐介紹的電話(huà)面試是 1-2 輪,其實(shí)我理解,這應(yīng)該是需要看第一輪的面試官的反饋,是否猶豫是否再安排一輪電話(huà)面試。畢竟和 onsite 相比,電話(huà)面試成本相對(duì)更低一些。
在線(xiàn) code 其實(shí)在面試過(guò)程中,還是蠻重要的環(huán)節(jié)。從你 code 的細(xì)節(jié),包括 code style,邊界條件的判斷,哪怕是注釋情況,都能看出一些編程習(xí)慣。我認(rèn)為這個(gè)環(huán)節(jié)對(duì)于招聘一個(gè)寫(xiě)代碼的工程師來(lái)說(shuō),肯定是一個(gè)必不可少的環(huán)節(jié)(google 整個(gè)就搞了五六輪)。
現(xiàn)場(chǎng)面試
電話(huà)面試通過(guò)后,HR 會(huì)很快跟你反饋溝通面試結(jié)果,是否通過(guò),以及 onsite 的安排。因?yàn)楝F(xiàn)場(chǎng)面試是 4-5 輪,平均1 輪一小時(shí)的話(huà),需要 4-5 個(gè)小時(shí),其實(shí)還是蠻耗費(fèi)精力的。
一般會(huì)溝通可以約 2 個(gè)半天或者 1 整天,兩個(gè)半天的好處是,時(shí)間不會(huì)那么緊張,前兩輪后,中途可以過(guò)幾天再休整調(diào)整下再繼續(xù)。我當(dāng)初就選擇”快刀斬亂麻/早死早超生” 的方案直接約了 1 天時(shí)間搞定。

onsite 也基本上是在電腦上 coding。你和面試官一人一個(gè)筆記本,coding時(shí)共享屏幕,有時(shí)候題目面試官會(huì)在白板上寫(xiě)出。onsite 的題目,明顯就要比電話(huà)面試的題目難度高一些呢。但實(shí)際上比我想象中的要簡(jiǎn)單些。
因?yàn)樵?jīng)想 Google 這樣的公司面試恐怕連理解題目意思都要理解大半天吧??赡芤彩巧缯械木壒?,社招整體感覺(jué)在算法的要求比校招就要低一些。這只是我的主觀感受啦。(確實(shí)自己在當(dāng)面試官的過(guò)程中,在算法這塊對(duì)社招的同學(xué)預(yù)期也會(huì)低一些)
我記得其中有一道題目就跟 leetcode 上的類(lèi)似(再次聲明不是原題,也不 share 原題),leetcode 上那個(gè)題目應(yīng)該是二維矩陣,最短路徑相關(guān)的。用 dp 可以解決。只不過(guò),一般題目會(huì)分為好幾個(gè)小問(wèn)題,難度一般從易到難。
同時(shí)也考察到了二叉樹(shù),仍然圍繞著二叉樹(shù)的遍歷進(jìn)行。需要熟知二叉樹(shù)的各種遍歷方式,非遞歸的方法(遞歸比較容易,一般不會(huì)讓寫(xiě)這個(gè))。在遇到二叉樹(shù)相關(guān)問(wèn)題的時(shí)候,是否可以聯(lián)想到二叉樹(shù)的遍歷上來(lái)。
另外有一道系統(tǒng)設(shè)計(jì)的問(wèn)題,“知識(shí)圖譜”的概念,圍繞著”圖”的相關(guān)算法,這個(gè)要求在白板上寫(xiě)出設(shè)計(jì)方案和偽代碼。同時(shí)面試官會(huì)不斷 push 你讓你提出更優(yōu)的解決方案。有足夠多的計(jì)算資源,并行去跑,以及具體怎么實(shí)現(xiàn)。這道題目我回答的不好(當(dāng)初也知道不好,后面 HR 反饋也印證了這一點(diǎn))。
還有一道題目,是解決生活中的場(chǎng)景題目。需要你抽象出這個(gè)問(wèn)題,用代碼來(lái)解決。一般這種題目,就需要反復(fù)跟面試官去溝通和確認(rèn)其中的場(chǎng)景,怎樣把業(yè)務(wù)抽象成算法。
記得之前面試 Amazon 的時(shí)候也有類(lèi)似的題目(只不過(guò)當(dāng)初面 Amazon 考察的是 OO Design,而本題是具體算法實(shí)現(xiàn))。
onsite 一共聊了 5 輪,上午 2 輪,下午 3 輪,其中有兩輪是英文面試(英文面試后面會(huì)說(shuō))。整體來(lái)說(shuō),工程師崗位面試會(huì)圍繞如下幾個(gè)方面進(jìn)行(以下參考 HR 提供的面試指南):
Coding: 用熟悉的編程語(yǔ)言(不限)實(shí)現(xiàn)給定的題目。會(huì)重點(diǎn)關(guān)注解題目過(guò)程中的理解和溝通能力;
算法: 涉及到 排序/搜索/分治/動(dòng)態(tài)規(guī)劃/貪心/遞歸,具體數(shù)據(jù)結(jié)構(gòu),以及也有可能會(huì)涉及到 Dijkstra 和 A* 等算法,需要會(huì)算法復(fù)雜度的分析;
排序: 常見(jiàn)的排序算法,時(shí)間/空間復(fù)雜度,例如 快排/歸并/堆排序/插入/基數(shù)排序等等;
數(shù)據(jù)結(jié)構(gòu): 數(shù)組/連表/堆/棧/hash/數(shù)/二叉樹(shù)等;
數(shù)學(xué): 可能會(huì)涉及到離散數(shù)學(xué),組合數(shù)學(xué),例如 N個(gè)中選k 個(gè)的方法等;
圖: 圖的表達(dá)(例如矩陣/鄰接表),bfs/dfs 等;
遞歸: 遞歸和迭代的轉(zhuǎn)換;
其他: 設(shè)計(jì)和操作系統(tǒng)等;
以上這部分摘自 HR 提供的 Google 工程師面試指南。pdf,有需要的同學(xué)(再次強(qiáng)調(diào)已和 HR 確認(rèn),此資料可共享),從公眾號(hào)后臺(tái)回復(fù) “Google面試指南+郵箱”,我會(huì)發(fā)送給你(或者直接掃碼加我微信也可以)。
午飯
中午 HR 小姐姐會(huì)安排一個(gè) Google 的工程師,帶你吃飯,跟你聊天。有任何疑問(wèn)都可以跟他溝通。不得不說(shuō),Google 的伙食還是蠻不錯(cuò)的。我當(dāng)初就跟小哥哥聊了下他在 Google 工作的感受。

英文面試
英文面試,單獨(dú)拿出來(lái)說(shuō)一下。建議還是提前準(zhǔn)備,練習(xí)一下基本的口語(yǔ)。不要因?yàn)槊嬖囘^(guò)程中,突然讓你只用英語(yǔ)溝通,讓氣氛變得緊張起來(lái),導(dǎo)致發(fā)揮不好。
自我介紹之類(lèi)的肯定你可以提前準(zhǔn)備,然后就是你可以嘗試比如拿其中的題目自己模擬一下面試場(chǎng)景。主要是可能需要提前熟悉一下基本的計(jì)算機(jī)相關(guān)詞匯,不要到時(shí)候想表達(dá)卻表達(dá)不出。
整體來(lái)說(shuō),Google 的面試確實(shí)很難,但確實(shí)也沒(méi)我想象中的那么難。但要求確實(shí)是很高的,基本上一些邊界 case 等也都是在考察范圍內(nèi)的。
onsite 面試完后,在第二天,我就得到結(jié)果通知,面試沒(méi)通過(guò)。事實(shí)來(lái)看沒(méi)通過(guò)的結(jié)果反饋比通過(guò)反饋更快。HR 會(huì)反饋你哪里表現(xiàn)得不夠好,然后如果想進(jìn) Google,就加油刷題,說(shuō) 1 年后,可以再次嘗試,保持聯(lián)系哦。
哈哈,以上就是我這次完整的 Google 面試之旅,雖然失敗(實(shí)力還不夠)了,但還是有收獲的。如果大家有足夠自信(當(dāng)然也要有一定實(shí)力哈),也可以找我?guī)兔?nèi)推,我可以給在 Google 的同學(xué)幫忙或者直接給招聘的 HR 同學(xué)。?
如果要面試 Google,刷題是在所難免的了。整體來(lái)講,Google 的面試體驗(yàn)還是很不錯(cuò)的,全程 HR 小姐姐悉心指導(dǎo)和及時(shí)反饋,給 HR 小姐姐點(diǎn)贊?
如果大家覺(jué)得這篇文章有所收獲,還希望大家?guī)兔D(zhuǎn)發(fā),分享和“在看”。感謝!??
