技術(shù)招聘也是技術(shù)活。上下求索的不只是應(yīng)聘者,面試官也同樣絞盡腦汁。在本文中,作者先后回顧了身為應(yīng)聘者和面試官兩種角色的經(jīng)歷,帶你一瞥國(guó)內(nèi)外技術(shù)招聘的那些事兒。
年初加州求職不利,撰文《加州求職記》一篇,蒙列位看官抬愛,短短兩天時(shí)間點(diǎn)擊量破萬。之后,收到《程序員》雜志編輯的約稿郵件,詢問能否結(jié)合既往的招聘經(jīng)歷寫一寫國(guó)內(nèi)外招聘的異同點(diǎn)。畢業(yè)至今,除去年初嘗試的Google、Amazon、Facebook三大公司,身為應(yīng)聘者參加的正式招聘面試就只有多年前加入百度的那次而已。相較之下,在百度做了兩年招聘,身為面試官的經(jīng)驗(yàn)反倒是豐富多了。思忖了一下便應(yīng)了下來,打算結(jié)合個(gè)人經(jīng)歷寫寫招聘面試這檔事。需要說明的是,這里記述的只是個(gè)人的一些經(jīng)驗(yàn),不具備通用性。文中面試官角度的意見不能代表百度乃至國(guó)內(nèi)IT企業(yè)的普遍特點(diǎn);同樣,作為應(yīng)聘者的意見也無法代表灣區(qū)大公司的普遍特點(diǎn)。
面試官的心思
招聘面試,就是面試官和應(yīng)聘者之間的溝通和過招。通常情況下,在面試中占據(jù)主動(dòng)地位的都是面試官。應(yīng)聘者能否通過面試,便取決于能否在幾十分鐘內(nèi)證明自己具備面試官所代表的組織需要的素質(zhì)。俗話說知己知彼方能百戰(zhàn)不殆,面試官大人們都在想什么呢?他們希望看到的素質(zhì),大體可分為軟硬兩類。
所謂硬素質(zhì),就是算法、數(shù)據(jù)結(jié)構(gòu)、程序語(yǔ)言等基礎(chǔ)技能及體系結(jié)構(gòu)、操作系統(tǒng)、網(wǎng)絡(luò)、數(shù)據(jù)挖掘、分布式系統(tǒng)等細(xì)分專業(yè)方向技能的掌握情況。硬素質(zhì)之所以謂“硬”,便在于這些素質(zhì)出題一考便知,應(yīng)聘者基本上沒有蒙混過關(guān)的可能。
所謂軟素質(zhì),是那些虛無縹緲,難以通過普通考題判斷出來的東西,如學(xué)習(xí)能力、抗壓能力、溝通能力、邏輯思維能力、價(jià)值觀取向等。這一羅列,是不是很眼熟?
不少應(yīng)聘者都會(huì)在簡(jiǎn)歷中加上“自我評(píng)價(jià)”一欄,其中列上“學(xué)習(xí)能力優(yōu)秀”、“抗壓能力良好”、“溝通能力佳”、“邏輯思維能力強(qiáng)”,我剛畢業(yè)時(shí)也未能免俗。其實(shí)呢,這幾句話寫了也是白寫:什么也證明不了,空占篇幅,甚至還可能會(huì)起反效果。簡(jiǎn)歷上還是寫些實(shí)打?qū)嵉臇|西為好,軟素質(zhì)不妨在合適的時(shí)機(jī)通過推薦信等方式表達(dá),或者干脆留待面試時(shí)交由面試官親自考察。
不難想象,軟素質(zhì)比硬素質(zhì)要更難考察,甚至多少有點(diǎn)“跟著感覺走”的意思。不少面試官都不擅長(zhǎng)考察軟素質(zhì),新手尤甚。邏輯思維能力和溝通能力倒還好說,面試時(shí)看你反應(yīng)夠不夠快,說話有沒有條理,基本上能給出比較靠譜的評(píng)價(jià)。這學(xué)習(xí)能力、抗壓能力、價(jià)值觀之類的怎么考?說穿了就是三個(gè)字:挖細(xì)節(jié)。
誠(chéng)然,判斷一個(gè)人的軟素質(zhì),往往需要長(zhǎng)期的相處和觀察。但我們最終的判斷依據(jù),實(shí)際上是發(fā)生在這個(gè)人身上的各種典型事例。因此,只要能在面試中讓應(yīng)聘者給出足以證明自己某種/某些軟素質(zhì)的事例,便可以達(dá)到考察的目的。而事例的真實(shí)性,便是通過挖掘細(xì)節(jié)來保證的——如果是瞎編的經(jīng)歷,最終多半會(huì)支支吾吾語(yǔ)焉不詳。
剛當(dāng)面試官時(shí),曾經(jīng)碰到這么一個(gè)反面案例。當(dāng)時(shí)是一場(chǎng)社招面試,來應(yīng)聘的是個(gè)剛工作不久的小伙子。起先我對(duì)他的評(píng)價(jià)挺好。后來,在敘述項(xiàng)目經(jīng)歷時(shí),他提到自己曾經(jīng)做過一套系統(tǒng),而我剛好有類似系統(tǒng)的經(jīng)驗(yàn),便產(chǎn)生了興趣,興致勃勃地接連問了幾個(gè)該系統(tǒng)設(shè)計(jì)思路和實(shí)現(xiàn)細(xì)節(jié)相關(guān)的問題。
沒想到幾個(gè)問題下來,他越發(fā)緊張,最后突然紅著臉說:“對(duì)不起,其實(shí)我沒做過這套系統(tǒng),只是為了豐富項(xiàng)目經(jīng)驗(yàn)而虛構(gòu)了一個(gè),但實(shí)在編不下去了……”當(dāng)時(shí)我實(shí)際上還不知道這種方法,只是一時(shí)興起不斷追問細(xì)節(jié)才讓他露了馬腳。后來,在參加校招面試時(shí)從公司組織的面試官培訓(xùn)中才學(xué)到了這招,學(xué)名喚作“STAR面試法”,專用于軟素質(zhì)考察,感興趣的讀者不妨搜上一搜。
強(qiáng)攻硬取闖灣區(qū)
就個(gè)人經(jīng)驗(yàn)而言,灣區(qū)大公司的面試考察點(diǎn)偏硬,面試官出招普遍剛猛有力,沒有點(diǎn)鐵布衫之類的硬功夫還真是招架不住。這點(diǎn)突出體現(xiàn)在面試中的編程題上。
在四十五分鐘到一個(gè)小時(shí)的面試中,根據(jù)應(yīng)聘者的解題速度,面試官會(huì)拋出一至三個(gè)問題,應(yīng)聘者不僅要迅速想出解題思路,還要在紙上或白板上寫出完整且無錯(cuò)的代碼(電話面試時(shí)則通過Google Docs、Collab Edit等在線協(xié)同編輯器,少數(shù)情況下也會(huì)讓應(yīng)聘者直接在電話里“說”代碼)。因此,有ACM背景的應(yīng)聘者會(huì)占據(jù)很大的優(yōu)勢(shì)。
相對(duì)于大部分國(guó)內(nèi)IT公司的面試,這個(gè)要求還是相當(dāng)嚴(yán)格的。不過,面試畢竟不是競(jìng)賽,相對(duì)于難度,考題的區(qū)分度才更為關(guān)鍵。所以這些編程題的難度普遍不高,離ACM/ICPC競(jìng)賽題相去甚遠(yuǎn)。打個(gè)不恰當(dāng)?shù)谋确?,灣區(qū)大公司的面試多少有點(diǎn)兒像考研,都是書本上的知識(shí)點(diǎn),就看考生掌握得扎不扎實(shí)。
在年初的兩場(chǎng)面試中,我在解題時(shí)分別用到了C++標(biāo)準(zhǔn)庫(kù)中的binary_search和partition,于是兩位面試官分別要求我寫出這兩個(gè)函數(shù)的完整實(shí)現(xiàn)。這兩個(gè)算法可謂人盡皆知,就看你理解得是否透徹,邊界情況處理得是否干凈利落了。年初的面試經(jīng)歷已在《加州求職記》中詳述,此處就不再贅述了。
灣區(qū)大公司的面試當(dāng)然也不是只玩兒硬的,軟素質(zhì)考察一般交由HR以及專門的“behavioral interview”負(fù)責(zé)。不過總體來說,灣區(qū)大公司技術(shù)職位的這類軟素質(zhì)類面試的套路還是比較明顯的,在Google上搜一下“60 behavioral interview questions”,很容易找到竅門。應(yīng)聘者需要做的就是在面試前將簡(jiǎn)歷中列出的各種項(xiàng)目經(jīng)歷的背景拾掇清楚,以求在面試中做到簡(jiǎn)明扼要、實(shí)事求是、恰如其分,博得面試官的青睞。
一開始,我對(duì)灣區(qū)大公司的這種面試風(fēng)格是持有異議的。畢竟實(shí)際工作中沒人會(huì)要求你在不借助調(diào)試器等工具的情況下一次性編碼成功。而且,競(jìng)賽型算法題的代碼和工業(yè)界的代碼完全就是兩種套路(在工業(yè)界干過幾年的前ACM選手應(yīng)該非常有體會(huì))。
但反過來一想,周圍能達(dá)到這個(gè)水準(zhǔn)的,無一不是牛人、聰明人。再者這種考法對(duì)就是對(duì)錯(cuò)就是錯(cuò),高度統(tǒng)一,易于判定,在大規(guī)模面試中更利于統(tǒng)一面試官的評(píng)判標(biāo)準(zhǔn),從而達(dá)到嚴(yán)格把關(guān)面試質(zhì)量的目的。當(dāng)然,它的缺點(diǎn)也比較明顯,比如對(duì)軟素質(zhì)考察不足,應(yīng)聘者自由發(fā)揮余地較小,很難看出應(yīng)聘者創(chuàng)造性的一面等。此外,由于算法題的代碼風(fēng)格和工業(yè)代碼風(fēng)格迥異,這類面試也較難評(píng)判應(yīng)聘者在實(shí)際工作中的表現(xiàn)。
需要強(qiáng)調(diào)的是,我年初參加的只是普通技術(shù)職位的面試,觀察到的內(nèi)容十分有限。上述結(jié)論完全基于個(gè)人經(jīng)驗(yàn),很難說有多少通用性。
剛?cè)岵?jì)戰(zhàn)中關(guān)
反觀當(dāng)年自己操心招聘那些事兒的時(shí)候,我和同為面試官的同事們?cè)诿嬖囍懈鼮殛P(guān)注的則是軟素質(zhì)以及實(shí)際工作能力——尤其是社招。
我們一直信奉的一點(diǎn)是,只要能達(dá)到我們的基本要求,應(yīng)聘者的技術(shù)能力等硬素質(zhì)是比較容易培養(yǎng)和鍛煉的,而溝通能力、學(xué)習(xí)能力、邏輯思維能力、抗壓能力等軟素質(zhì)則相對(duì)較難培養(yǎng)。至于看中實(shí)際工作能力,那當(dāng)然是因?yàn)橄M麘?yīng)聘者入職后能盡快投入戰(zhàn)斗。
本著這樣的原則,我在面試中一般會(huì)交叉運(yùn)用以下三種方式進(jìn)行考察。
1.聊項(xiàng)目經(jīng)驗(yàn)。
2.出較簡(jiǎn)單的基礎(chǔ)試題。
3.出較困難的漸進(jìn)開放型試題。
對(duì)校招面試,由于應(yīng)屆生的項(xiàng)目經(jīng)驗(yàn)往往比較單薄,可挖掘點(diǎn)不多,主要采用第二種和第三種;對(duì)社招面試,則三種并用。
聊過往項(xiàng)目經(jīng)驗(yàn)是個(gè)很好的軟素質(zhì)考察手段。在這個(gè)過程中,往往可以捕捉到很多值得深度挖掘的典型案例。我一般喜歡讓候選人挑過往經(jīng)歷中最為困難或最為得意的一個(gè)項(xiàng)目來講。在候選人的敘述過程中,我會(huì)不斷要求對(duì)方補(bǔ)充各種細(xì)節(jié),例如關(guān)鍵設(shè)計(jì)背后的決策過程,難點(diǎn)攻堅(jiān)過程中做過哪些嘗試,尋求過哪些幫助,參考過哪些資料,團(tuán)隊(duì)在項(xiàng)目中碰到過哪些問題,諸如此類,不一而足。
通過深入挖掘這些問題,應(yīng)聘者的形象也會(huì)迅速豐滿起來。例如,有些應(yīng)聘者會(huì)在設(shè)計(jì)階段多方嘗試,或是在認(rèn)為團(tuán)隊(duì)走入歧途時(shí)主動(dòng)大聲疾呼,也有人會(huì)因?yàn)?#8220;上面要求這么搞”而放棄原則消極遵從。孰優(yōu)孰劣,一目了然。
聊完項(xiàng)目經(jīng)驗(yàn),應(yīng)聘者的緊張情緒也基本平緩下來,這時(shí)就可以拿出一兩道基礎(chǔ)試題小試牛刀?;A(chǔ)試題的形式和作用與灣區(qū)大公司采用的編程題類似,但一般不要求寫出完整代碼。它的作用在于快速判斷應(yīng)聘者的基本能力,進(jìn)而決定后續(xù)的面試節(jié)奏和時(shí)長(zhǎng)。
如果應(yīng)聘者可以比較順暢地給出解答,那么便可以進(jìn)入下一個(gè)環(huán)節(jié)。反之,如果應(yīng)聘者給出的答案錯(cuò)得離譜,或者幾經(jīng)提示仍然沒有絲毫進(jìn)展,那么也就不太必要進(jìn)行后續(xù)的面試了。
漸進(jìn)開放型試題主要用于考察邏輯思維能力和溝通能力。這類試題難度較大,且不一定有唯一的標(biāo)準(zhǔn)答案,可逐層發(fā)散,一般不指望應(yīng)聘者能獨(dú)立給出完整解答。出難題顯然是要給應(yīng)聘者設(shè)置障礙,但最終目的絕不是將應(yīng)聘者難倒。這里是在考察應(yīng)聘者在面對(duì)困難問題時(shí)能否對(duì)問題進(jìn)行恰當(dāng)?shù)姆纸?,能否在一團(tuán)亂麻中找出最先要解決的問題,能否將直接阻擋自己前進(jìn)的障礙清楚地描述出來,是否敢于、善于提問,以及在得到提示之后,能否迅速運(yùn)用提示中的線索翻越障礙。
如果應(yīng)聘者在拿到題目之后因?yàn)闆]有頭緒而不知所措,我便會(huì)向他解釋這類試題的用意,鼓勵(lì)他不要擔(dān)心一時(shí)沒有頭緒,盡管大膽地和我交流自己當(dāng)前的思路并尋求幫助。于是,在這類試題的考察中,氣氛往往會(huì)更趨向于討論而不是面試。這樣一來,應(yīng)聘者會(huì)更為放松,我作為面試官也得以更為準(zhǔn)確地評(píng)判應(yīng)聘者的溝通能力和邏輯思維能力,候選人最終找出答案后自己也會(huì)有成就感。某次社招面試中,曾經(jīng)有一個(gè)沒有什么分布式系統(tǒng)背景的小伙兒,在這樣的討論中自行總結(jié)出了CAP原理,讓我很是驚喜。
還有一次校園招聘,我讓候選人改進(jìn)他自己的一個(gè)項(xiàng)目中的客戶端自動(dòng)升級(jí)機(jī)制,來回溝通了幾次之后候選人思路泉涌,很快畫出了若干種更加合理的設(shè)計(jì)。事實(shí)證明,在面試中能有類似表現(xiàn)的應(yīng)聘者,多半都能成為中流砥柱。
這套路數(shù)看似剛?cè)岵?jì)、滴水不漏,卻也有它的命門:那就是面試標(biāo)準(zhǔn)過于模糊,難以統(tǒng)一。如果組織不大,面試官人數(shù)少且精,倒還好說。倘若是員工數(shù)破萬的大公司,那就很難保證所有部門、所有面試官的面試標(biāo)準(zhǔn)了。在百度時(shí),整個(gè)招聘過程還會(huì)輔以各種流程措施和規(guī)范,以期盡量彌合面試官之間的個(gè)體差異。這個(gè)問題要是解決不到位,其危害對(duì)校園招聘這種集中式大規(guī)模招聘活動(dòng)是十分致命的。
伯樂的賭局
面試的最后一個(gè)環(huán)節(jié)十分敏感,那就是決定候選人是否通過面試。哪一匹才是千里馬?這是伯樂們永恒的賭局。百度的面試是5分制,3分以上通過,2分以下不通過。有些面試官——尤其是新面試官——比較“仁慈”,對(duì)于一些落在及格線上的候選人總會(huì)很糾結(jié),最后給出一個(gè)2.5分。一旦出現(xiàn)2.5分的候選人,我們就會(huì)問面試官一個(gè)問題:把這個(gè)人放到你的團(tuán)隊(duì),你要不要?「注:百度的面試往往由不同團(tuán)隊(duì)的面試官交叉進(jìn)行,每個(gè)面試官都經(jīng)常對(duì)其他團(tuán)隊(duì)的候選人進(jìn)行面試?!谷绻卮鹗强隙ǖ?,那么我們便再安排一輪面試?yán)^續(xù)考察,否則便終止面試流程。
“2.5候選人”分兩種,第一種雖然就答題情況來看勉強(qiáng)可以通過,但就是給人的感覺不太舒服,或者說第一印象不夠好。這實(shí)際上是候選人可能存在軟素質(zhì)問題的一個(gè)警鐘。如果面試官本人不期望這個(gè)候選人加入自己的團(tuán)隊(duì),那么其他團(tuán)隊(duì)負(fù)責(zé)人多半也不愿意。這個(gè)判斷看似過于嚴(yán)苛,但其背后卻是歷往慘痛經(jīng)驗(yàn)的總結(jié)。
另一種則更為有趣,這類候選人雖然答題情況一般,但仍然讓人想要給他一個(gè)機(jī)會(huì)。我就曾經(jīng)碰到這樣一個(gè)案例。當(dāng)時(shí)我是二面面試官,一面面試官十分糾結(jié),最后給出面試結(jié)果是2.5.我問他,給你,你要不?沒想到他毫不猶豫地說“要”,于是我便決定對(duì)這名候選人進(jìn)行二面。候選人挺年輕,雙臂還刺著紋身,讓我著實(shí)印象深刻。不過面試過程中,發(fā)現(xiàn)這個(gè)小伙兒對(duì)技術(shù)很有熱情,非常有干勁,頭腦也比較靈活。實(shí)際上他就是上面提到的在后續(xù)的面試過程中獨(dú)立總結(jié)出了CAP原理的那個(gè)候選人。后來這個(gè)“2.5候選人”果然沒有讓人失望,成長(zhǎng)迅速,很快就成了骨干。所以說,面試這檔事,無論對(duì)應(yīng)聘者還是面試官,都是個(gè)碰運(yùn)氣的事兒。
關(guān)于招聘面試的文章一抓一大把,不過同時(shí)站在兩個(gè)角色上進(jìn)行總結(jié)的似乎不多。希望我的這點(diǎn)片面的經(jīng)驗(yàn)?zāi)芙o你帶來一些啟發(fā)和幫助。
連城,前百度資深工程師,技術(shù)譯者,函數(shù)式語(yǔ)言與分布式系統(tǒng)愛好者。
滄州縱橫人才網(wǎng),最權(quán)威的滄州招聘網(wǎng),最真實(shí)的滄州人才網(wǎng)