從事軟件開發工作以來,經歷過很多次面試與被面試??偨Y了一下,會發現好的面試官和差的面試官差在哪里,當然作為應聘者而言,好的面試官能夠給你很多指導意見,差的面試官可能會讓你瘋掉!。

        很多程序員都看過李開復老師的面試視頻,這基本上是好的面試官的典范。 但是大部分時候我們被面試的時候,都會覺得很無奈,甚至窩火,有一巴掌扇過去的沖動。

        在我看來面試官或者說整套面試流程除了面試官自身的業務水平之外,經常出現的問題有如下幾種:

         1.  面試官太多           

              有些公司面試安排有很多輪,很多輪也就罷了,如果是不同側重點的,確實情有可原,比如技術上的,人力資源部門的,可能還會有老板直接面試。  但是如果幾個面試官問你很多相同的問題,那只能說明面試安排上根本就沒有什么安排,說白了,就是隨著性子來,這是很受應聘者反感的。

         2.  提問方式和問題是否恰當

             比如公司要招聘一位高級c++研發工程師, 你問別人內存泄露的問題,或者丟給面試者一堆c++基礎筆試題目。  遇到這種情況,如果我是應聘者,大部分時候是直接起身走人的。   當然可能可能會忍一下,想想既然來了,做就做一下吧。 由于自己有這種經歷,我在面試別人的時候從來不會丟一堆筆試題目給別人,大概有多少經驗,你和他談幾分鐘獲得的絕對會比讓他做題目獲得的信息更多。 更重要的是---這是尊重別人的表現。

            有些時候提問難免會受面試官的水平影響,技術面試官業務水平不如應聘者,或者某些方面不如應聘者絕對是很正常的事情。  不要因為應聘者某一點的回答不如你所愿,就定論別人水平一般,甚至言談間表示“我看你水平一般嘛”。

            舉個例子,有一次我面試一位電子專業出身的工程師,雖然我是個電子愛好者,但是不敢稱懂行,我對他表示我不了解電子,但是可以講一個大致給我聽,聽得過程自己既可以學點東西,也可以判斷對方的邏輯、表達能力等。  對方也樂于去表達,這樣溝通起來會比較順暢。  

            另外一個例子,是我作為應聘者回答別人的問題,問題很簡單: vector 和 list的區別?

            這個問題好像太弱了, 我反問他指哪方面的(我當時都沒去想常規的區別---list插入高效/隨機訪問低效嘛,這個應該是考初級程序員的吧)。 他說就是哪些區別吧。 我就給了一個高標準的性能方面的比較, 對于容器內元素個數、對象大小、是否指針等,我的回答基本上按照Efficient C++: Performance Programming Techniques  里面來回答的,當然那些結論也是我自己測試驗證并無數次實踐過的。  結果可想而知,我可以斷定他對性能方面并沒什么研究,除了知道大家都知道的東西外。  這個也就罷了,不能要求面試官是個很高水平的人。 但是末了他來了一句”我覺得你的c++一般嘛“----抓狂還好,我總算沒暈倒! 呵呵

           3.  問題應該偏重能力,而不是偏重知識

            我接到過一個面試官(現在的老板,加州大學伯克利分校的博士)最好的問題是:

            有上億個多邊形,如何高效求交集或者并集,  多邊形都不會太大。就是說基本排除一個多邊形和上千甚至上萬個相交的情況。 我給了幾種思路。  有一個思路我想能打90分吧(基本上就是正解)。

            這樣的問題我喜歡,畢竟工作的大部分時候是需要我們來解決問題,而不是堆砌知識。 現在的年代,很多知識都不能算作知識,比如,編譯器的選項,  這個需要記住么? llinux下man 一下你就知道啊, 況且不是每個人都用原始的編寫makefile的方式來編譯代碼。  考別人編譯器選項,太腦殘了。

           4.  太過糾纏細枝末節

              有些面試官擺出一副不問倒不罷休的狀態。 比如有一次面試官問繼承關系中的多態實現原理,我停了1、2秒(吃不準確切名字),我就回答”好像是虛函數什么表“,我迅速畫了個簡圖, 面試官追問”是什么?“,      我有點火了,”名字很重要么?“,   面試官說,”當然了,你要和別人溝通的“。   我就回答啦”我這么說你不明白嗎“ 。  呵呵,火藥味起來了。  

       

 

            面試是一門學問,你今天面試別人,可能明天就會作為應聘者被別人面試,所以要經常站在對方的角度考慮問題, 尊重并充分了解對方的有效信息是最好的態度。