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