嘗試在自己的博客上搜索點(diǎn)東西,結果發(fā)現 4 年多以前還在博客上寫(xiě)過(guò)一系列的 recruiting events,把大四時(shí)候參加過(guò)的各種筆試面試都記錄下來(lái)了。我從去年準備離開(kāi)百度開(kāi)始,到現在總過(guò)面試過(guò) 4 家公司:Google、Microsoft、Yahoo、Facebook,原本去年也想把面試經(jīng)驗寫(xiě)一寫(xiě)的,結果一拖就拖到現在。我不想寫(xiě)面試經(jīng)驗,因為我個(gè)人不喜歡漏題和背題的做法。我自己作為面試官,知道要設計出來(lái)一道好用的題目有多難,所以我希望面試者都是如實(shí)表現自己解題能力的。我更喜歡寫(xiě)面試體驗,就是在整個(gè)面試過(guò)程中一家公司給人的印象是怎樣的,HR 和面試官是否專(zhuān)業(yè),能否讓人信服這是一家值得長(cháng)期工作的公司。
我想寫(xiě)的第一家公司是 Google,因為它是我在想要離開(kāi)百度時(shí)第一家聯(lián)系到我的公司。2012 年 12 月底的某一天早上,我突然感覺(jué)到我應該離開(kāi)百度,因為如果這個(gè)時(shí)候已經(jīng)沒(méi)有勇氣離開(kāi)這家公司了,很可能就不會(huì )再想要離開(kāi)了。當天中午在百度大廈西餐廳吃午飯,接到一個(gè) Google 上海 HR 的電話(huà),問(wèn)我有沒(méi)有興趣去面試,我想既然你打電話(huà)來(lái)的時(shí)機那么好,我就答應你去面試吧。(在那一天之前,我對獵頭的標準回復是「有美國或者香港的職位嗎?」)她問(wèn)我將來(lái)希望在北京還是上海工作,當時(shí)我對北京的厭惡程度還沒(méi)有現在那么高,同時(shí)覺(jué)得搬家到上海又比較麻煩,于是就說(shuō)在北京,接著(zhù)我就變成跟北京 HR 溝通了。
Google 的 HR 會(huì )負責做兩件簡(jiǎn)單得不需要面試官做的事情,這能夠很好的提高招聘流程的效率。第一件是確認你能夠適應工作環(huán)境中的英語(yǔ),為此 HR 要我用英語(yǔ)跟她對話(huà)兩三分鐘,主要就是讓我說(shuō)說(shuō)工作經(jīng)驗和其中的亮點(diǎn)。習慣在私企工作的人不要以為外企對英語(yǔ)的要求很高,其實(shí)大多數長(cháng)期在中國工作的人說(shuō)話(huà)或者發(fā)郵件都會(huì )很 Chinglish 啦,所以關(guān)鍵是要敢于用英語(yǔ)進(jìn)行溝通。
然后 HR 發(fā)了一個(gè) Codility 的地址給我,讓我有空抽時(shí)間去做題。一個(gè)小時(shí) 3 道難度相當于 OI 基礎題的題目,平均 20 分鐘一道。最簡(jiǎn)單的題目一看就知道是 O(n) 能解決的,最復雜的題目看上去是 O(n^2) 但想一下就能優(yōu)化為 O(n log n)。對于有算法訓練背景的人來(lái)說(shuō),這樣的題目會(huì )讓人感覺(jué)到很有把握。對于沒(méi)有經(jīng)受過(guò)算法訓練的人來(lái)說(shuō),掉進(jìn)陷阱里是很容易的。很可能沒(méi)有把 O(n^2) 優(yōu)化為 O(n log n),結果超時(shí);可能沒(méi)仔細看題目說(shuō)明的數值取值范圍,某些變量選錯了數值類(lèi)型,結果溢出??紤]到 Google 重視算法的程度,再加上 Google 中國面試的額外難度,算法訓練還是很必要的。
匹茲堡的Google新辦公室
在我通過(guò) Codility 測試后,HR 問(wèn)我了對題目難度的反饋,然后約了一輪電話(huà)面試,并且告知面試主要圍繞算法、數據結構、系統設計、編碼來(lái)進(jìn)行。Google 面試的格式都很固定,45 分鐘內期望你能做出 3 道題來(lái)。這 3 道題最起碼要能把人人都能想出來(lái)的「笨辦法」用代碼寫(xiě)出來(lái),否則會(huì )讓面試官感到不滿(mǎn)意。如果有些題目能夠比較快地做出來(lái),面試官就會(huì )讓你優(yōu)化。就算你第一次給出的答案已經(jīng)是業(yè)界已知最優(yōu)解,面試官都還是會(huì )讓你優(yōu)化,因為誰(shuí)也不知道有沒(méi)有人能在面試過(guò)程中突然爆發(fā),想出一些過(guò)去沒(méi)人想到過(guò)的解法。如果面試官心中已有優(yōu)化的方案,在你想不出優(yōu)化方案時(shí)他可能會(huì )給你提供一些提示。
一輪電話(huà)面試后,HR 就開(kāi)始約到 Google 辦公室的面試了。第一次約了下午 3 輪面試,還是那個(gè)很固定的格式:每輪面試 45 分鐘,兩輪間隔 15 分鐘。整個(gè)面試流程讓人感覺(jué)到很人性化:在 Google 簽到后,HR 會(huì )先帶你去 kitchen 拿點(diǎn)吃的喝的,然后把你帶到面試所用的會(huì )議室。多輪面試的話(huà),HR 中間還會(huì )來(lái)問(wèn)一下你要不要去洗手間,或者多拿兩瓶水。面試完畢后 HR 會(huì )來(lái)問(wèn)你感覺(jué)如何,同時(shí)也會(huì )讓你知道面試官的初步反饋是否跟你的感覺(jué)一致。我在 3 輪面試中有一輪感覺(jué)不太好,因為面試官只給了 2 道題,并且我最終都沒(méi)辦法解出來(lái),HR 也確認了就是這一輪的反饋不好。
此外,Google 的招聘流程還讓人感覺(jué)到很有效率。作為面試官,我也知道自己寫(xiě)面試反饋有多喜歡拖延,而且公司填寫(xiě)面試反饋的系統越不人性化我就越想要拖延,然而公司內部系統做得人性化的又實(shí)在罕見(jiàn)。Google 的面試基本上隔天就有結果,然后 HR 就會(huì )約下一輪的面試。因為我在百度的時(shí)候每周哪個(gè)時(shí)間沒(méi)有會(huì )議是很確定的,所以我總是選擇下周同一個(gè)時(shí)間段來(lái)面試。在經(jīng)過(guò)總共 4 輪面試后,HR 說(shuō)因為前面有一輪的面試官反饋不好,所以希望再加一輪面試。因為前面反饋不好的面試官比較 senior,所以這次找了一位同樣 senior 的面試官來(lái)面試,于是我又去了一次 Google 辦公室。
完成 5 輪面試后,HR 把材料提交給 Google 的北京招聘委員會(huì ),結果沒(méi)有通過(guò)。HR 說(shuō),因為 Google 都是按照后端工程師的標準來(lái)招聘,看重算法和數據結構,前端工程師要通過(guò)不容易。因為 Google 沒(méi)有專(zhuān)門(mén)的前端工程師,只有一個(gè)軟件工程師職位,所以所有人還是必須按照一個(gè)標準來(lái)衡量。她問(wèn)我如果找到專(zhuān)門(mén)需要前端工程師的團隊,并且需要額外再面試的話(huà),我是否感興趣。當時(shí) Google 是我的第一選擇,我當然說(shuō)感興趣啦。
后來(lái) HR 跟我說(shuō),她幫忙問(wèn)過(guò) Google Maps,可惜對方說(shuō)不要專(zhuān)才只要通才。又過(guò)了幾個(gè)星期,HR 發(fā)現 IME 需要專(zhuān)門(mén)做前端的人,于是幫我再約了一輪面試。這輪面試是在 Google 辦公室做的,但實(shí)際上是視頻會(huì )議,因為面試官在美國。(不確定面試官是在美國出差,還是美籍華人。)面試過(guò)程跟電話(huà)面試類(lèi)似,用 Google Docs 寫(xiě)代碼,比電話(huà)面試要好的是說(shuō)話(huà)時(shí)能夠見(jiàn)到人。
這一輪面試結束后,我的材料再次進(jìn)入 Google 的北京招聘委員會(huì )。HR 說(shuō)這次專(zhuān)門(mén)找了對前端有經(jīng)驗的人來(lái)審閱我的材料,結果順利通過(guò)了。接著(zhù) HR 問(wèn)我要了一大堆的補充材料,包括高考成績(jì)和 GPA(連同成績(jì)單),還包括當前薪酬和競爭對手的 offer(我當時(shí)有 Yahoo 的 offer),甚至包括過(guò)去的獲獎和晉升經(jīng)歷。所有這些材料都會(huì )發(fā)往 Google 美國總部審閱,具體流程 HR 沒(méi)有細說(shuō),但看 Don Dodge 的文章可以了解一些。最后我被 Google 美國總部給拒絕了,然后 HR 還是一如既往地及時(shí)溝通,并且安慰了我幾句。
整個(gè) Google 招聘流程下來(lái),可以感覺(jué)到人性化和高效率,同時(shí)也能感覺(jué)到 HR 確實(shí)在很努力地為候選人爭取機會(huì )??梢哉f(shuō),無(wú)論是否通過(guò),Google 招聘流程至少能給候選人一個(gè)很好的印象。據我所知,盡管 Google 聲稱(chēng)全球招聘標準一致,但因為中國聰明且懂算法的人實(shí)在太多,所以難度更高是很正常的。能夠在 Google 中國以外的地區應聘的話(huà),應該會(huì )容易一些。