微軟、亞馬遜、谷歌、蘋果、Facebook、雅虎程式設計師面試大揭祕

出版圈郭志敏發表於2013-10-31

對於多數求職者而言,面試好似一個迷局。你去了,見了幾個面試官,答了一堆問題,然後,或兩手空空離開,或幸運地拿到錄用通知。

你有沒有想過:

  • 面試結果是怎麼得出的?
  • 面試官會不會互相交流?
  • 公司最看重哪些方面?

好了,不用再挖空心思,再三思索了,我來告訴你。

在本章,我們邀請了來自頂尖科技公司(微軟、亞馬遜、谷歌、蘋果、Facebook及雅虎)的面試專家來為大家答疑解惑,揭祕面試中的那些事兒。

這些專家會讓我們瞭解各家公司的面試流程,幫助還原那些發生在面試會議室之外的事情,以及面試結束後的事項。

這些專家還會告訴我們各家公司面試流程的不同之處。比如,亞馬遜的“調杆員”是怎麼回事,谷歌的招聘委員會是如何運作的。是的,每家公司各具特色。瞭解這些“怪癖”會讓你更加胸有成竹,不會被突如其來的亞馬遜“調杆員”給嚇住,也不會對蘋果居然同時派出兩位面試官來考察你而感到意外。

① “bar raiser”(調杆員)的概念來自亞馬遜美國總部。這個詞原指在跳高比賽中,一次次將杆調高的工作人員。而亞馬遜的調杆員則是一群在招聘過程中負責從企業文化以及行為準則的角度考察應聘者,從而維護招聘質量的人。在招聘中,調杆員會用很苛刻的眼光考察應聘者是否在至少一點上高過亞馬遜的平均水準,如果是,那麼僱用這樣的人實際上就等於在提升公司的能力,這就起到了“抬杆”的作用。——編者注

此外,這些專家也強調了各家公司的面試重點。儘管這些頂尖公司都喜歡考察求職者的編碼能力和演算法基礎,他們其實也各有側重。不管這是源自各家公司的技術背景或是歷史,至少你知道該如何做好準備。

**接下來,讓我們一起揭開微軟、亞馬遜、谷歌、蘋果、Facebook和雅虎的“面試迷局”吧。**

微軟面試

微軟喜歡招聰明人,尤其青睞計算機極客。求職者必須對技術滿懷熱情。微軟的面試官不大會問你一些C++ API的箇中細節,而是直接讓你在白板上寫程式碼。

參加面試時,求職者最好在早上約定時間之前趕到微軟,先填好一些表格。接著你會和招聘助理碰面,他會給你一個面試樣題。招聘助理主要是幫你熱熱身,不大會問技術問題;就算真的問了幾個簡單的技術問題,也是想讓你放鬆心情,等到面試真正開始時,你就不會那麼緊張了。

對招聘助理一定要以禮相待。說不定他們會幫上大忙,在你首輪面試表現欠佳時,他們有可能幫你爭取重新面試的機會。誇張地說,他們甚至還能左右你的應聘結果。

面試當天你會接受4到5輪面試,面試官一般來自兩個團隊。許多公司會把面試安排在會議室,而微軟的面試一般在面試官的辦公室進行。你正好可以藉機四處看看,感受一下他們的團隊文化。

一輪面試過後,不同的團隊,做法不一樣,面試官可能會根據個人習慣決定是否將你的表現反饋給後續的面試。

完成所有面試後,你有可能會見到招聘經理。假如真是這樣的話,那可是好兆頭,這意味著你通過了某個團隊的基本考察。接下來,就要看招聘經理要不要錄用你了。

快的話,面試當天你就會知道結果,慢的話,則可能要等上一週。要是等了一週還沒收到人事部的通知,不妨發封郵件,客氣地問一下進展。

如果你沒有馬上收到回應,有可能是因為招聘助理太忙了,這並不代表你就沒戲。

必要準備事項:

你為什麼想要加入微軟?

提這個問題,微軟是想了解你是否對技術滿懷熱情。一個比較好的答案是:“自打接觸計算機以來,我就一直在用微軟的軟體,貴公司開發的軟體產品令人讚不絕口。比如,我最近一直在Visual Studio開發環境中學習遊戲程式設計,它的API實在是太好用了。”注意這個答案是如何展示你對技術滿懷熱情的。

獨特之處:

如果到了招聘經理這一關,說明你面試表現得不錯。這可是個好兆頭!

亞馬遜面試

亞馬遜的招聘流程一般從兩輪電話面試開始,期間求職者會接受某個團隊的面試。偶爾也會出現面試3輪甚至更多輪的情況,可能是有位面試官對你的評價不高,或是別的團隊對你有興趣。此外,還有其他特殊情況,比如求職者就在亞馬遜總部所在地西雅圖,或他以前面試過其他職位,也許一次電話面試就夠了。

在電話面試中,面試你的工程師通常會要求你通過共享文件工具(如CollabEdit)寫些簡單的程式碼。他們問的技術問題可謂五花八門,意在探測你究竟熟悉哪些領域。

接下來,如有一兩個團隊根據你的簡歷和在電話面試中的表現相中你,你就要飛到西雅圖接受4到5輪面試。在白板上寫程式碼是少不了的,有些面試官會著重考察你的其他技能。每一輪面試官都會側重不同的領域,所以他們的提問會大相徑庭。在提交自己的評價報告之前,他們看不到其他面試官對你的評價,而且公司也不鼓勵面試官在面試過程中互相交流,一切討論都得等到幾輪面試全部結束後。

顧名思義,“調杆員”主要負責把控面試質量。他們受過專門訓練,並且是從其他團隊抽調來的,以減少面試中的主觀傾向。在面試中,如果有位面試官風格迥異且要求格外嚴格,那他可能就是傳說中的“調杆員”。這種人不僅面試經驗豐富,而且跟招聘經理一樣,擁有生殺大權。不過,切記:這一輪面試表現磕磕絆絆,並不等於你的整體表現就很差。面試官會比照其他求職者來評價你的水平,而不是隻看你答對多少問題。

等到所有面試官提交評價報告後,他們會在一起討論你的表現,並決定是否錄用你。

一般來說,亞馬遜的招聘團隊都會很快給出錄用結果,很少有耽擱。要是一週內都沒等到結果,建議你發封措辭得當的郵件詢問進展。

必要準備事項:

亞馬遜是一家網際網路公司,這也意味著他們非常關注“擴充套件性”問題。請做好相應的準備。當然,回答這些問題,並不要求你具備分散式系統方面的知識。具體建議可參看“擴充套件性與儲存限制”一節。

此外,亞馬遜還會問很多物件導向設計的問題。請參看“物件導向設計”一節,裡面有一些樣題和建議。

獨特之處:

“調杆員”來自其他團隊,旨在提高面試標準。他和招聘經理一樣重要,請儘量表現得出色一些。

谷歌面試

業界流傳很多有關谷歌面試的可怕謠傳,但多數也只是謠傳。谷歌的面試與微軟或亞馬遜的並無太大區別。

谷歌的面試也從電話面試開始,來面試你的人是技術工程師,因此免不了會問些技術難題,求職者切不可掉以輕心。這些問題也可能涉及程式設計,有時你還要通過共享文件工具寫些程式碼。電話面試的問題和現場面試的類似,要求也一樣。

現場面試一般有4到6輪,其中一輪為午餐面試。面試官之間不能透露自己的評價報告,因此每一輪面試你都可以從零開始。午餐面試不會有評價報告,你可以藉機問些其他環節不方便問的問題。

谷歌不會要求面試官側重不同的領域,也沒有所謂的標準流程或結構。每個面試官可以自行決定問哪些問題。

面試過後,評價報告會以書面形式提交給由工程師和經理組成的“招聘委員會”,由他們作出錄用結論。面試評價報告由分析能力、程式設計水平、工作經驗和溝通能力等四部分組成,最後你會得到總的評分,在1.0到4.0之間。“招聘委員會”裡一般不會有你的面試官。就算有,那也純屬巧合。

通常,在決定錄用與否時,招聘委員會更看重那種有面試官給你打高分的情況,打個比方,如果你的得分是3.6、3.1、3.1 和2.6,效果要好過拿4個3.1。

也就是說,每輪面試不一定都要有上佳表現。此外,你在電話面試中的表現一般起不了決定性作用。

如果招聘委員會給出的意見是“聘用”,你的材料就會轉給“薪酬委員會”及“執行管理委員會”。最終結果可能要等上幾周,因為還有不少流程要走,等待多個委員會審批。

必要準備事項:

作為一家網際網路公司,谷歌非常看重如何設計可擴充套件的系統。因此,務必掌握“擴充套件性與儲存限制”一節的問題。此外,谷歌的面試官很喜歡問些涉及“位操作”的問題,也請重點複習這些方面的知識。

獨特之處:

面試官不是決策者。他們只提交評價意見供招聘委員會參考。招聘委員會給出錄用與否的決定,當然,該決定偶爾也會被谷歌高管否決。

蘋果面試

蘋果的面試流程與公司本身的風格非常相符,是最沒官僚味兒的。蘋果的面試官很看重技術功底,但求職者對應聘職位和公司的熱情也非常重要。雖然成為Mac使用者並不是應聘蘋果的先決條件,但你至少要對該系統有一定了解。

在蘋果的面試流程中,招聘助理會先給你打電話瞭解一些基本情況,接下來團隊成員會對你進行一連串的技術電話面試。

當你受邀去參加現場面試時,招聘助理會出面接待你,並介紹面試的大致流程。然後,你要接受招聘團隊成員6到8輪的面試,其中這個團隊的重要人物也會來面試你。

蘋果的面試形式是一對一或二對一。請做好在白板上寫程式碼的準備,交流的時候一定要把自己的思路表達清楚。你可能會跟未來的上司共進午餐,這看似隨意,但其實也是一次面試。每個面試官都會側重不同的領域,面試官之間一般不會過問彼此的面試情況,除非他們想讓後續面試官就求職者某一方面多挖掘點內容。

當天所有面試結束後,面試官會在一起商議你的表現。如果大家都認為你表現不錯,接下來會由你應聘部門的主管或副總來面試你。能見到主管也不見得你一定會被錄用,不過總歸是個好兆頭。讓不讓你見主管的決定對你是不公開的,如果你落選了,他們只是默默送你離開公司,也不會透露你為什麼落選了。

如果你得以進入主管或副總面試環節,面過你的面試官會聚到會議室正式表決錄用意見。副總通常不會列席,但如果你沒能打動他們,他們照樣可以直接否決。招聘人員通常會在幾天後聯絡你,要是等不及的話,你也可以主動聯絡。

必要準備事項:

如果你知道哪個團隊會來面試你,務必先熟悉他們的產品。你喜歡該產品的哪些方面?你覺得有哪些可以改進的地方?給出獨到見解可以有力展示你對這份工作的激情。

獨特之處:

在蘋果的面試中,二對一的形式司空見慣,不過也不用太緊張——這跟一對一面試並無分別。

此外,蘋果的員工都是超級果粉,在面試中,你最好也能展現出同樣的熱情。

Facebook面試

Facebook的線上工程難題曾引發熱議,其實這無非又是吸引眼球的手段之一。除了解答這些難題,你還可以通過傳統渠道申請該公司的職位,比如提交線上職位申請,或者參加校園招聘會。

① 感興趣的讀者可以訪問頁面Facebook Engineering Puzzles:www.facebook.com/careers/puzzles.php。 ——譯者注

一旦被Facebook挑中,求職者一般至少要接受兩輪電話面試。不過,公司所在地的求職者可以少一輪。電話面試主要涉及技術問題,求職者通常要用Etherpad或其他共享文件工具寫些程式碼。

② Facebook總部位於美國加利福尼亞州的門羅帕克市,地址為黑客路1號(1 Hacker Way)。——譯者注

如果你還在上學,在學校接受面試,那你還要寫程式碼。面試官會要求你在白板或白紙上寫程式碼。

現場面試時,主要由其他軟體工程師來面試你,不過,招聘經理有空的話也會參與。所有面試官都受過專業面試培訓,他們只提供意見,對你的應聘結果不作決斷。

現場面試的每個面試官都各有側重,以確保大家不會重複提問,並全面考察求職者的能力水平。面試問題主要分為演算法、程式設計水平、軟體架構/設計能力等幾大塊,同時,面試官也會考察你能否適應Facebook快節奏的開發環境。

面試過後,在交流你的表現之前,面過你的面試官會先提交書面評價報告。這麼做是為了確保各位面試官能對你的表現作出相對獨立的評價。

一旦收到所有的評價報告,面試小組和招聘經理便會商討你的面試結果。他們會先達成統一意見,然後提交給招聘委員會。

Facebook很看重“忍術”(靈活應變)——也就是使用任何語言快速構建優雅、可擴充套件解決方案的能力。懂PHP並不會顯得特別突出,因為Facebook也有很多後臺工作要用到C++、Python、Erlang和其他語言。

必要準備事項:

作為網路科技的新貴及“當紅炸子雞”,Facebook也更青睞那些富有創業精神的開發人員。在面試過程中,你要展現出自己熱衷創造新事物的激情。

獨特之處:

Facebook由公司統一招聘員工,而不是專門針對某個團隊。面試成功併入職後,你會先參加為期六週的“新兵訓練營”,幫你快速適應大規模的程式碼庫。資深工程師會擔任你的導師,輔導你掌握最佳實踐和必備技能,最終讓你可以遊刃有餘地加入自己喜歡的專案組。

雅虎面試

雅虎往往只招美國排名前20的高校畢業生,不過其他求職者仍可通過雅虎公開招聘渠道(或者,可以內部推薦的話就更好了)得到面試機會。取得面試資格後,你會先接受一輪電話面試。對你進行電話面試的一般是資深員工,比如技術主管或經理。

在現場面試中,一般由來自同一團隊的六七個人來面試你,每輪面試時長45分鐘。每個面試官都會側重不同的領域。比如,有的面試官可能側重於資料庫知識,而有的面試官則會關注你對計算機體系結構的理解。每輪面試的時間安排大致如下。

  • 開頭5分鐘:一般對話。比如,自我介紹,聊聊專案經歷等。
  • 中間20分鐘:程式設計問題。比如,實現歸併排序。
  • 最後20分鐘:系統設計問題。比如,設計一個大型分散式快取系統。這些問題往往與你以往的專案經歷或面試官當前在做的工作有關。

當天面試結束後,你可能還會跟專案經理或其他人面談一次。內容包括產品展示、你對雅虎的疑慮以及你手上有無其他公司的錄用通知,等等。這次面談旨在增進雙方瞭解,通常不會影響你的面試結果。

與此同時,之前的面試官會討論你的表現並嘗試作出結論。最終錄用與否由招聘經理決定,他會綜合考慮面試官對你的正面及負面評價。

如果你的表現不錯,有可能當天就會收到口頭錄用通知,但也不一定。也許他們要過幾天才通知你,箇中原因不一,比如,你應聘的團隊可能還想再面試幾個人看看。

必要準備事項:

雅虎面試少不了系統設計問題,幾乎成了慣例,所以,還請做好相應的準備。他們想要確認你不僅會寫程式碼,而且還能設計軟體。要是沒有這方面的知識,也不要緊,你仍然可以給出自己的設計思路。

獨特之處:

雅虎的電話面試一般由擁有決定權的人負責,比如招聘經理。此外,雅虎往往會在當天給出面試結果(如果你能入他們法眼),這一點很特別。在你進行最後一輪面試的同時,其他面試官也正在討論你的表現。

本文摘自即將上市的《程式設計師面試金典》

相關文章