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