面試流程——谷歌資深面試官經(jīng)驗總結
- 概述
- 面試題的來源
- 準備時間表與注意事項
- 面試評估流程
- 答題情況
- 著裝規(guī)范
- 十大常見錯誤
- 常見問題解答
1.1 概述
大多數(shù)公司的面試流程其實都大同小異。本章會簡述面試流程,以及企業(yè)到底想招募什么樣的人才。這些信息將指導你如何做好面試準備,以及在面試過程中和面試結束后該如何應對。
收到面試通知后,你通常得先經(jīng)歷一次篩選面試(screening interview),一般通過電話進行。***高校的應屆畢業(yè)生則可能需要參加現(xiàn)場的篩選面試。
不要因“篩選面試”這個詞兒而掉以輕心,篩選面試也很有可能涉及編碼與算法問題,要求不見得比現(xiàn)場面試低。如果不確定它是不是技術篩選面試,不妨問問招聘助理面試官是什么來頭,若是工程師,那十有八九會與技術相關。
許多公司會在面試中運用在線同步文檔編輯系統(tǒng),但也有可能讓你直接在紙上寫好代碼,然后在電話里念給他們聽。有些面試官甚至還會給你留“家庭作業(yè)”,或是要求你用電子郵件將寫好的代碼發(fā)給他們。
在現(xiàn)場面試(on-site interview)之前,通常會有一兩輪篩選面試。現(xiàn)場面試大概有4到6輪,其中一輪可能是午餐面試。當然,午餐面試比較隨意,面試官一般不會問你技術 問題,甚至不會納入面試評價范疇。但同時,這也是難得的好機會,你可以跟面試官探討自己感興趣的問題,了解公司的企業(yè)文化。其他幾輪面試主要涉及技術問 題,包括編碼和算法等。此外,你可能還要回答與簡歷相關的問題。
面試結束后,面試官們會聚在一起討論你的表現(xiàn),或者提交書面評價。大多數(shù)情況下,公司招聘人員都會在一周內給你回復,告知應聘進展。
要是已經(jīng)望穿秋水等了一個多星期,你也可以主動詢問進展。就算招聘人員沒有回應,也并不表示你被拒了(至少大的高科技公司是這樣,其實幾乎所有公司都是如此)。我再重復一次:沒有回應表示你的應聘結果還是未知數(shù)。當然,人們都希望招聘方在得出最終結論時,及時通知求職者。
拖拖拉拉的情況確實有。等不及的話,不妨問問相關招聘人員,但務請有禮有節(jié)。招聘人員和我們一樣,他們很忙,有些人會因此容易忘事。
1.2 面試題的來源
求職者經(jīng)常會問我,某些公司最近都喜歡問哪些面試題?他們總以為面試題會應時而變。實際上,公司本身對面試題并沒有什么傾向,這完全取決于面試官的個人喜好。容我解釋一下。
在大公司里,面試官通常需要先參加一些面試培訓課程。在谷歌,擔任面試官之前,我先參加了一次由外部公司提供的專門培訓。培訓課程為期一天,有一半 時間側重于法律層面的事務,比如,面試官不能探問求職者的婚姻狀況,不得詢問種族,等等。另一半時間則在探討如何應對“刺頭”求職者,比如當問及編碼問題 或其他令求職者認為是在“羞辱”自己的問題時,要是求職者“暴跳如雷”,該怎么應對。培訓過后,我又實地觀摩了兩次真正的面試,然后就開始獨自面試了。
就是這樣。我們受過的培訓也不過如此,其實所有公司都大同小異。
根本就不存在什么“谷歌官方面試題清單”,也從來沒有人要求我一定要問哪些特定的問題,或者必須避開哪些話題。
那我的面試題從何而來呢?其實,來源和大家一樣。
面試官也當過求職者,他們會借用自己當年被拷問過的題目。又或者,有些面試官也會彼此交換題庫。還有些人喜歡上網(wǎng)找問題,比如CareerCup.com網(wǎng)站。有些面試官也可能從上述渠道收集面試題,并或多或少做些調整。
就算真有公司給面試官準備好問題清單,這種情況也并不多見。面試官通常也會自行挑選問題,而且大家往往會有五六個常用的備選題目。
因此,下次在你想知道谷歌“最近”都問些什么問題的時候,不妨先停下來想一想。谷歌與亞馬遜的面試題其實沒什么不同,他們需要的都是軟件開發(fā)人才。至于面試題是不是“最近流行的”也就更無關緊要了。萬變不離其宗,因為這本來就得靠面試官自己去把握。
當然,總體上,不同的公司在風格上存在差異。互聯(lián)網(wǎng)公司往往會提些系統(tǒng)設計方面的問題,而那些使用數(shù)據(jù)庫的公司則明顯偏愛數(shù)據(jù)庫方面的問題。然而,大部分面試題無外乎就是數(shù)據(jù)結構和算法之類的,任何公司都會問到。
1.3 準備時間表與注意事項
“臺上一分鐘,臺下十年功”,事實上你的面試表現(xiàn)取決于你的功底——離不開多年的積淀。你需要剛好具備能為公司所用的技術經(jīng)驗,然后還要準備好在面試中解決實際的技術問題。下面的時間表和流程圖可以給你一些啟發(fā)。
如果你起步比較晚,也不用擔心。“盡人事,知天命”,請安心準備,祝你好運!
1.4 面試評估流程
招聘人員可能會告訴你,他們主要考查四個方面:工作經(jīng)驗、企業(yè)文化契合度、編程技能及分析能力。這四個方面相輔相成,但在決定錄用與否時,分量最重的通常還是編程技能和分析能力(或者看你是否聰明)。這也是為什么本書的主要篇幅都在探討如何提升編程與算法技能。
當然,雖說編程與算法技能往往最為重要,但并不表示你可以忽視其他兩個方面。
一旦進入大型科技公司的面試環(huán)節(jié),你之前的工作經(jīng)驗就不是特別重要了,但它可能會左右面試官對你的看法。比如,如果你說起以前寫的某個復雜程序的精 彩之處,面試官很有可能會想:“哇,她可真聰明!”一旦他認定你智力超群,可能就會下意識地忽略你所犯的小錯誤。總之,面試并不會十分精確,對某些“軟問 題”做好充分準備會大有裨益。
創(chuàng)業(yè)公司比大公司更看重企業(yè)文化契合度(或你的個性,主要看是否與公司合拍)。舉個例子,如果公司的企業(yè)文化鼓勵員工獨立做決定,那么喜歡聽從指導的人就不太適合了。
此外,求職者因為過于自大、巧辯或抵觸而被淘汰的情況也并不少見。我就遇到過,有位求職者對我提問的用詞吹毛求疵,并抱怨這導致他解題不太順利,后 來他還對我的引導方式心生不滿。這種“抵觸心太重”的表現(xiàn)其實也是一個警示,果然,其他面試官對他的感覺也很不好。***他被淘汰了。誰會愿意跟這種人一起 共事呢?
所以,你應該注意以下幾點。
- 如果人們都認為你驕傲自大、過于狡辯,或有其他負面評價,那你***在面試中收斂一下。個性不討喜的話,哪怕你的表現(xiàn)再好,也可能會被拒。
- 準備一些與簡歷相關的問題。雖然這不是最重要的因素,但也不能掉以輕心。稍微花點時間準備就能起到很好的效果,做到“四兩撥千斤”。
- 把主要精力用在編程與算法問題上。
***,我還是要再強調一遍,面試并不會十分精確。你的表現(xiàn)可能會有失水準,招聘委員會(或不管是誰)有時候也會做出錯誤判斷。就像任何群體一樣,招聘委員會也可能會被某位主導人物的觀點所左右。這也許不公平,但這就是生活。
記住——這次被拒絕并不代表永遠。一年內你還可以重新應聘,很多求職者都有過失利后再成功的經(jīng)歷。
不要氣餒,失敗是成功之母。
1.5 答題情況
有則謠傳流傳甚廣且頗具迷惑性:求職者必須答對全部問題才會被錄用。事實絕非如此。
首先,面試題的答案很難用“正確”和“錯誤”去簡單評判。我個人在評估求職者的面試表現(xiàn)時,一般不會只看他們答對了幾道題。相反,我會考量其最終解法是否***,用時多久,代碼整潔與否。這不只是單純的是非判斷,還要綜合考慮很多因素。
其次,你的面試表現(xiàn)還會拿來跟其他求職者作比較。比如說,你用15分鐘出色地解決了一道題,而另一個人不到5分 鐘就搞定了一道比較容易的題,是否就意味著那個人的表現(xiàn)比你好呢?也許是,但也未必。很自然,面試官出的題越簡單,他們越是希望你盡快給出***答案。但要 是題目很難,他們也不會指望你能答得又快又好,畢竟,出點紕漏也是在所難免的。
我在谷歌評估過數(shù)千名求職者的面試資料,其中只有一位求職者的面試表現(xiàn)堪稱“***無瑕”。其他人,包括***被錄用的幾百個幸運兒,都或多或少犯過一些錯。
1.6 著裝規(guī)范
軟件工程師一般都穿得比較隨意。這一點從面試的著裝規(guī)范也看得出來。參加面試時,推薦做法是穿得比同級別員工稍好一點。
以下是我給軟件工程師(及測試人員)的面試著裝建議,意在讓大家找到一個“平衡點”:不要穿得過于正式,也不要太隨意。其實,有很多人還是穿著牛仔褲和T恤衫參加創(chuàng)業(yè)公司或大公司的面試,也不會有什么問題。畢竟,公司不是看你穿什么,而是看你的編程水平。
創(chuàng)業(yè)公司 | 微軟、谷歌、亞馬遜、 Facebook等科技巨頭 |
非科技公司 (包括銀行) |
|
---|---|---|---|
男性 | 卡其褲、休閑褲或整潔得體 的牛仔褲。Polo衫或禮服襯衫 |
卡其褲、休閑褲或整潔得體 的牛仔褲。Polo衫或禮服襯衫 |
套裝,不打領帶(可 帶一條領帶以防萬一) |
女性 | 卡其褲、休閑褲或整潔得體 的牛仔褲。大方得體的上衣 或毛衣 |
卡其褲、休閑褲或整潔得體 的牛仔褲。大方得體的上衣 或毛衣 |
套裝,或得體的休閑褲 配整潔的上衣 |
這些只是指導建議,具體還要參考公司的企業(yè)文化。此外,如果你應聘的是項目經(jīng)理、開發(fā)主管或其他管理層職位,面試時***還是穿得正式一點。
1.7 十大常見錯誤
錯誤一:只在計算機上練習
如果你正準備參加海洋游泳比賽,你會只在泳池里練習嗎?應該不會。你得去體驗大風大浪及海洋里各種情況帶來的影響。所以,你肯定會希望到海洋中實地訓練。
在計算機上借助編譯器演練面試題就像只在泳池里練習一樣。拋開這個環(huán)境吧,讓我們拿出紙和筆。你可以在寫好全部代碼并做過人工測試之后,再在計算機上用編譯器進行驗證。
錯誤二:不做行為面試題演練
很多求職者將全部時間花在演練技術問題上,而忽視了行為面試題。你猜怎么著?面試官可是兩者都會考查的。
而且不止于此,你回答行為問題的表現(xiàn)其實還會左右面試官對你技術能力的看法。行為問題的準備工作其實相對比較輕松,而且容易達到事半功倍的效果。用心回顧你以往的項目和經(jīng)歷,然后準備一些小故事。
錯誤三:不做模擬面試訓練
假設你要準備一場重大演講,所有同事和相關人員都將列席,而且它還關乎你的未來。要是只在頭腦里無聲地練習演講,到了真正演講時,你肯定會發(fā)狂的。
光是紙上談兵,不做模擬面試也會陷入同樣的境地。如果你是一名工程師,肯定認識不少同行。不妨找個朋友幫你做模擬面試。作為回報,你也可以給他當一回面試官。
錯誤四:試圖死記硬背答案
死記硬背答案最多只能解決一些特定問題,但是一碰到新的題,你可能就傻眼了。而且,基本上你不太可能碰上出自本書的題目。
最靠譜的做法就是,不看答案,先把書里的題全部認真做一遍。這樣你才有可能練就各種技能和技巧,從容應對新問題。就算***你只能大概復習一下為數(shù)不多的題,這種做法也會對你很有幫助。質量勝于數(shù)量。
錯誤五:不大聲說出你的解題思路
透露個秘密:面試官才不會知道你心里想什么。因此,面試時默不作聲,我根本無法了解你的思路。假如你沉默時間過長,我還會誤以為你毫無進展。你得多出聲,沒準說著說著就找到了解法。請大聲說出解題的思路,這樣面試官就會知道你還在處理這個問題,沒有卡殼。
這么做還有個好處就是不至于跑題,從而有助于你盡快找到解法。當然,***的作用就是突顯你強大的溝通能力。何樂而不為呢?
錯誤六:過于倉促
寫程序不是什么競賽,面試也不是,所以解題時不要太過倉促。代碼寫得太草率容易出問題,也說明你這個人不夠細心。請放慢節(jié)奏,有條不紊,多做測試,問題考慮得周全些。這么一來,最終你反而能更高效地給出答案,錯誤也會少一些。
錯誤七:代碼不夠嚴謹
其實每個人都寫得出***的代碼,但有時我們還是會在面試中寫出錯誤百出的程序,不是嗎?代碼冗余、數(shù)據(jù)結構亂七八糟(比如,缺少面向對象設計)等 等,這些都是常見錯誤!寫代碼時,不妨設想一下你是在處理實際問題,要注重可維護性。將代碼劃分成不同的子程序,并精心設計數(shù)據(jù)結構來處理相應的數(shù)據(jù)。
錯誤八:不做測試
在日常工作中,你不可能不做任何測試就提交代碼,既然如此,為什么要在面試中省略這一步呢?寫完代碼后,請“運行”(或者審查)一下程序來驗證結果。或者,在處理復雜問題時,你還可以邊寫代碼邊測試。
錯誤九:修正錯誤漫不經(jīng)心
程序總會有bug,這就是生活或編程的本來面目。只要用心測試你的代碼,bug也許就會現(xiàn)出原形。那也不錯。
不過,重要的是發(fā)現(xiàn)bug時,你必須三思而后行,修正之前先確定出錯原因。有些求職者看到傳入特定參數(shù)時函數(shù)返回false
而不是true
,會直接將返回值取反,接著檢查問題是否得到修正。當然,偶爾他們也能瞎貓碰上死耗子,但實際上如此倉促行事往往會導致更多的bug,同時也反映出你這個人比較粗心大意。
有bug其實很正常,但胡亂修改代碼卻很嚴重。
錯誤十:輕言放棄
我知道面試題都很難,但不難怎么顯出求職者的水平呢。你會迎難而上還是輕言放棄?態(tài)度很重要,面試官都喜歡那些不畏挑戰(zhàn)、迎難而上解決問題的求職者。畢竟,面試本來就不簡單。所以,碰到棘手的問題請不要驚慌,也不要輕言放棄。
1.8 常見問題解答
碰到熟悉的問題時應該如實相告嗎?
是的!碰到熟悉的問題,當然要告訴面試官!有些人會覺得這很傻——要是熟悉這個問題(并知道答案),豈不是如虎添翼,對吧?其實,未必如此。
我們力薦你如實相告的理由如下。
-
彰顯你的誠實品質。這能反映出你的誠信——可以大大加分!要知道面試官可是在默默地考察你,看你夠不夠格成為他未來的同事。我不知道你個人怎么想,反正我是喜歡和實在人一起共事。
-
這個問題可能略有改動。你不會想冒這個險給個錯誤答案吧?
-
如果你將正確答案脫口而出,面試官會覺得很可疑。面試官當然知道題目的難度。但如果你佯裝磕磕絆絆地答題,則很有可能夸張過度,而顯得你這個人很不誠實。
該使用哪種編程語言?
很多人都會建議說用自己最得心應手的語言,其實理想情況下,你應該使用面試官最熟悉的語言。我一般會推薦使用C、C++或Java,因為大多數(shù)面試 官都熟悉這三種語言。我個人偏好Java(除非涉及C/C++問題),因為用Java編寫程序效率比較高,而且寫出來的程序簡單易懂,哪怕平時用慣C++ 的人看Java程序也不會有太大難度。有鑒于此,本書基本上都用Java來解題。
面試結束后我沒有收到回復,是被拒了嗎?
不是的。真要被拒的話,公司一般都會給你通知。面試結束后短時間內沒有收到回復并不代表什么。你可能表現(xiàn)得很不錯,但招聘人員不巧度假去了,沒能及 時處理。公司可能正在進行部門重組,具體該招多少人尚無定論。又或者,你確實表現(xiàn)得不怎么樣,但碰巧遇到了一個辦事拖拉或者特別忙的招聘人員,他沒能及時 答復你。當然,也會有一些奇怪的公司,“嗯,既然我們不打算錄用這個求職者,那就沒必要給他回復”。所以,一切取決于公司本身。但你可以發(fā)郵件或打電話跟 蹤后續(xù)進展。
被拒之后我還能重新申請嗎?
當然可以了,不過通常需要等上一段時間(半年至一年)。上一次的糟糕表現(xiàn)一般不會影響下一次面試。很多人都被微軟、谷歌拒過,但他們后來還是順利過關了。