來源:CatChen的部落格
作為面試官
從在大學裡面試社團大一新生,到加入百度後幫公司面試候選人,我覺得我對面試這件事一直不得要領。百度提供面試培訓,也允許參考或使用題庫,但我還是覺得不知道如何判斷給不給一名候選人通過我這關。偶爾我會遇到非常優秀的實習生候選人,我能十分確定我要給他過,甚至想方設法確保他能來。其它時候,我覺得我的判斷隨機性太大,或許還不如一枚硬幣做得好。
在百度做二面的時候,我往往會問一些組合問題,就是候選人需要有紮實的基礎加上一定的解題能力才能做出來的。我假設一面的面試官已經問過基礎問題,所以我不會再問基礎問題。結果通常是,候選人的基礎不夠紮實,會作出一些錯誤的假設,甚至面對組合問題就無從下手,不知道如何分解為更小的問題然後再一步一步來解決。我不知道是否應該期望候選人全部答對,但答對小部分的狀況讓我無從判斷。
為此我開始跟其它人討論面試經驗。Acumon 說應該針對候選人說他擅長的領域來提問,而且使用開放性問題以便了解候選人的思考方式,但我發現我遇見的大多數候選人都不清楚自己擅長什麼,或者是他們自認為的強項無法達到我的預期。後來在上海跟 Winter 和 Hax 聊天時發現一個可怕的現實:大多數前來應聘的前端工程師都無法回答「position 屬性取值都有哪些」以及「display 屬性取值都有哪些」。隨後我嘗試在我的面試中先問這兩個問題,發現確實有些人回答不出來取值,更多人則是無法準備描述常見取值的作用。(我甚至不把 inline-block 和 fixed 歸類到常見取值裡面。)遇到如此基礎的問題都回答不出來的候選人,我通常會跟他告訴他正確答案,再問一些基礎問題然後給他一些學習建議,最後很禮貌地送他走。
狀況在我到達豌豆莢後有所改善。不是來應聘的人都非常優秀,而是我開始有感覺了。關鍵原因我覺得是我們不著急招人。現在我們還能應付手頭上的工作,也沒有快速擴張的需求,所以我們只有在遇到最合適的人選時才邀請他加入。我相信我前面的兩位面試官做得足夠好,然後我可以放膽地去考量「懂不懂」之外的其它方面。準確來說,這甚至不是一種考量,我只想知道我跟這個人一起工作是否會很愉快。我會以工作上遇到問題時同事跟同事間討論的方式去跟他進行討論,有可能是工作上實際遇到的問題,也有可能是刻意設計出來的有趣問題。(我覺得在一個充滿活力的工作環境中,同事之間互相找些稀奇古怪的問題來討論是很正常的,大家也會享受這類挑戰。)如果我感覺跟他討論問題是很愉快的過程,他能夠提出有趣的想法,甚至能告訴我一些原本我不知道的事情,我肯定會給他很正面的面試評價。
作為面試者
換個角度來說,如果你作為面試者發現自己在面試的過程中能夠進入這種狀態,感覺如同跟同事討論問題一樣放鬆,那麼你應該對面試結果充滿信心。至少根據我個人的經驗來說,感覺如同輕鬆愉快討論的面試我都能得到面試官不錯的評價。我明白要做到這一點很不容易,很多人在面試時都會很緊張,甚至會假設面試官一定會用各種難題來考自己,這種心態其實會把自己放在不利的位置上。我過去的經驗是,我越不在乎的面試,往往我越能放鬆地跟面試官隨便聊,結果反而越好。我很在乎的面試,反而有時候會高估面試官問題的難度,結果簡單的問題沒給出簡單的答案,最後得到的評價反而不好。
在百度大廈的時候,我喜歡穿越二層平臺,因為那裡有很多小圓桌,也有很多人會選擇在那裡進行討論或者面試。如果你對肢體語言有點最基礎的瞭解,或者你就是在這方面有感覺,你會發現在那裡很容易看得出哪些桌是同事間的討論,哪些桌是在面試,以及誰是候選人。同事之間的討論,往往大家都會很放鬆;面試的話,面試官也會很放鬆,但面試者通常處於比較緊張的狀態,身體會略為前傾,就算不需要寫字也會把手放在桌子上,用於支撐上半身的重量。對於有經驗或者有感覺的面試官來說,這種肢體語言會傳遞一種不好的訊號,那就是你太想要這份工作了,就算更深入的溝通後可能你會發現這份工作不適合你,但你還是會追求這個機會。
類似的場景也會出現在異性之間,下次去餐廳吃飯時你可以觀察一下隔壁桌的異性互動。就算你完全不知道談話內容,你也可以嘗試從面部表情和肢體語言去判斷誰在追誰。為什麼有時候你追的人各種虐待你,還有充足的信心你不會放棄?因為他們看得出你把自己擺在什麼位置上。在統計學的角度來說,我覺得女人在這方面比男人有優勢,因為女人看的電視劇都不是白看的,她們在逛街吃飯時還無時無刻地在觀察身邊發生的各種劇情。就如同資深前端工程師可以只看 CSS 片段就猜出遇到了什麼瀏覽器 bug 以及作者嘗試如何解決一樣,有經驗的女人(又或者是面試官)要看明白你的立場太容易了。
因此,首先你要把面試看作一個平等的雙向選擇過程,不僅僅公司在選擇你,你也在選擇公司。如果面試官問的問題顯得他很沒有品味,或者是 HR 的某些安排讓你覺得這家公司的文化很有問題,你隨時可以提出說你沒興趣聊下去。這時候你反而可以比較好的發揮出來你真實的實力。對於你真的不知道的問題,你就直接說出哪部分你不知道或者不確定。同事間討論也會遇到你不懂的問題,你平時是怎麼處理的在面試時就怎麼處理,面試官不會因為你直率地表達不懂某個點而鄙視你的,他應該幫你把這個點繞過去然後繼續。
我覺得最好的面試建議就是 Changhao 跟我說的那句,「Be yourself」。(其實這也是很好的追女建議。)
改善面試流程
既然技術面試應該平等地討論問題,通過感覺這個人是否能成為一名你喜歡的新同事來做出判斷,那又應該如何衡量他的技術能力呢?這其實應該放在面試流程儘可能靠前的部分來做。很多外企的標準做法是,通過首輪(或前兩輪)電話面試來判斷一個人的技術,隨後通過多輪的面對面討論來判斷這個人是否適合這家公司這個團隊。我相信這套方法在美國執行起來沒什麼問題,因為空缺和候選人的數量差不多。
當然,上述流程來到中國後就必然會發生變化。中國有能力來做這份工作的人太多,同時還有更多的人想要來渾水摸魚,這就導致了招聘成本大大提升。如果在中國還是用首輪電話面試來根據候選人的技術能力做一個初步的篩選,我想面試官就要瘋掉了,所以大多數大公司都會在此之前加上一輪筆試。(對應屆生可能是多輪筆試,否則面試官就閱卷都足以瘋掉。)
有些公司會選擇通過 ACM/ICPC 競賽經歷做出篩選,儘管無法保證獲得最優結果,但至少能獲得次優結果。招聘本來就是個搜尋問題,一個在美國能有效求解的演算法到中國來發現搜尋空間大小增長了幾個數量級,自然要想辦法調整演算法提高效能。這是非常理性的做法。當然它會帶來一些外部性,例如說使得更多中國學生在可能不適合或不喜歡參加競賽的前提下選擇參加競賽。
這些方法確實能把想要渾水摸魚的人篩掉,不過能通過的人有時候還是太多了,所以接納候選人過多的大公司往往會無端增加面試難度,問一些純粹刁難人的題目。我覺得這沒什麼意思,也沒在應屆生面試以外的場合遇到過。既然應屆生及格的太多,我覺得就直接隨機抽籤好了,這是最公平的做法。抽籤可以通過公證過的演算法來做,這比問一些候選人可能隨機地知道或不知道的問題可靠多了。
最後說一下,為什麼我覺得平等討論的面試方式比問一堆問題要好。不同的面試方式,取決於你把候選人看做一個人力資源單位,還是一個有個性的人。如果你把候選人看做一個人力資源單位,他只要能完成你給出的任務就可以了,那確實是能力測試更重要。如果你把候選人看做一個有個性的人,你就需要知道他的個效能否很好地融入團隊當中,這使得你在面試過程中必須把他當做一名未來的同事來看待。