嘗試在自己的博客上搜索點東西,結果發(fā)現(xiàn) 4 年多以前還在博客上寫過一系列的 recruiting events,把大四時候參加過的各種筆試面試都記錄下來了。我從去年準備離開百度開始,到現(xiàn)在總過面試過 4 家公司:Google、Microsoft、Yahoo、Facebook,原本去年也想把面試經(jīng)驗寫一寫的,結果一拖就拖到現(xiàn)在。我不想寫面試經(jīng)驗,因為我個人不喜歡漏題和背題的做法。我自己作為面試官,知道要設計出來一道好用的題目有多難,所以我希望面試者都是如實表現(xiàn)自己解題能力的。我更喜歡寫面試體驗,就是在整個面試過程中一家公司給人的印象是怎樣的,HR 和面試官是否專業(yè),能否讓人信服這是一家值得長期工作的公司。
我想寫的第一家公司是 Google,因為它是我在想要離開百度時第一家聯(lián)系到我的公司。2012 年 12 月底的某一天早上,我突然感覺到我應該離開百度,因為如果這個時候已經(jīng)沒有勇氣離開這家公司了,很可能就不會再想要離開了。當天中午在百度大廈西餐廳吃午飯,接到一個 Google 上海 HR 的電話,問我有沒有興趣去面試,我想既然你打電話來的時機那么好,我就答應你去面試吧。(在那一天之前,我對獵頭的標準回復是「有美國或者香港的職位嗎?」)她問我將來希望在北京還是上海工作,當時我對北京的厭惡程度還沒有現(xiàn)在那么高,同時覺得搬家到上海又比較麻煩,于是就說在北京,接著我就變成跟北京 HR 溝通了。
Google 的 HR 會負責做兩件簡單得不需要面試官做的事情,這能夠很好的提高招聘流程的效率。第一件是確認你能夠適應工作環(huán)境中的英語,為此 HR 要我用英語跟她對話兩三分鐘,主要就是讓我說說工作經(jīng)驗和其中的亮點。習慣在私企工作的人不要以為外企對英語的要求很高,其實大多數(shù)長期在中國工作的人說話或者發(fā)郵件都會很 Chinglish 啦,所以關鍵是要敢于用英語進行溝通。
然后 HR 發(fā)了一個 Codility 的地址給我,讓我有空抽時間去做題。一個小時 3 道難度相當于 OI 基礎題的題目,平均 20 分鐘一道。最簡單的題目一看就知道是 O(n) 能解決的,最復雜的題目看上去是 O(n^2) 但想一下就能優(yōu)化為 O(n log n)。對于有算法訓練背景的人來說,這樣的題目會讓人感覺到很有把握。對于沒有經(jīng)受過算法訓練的人來說,掉進陷阱里是很容易的。很可能沒有把 O(n^2) 優(yōu)化為 O(n log n),結果超時;可能沒仔細看題目說明的數(shù)值取值范圍,某些變量選錯了數(shù)值類型,結果溢出。考慮到 Google 重視算法的程度,再加上 Google 中國面試的額外難度,算法訓練還是很必要的。
匹茲堡的Google新辦公室
在我通過 Codility 測試后,HR 問我了對題目難度的反饋,然后約了一輪電話面試,并且告知面試主要圍繞算法、數(shù)據(jù)結構、系統(tǒng)設計、編碼來進行。Google 面試的格式都很固定,45 分鐘內(nèi)期望你能做出 3 道題來。這 3 道題最起碼要能把人人都能想出來的「笨辦法」用代碼寫出來,否則會讓面試官感到不滿意。如果有些題目能夠比較快地做出來,面試官就會讓你優(yōu)化。就算你第一次給出的答案已經(jīng)是業(yè)界已知最優(yōu)解,面試官都還是會讓你優(yōu)化,因為誰也不知道有沒有人能在面試過程中突然爆發(fā),想出一些過去沒人想到過的解法。如果面試官心中已有優(yōu)化的方案,在你想不出優(yōu)化方案時他可能會給你提供一些提示。
一輪電話面試后,HR 就開始約到 Google 辦公室的面試了。第一次約了下午 3 輪面試,還是那個很固定的格式:每輪面試 45 分鐘,兩輪間隔 15 分鐘。整個面試流程讓人感覺到很人性化:在 Google 簽到后,HR 會先帶你去 kitchen 拿點吃的喝的,然后把你帶到面試所用的會議室。多輪面試的話,HR 中間還會來問一下你要不要去洗手間,或者多拿兩瓶水。面試完畢后 HR 會來問你感覺如何,同時也會讓你知道面試官的初步反饋是否跟你的感覺一致。我在 3 輪面試中有一輪感覺不太好,因為面試官只給了 2 道題,并且我最終都沒辦法解出來,HR 也確認了就是這一輪的反饋不好。