當前位置:
首頁 > 新聞 > 編程面試問題真的越難越好嗎?No!

編程面試問題真的越難越好嗎?No!

為了節約成本,避免招到不想要的程序員,很多公司傾向於把面試問題設得比較難。但這樣一來,很多優秀的程序員也會被淘汰。究竟什麼難度的問題比較合適呢?本文作者通過數據調查給出了結論……

編程面試的問題其實沒必要那麼難,原因不僅是因為這種面試會給人帶來巨大的壓力。我們的數據表明,難度較大的編程面試問題在預測最終工作能力方面還不如簡單的問題。

時限壓力會加大編程難度。面試期間尤其如此。在正常環境下看似簡單的編程問題移到面試廳明亮的燈光下就成了棘手的難題。面試期間,你的思想會被壓力荷爾蒙籠罩(無力的是,對於一個艱難的編程問題,戰鬥或逃跑都不是有效的應對方案)。你幾乎可以感覺到這些問題被設計得異常困難。其實我覺得這不只是感覺而已。

面試問題設計刁鑽。由於僱傭一名糟糕工程師的成本遠遠高於拒絕一名好的工程師,公司往往傾向於設立很高的門檻,所以面試問題就會很難。從直覺上來看,這麼做很合理,因為問題越難,篩選程序就越嚴格。但是直覺並不是一個很好的指導。數據表明,難度較大的問題在預測候選人工作能力方面還不如難度較小的問題。

面試問題太難

比較難的問題的確可以篩掉那些不合格的工程師,但也會剔除一些優秀的人選。而簡單的問題雖然會在一定程度上避免篩掉優秀人才,但也會讓很多不合格的工程師過關。權衡這兩者是你在選擇最佳難度水平的面試問題時面臨的核心問題。而為了防止不合格的面試者過關,很多公司選擇了天平的另一端,即選擇偏難的問題。

然而,候選人是否正確回答了問題並不是面試中唯一的參考信號。你也可以評估整個過程,例如,觀察他們花了多長時間來完成,他們的代碼有多乾淨,他們在尋找解決方案的過程中花費了多大的精力。我們的分析表明,第二個信號源(過程)和第一個信號源(答案的正確性)一樣具有預測性。

但這裡還有一個額外的權衡。偏重過程信號的問題比偏重答案正確性信號的問題要容易得多。當你將過程歸結為候選人在尋找解決方案時的努力程度(過程中與問題難度最直接相關的方面)時,原因就變得很清楚了。如果一個問題很難解決,那所有的候選人都會努力去解決這個問題(即使是那些最終給出正確答案的人),因此努力程度沒有什麼差別。

相反,大多數候選人都能夠答對那些偏重過程信號的簡單問題,因此不能提供什麼關於正確性的信號。最佳難度的問題應該能夠平衡過程和正確性信號,以從中提取最大的信號。

我們面試了數千個工程師,然後根據多個維度對他們的回答進行打分,包括面試過程和答案的正確性,然後將這些分數與後面的表現進行比較。回歸分析(查看過程和正確性信號)得出的數據表明,大部分預測性問題實際上比我們預想的要簡單(也比很多公司設定的簡單)。

較難的問題最終篩掉了很多合格的候選人,因此並不適合。所以如果你想讓招聘過程更準確高效,應該問一些更簡單的問題。

這並不是說你要降低門檻讓更多人通過。降低問題難度不等於降低面試難度。問題的難易程度和你的決策門檻是相互獨立的。即使問題簡單,你也可以設定非常嚴格的僱傭程序並嚴格地評估求職者。我們發現,簡單的問題可以提供更多信號。但如何利用這些信號取決於你。

簡單的面試問題也會降低壓力,這是一個非常重要的好處。壓力會影響面試者的正常發揮。面試者感覺舒適才會發揮出自己的最佳水平,這也能提高面試的預測水準。面試官往往會低估壓力的影響,而高估自己的能力。如果你是問問題的那個人,你就很容易會忘記 30-60 分鐘之內編出大量真正的代碼有多麼困難。為了解決這個問題,我們在 Triplebyte 網站上制定了一條規則。規則表明,面試官必須給面試者三倍於他們認為解決問題所需的時間來回答問題。通常這才是正確的時間限制。


面試問題太短

降低問題的難度還有另外一個好處,即你可以在面試中加入更多的內容。換句話說,你可以設計多個較長的、相對簡單但難度逐步增加的問題,這樣你便可以通過多方面的綜合信息來決定錄取與否。相比於短而難的問題,多而易的問題更能預測出候選人的水平。原因有二:

一,較長的問題往往更能反映現實生活中的問題。程序設計通常要在較長時間內使用相對較大的代碼庫,面試中使用較長的問題顯然可以更好地接近這樣一種現實。

二,較長的問題可以讓你在候選人遇到困難時給予提示。我認為這一點至關重要,因為即使是大神級的工程師在編碼時也有可能在某個問題上掛掉。較長的面試題可以讓候選人有機會從錯誤中走出來,並展示出他們本有的技能。面試中的某一個失誤不應該毀掉整個面試。此外,額外的信息也可以減緩面試的壓力,從而得到更準確的結果。


結論

面試問題太難反而會使公司陷入可能的惡性循環。一開始他們提出的問題太難、太短,這將導致他們得到的反饋信息有較大的雜訊,從而做出次優的招聘決策;而另一方面,當他們發現招聘的人並不那麼優秀時,又會反過來通過更加嚴格的方式(通常意味著更難的問題)來「糾正」他們的錯誤,但這隻會讓他們的面試更加的不準確,如此往複。結果便是公司和候選人兩兩受害——公司錯失人才,候選人錯失工作機會;而且雙方還都飽受壓力。

因此,我希望面試人員能夠接受這個發現。這樣不僅可以使他們的工作變得輕鬆,而且更加準確。與不恰當的短期困難相比,提出一些簡單的、多步驟的問題所花費時間要少很多,而且更能檢測候選人處理日常工作的能力。

所以在此提一個小建議:如果你真的想讓面試更加準確,不妨從簡單的編程問題開始。這並不是要降低標準,而是為了獲取更多信息,以聘請到合適的人。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 機器之心 的精彩文章:

GLUE排行榜上全面超越BERT的模型近日公布了!
中了數據可視化的毒:BBC如何使用R語言繪製數據圖表?

TAG:機器之心 |