求你了,編程面試問題太難真的招不到好程序員!
【新智元導讀】編程面試問題可能會讓人感到不必要的困難。有時確實是這樣。這不僅僅是因為它們讓面試者壓力過大。我們的數據顯示,編程問題並非越難越好,太難的編程問題相比較容易的問題反而更難篩選到滿意的員工。
在有時間壓力的條件下編程是很困難的。在面試中尤其如此。正常情況下看似簡單的編碼練習,在面試室的明亮燈光下,不知怎的會變成一項艱巨的挑戰。在面試中,壓力荷爾蒙會影響你的思維(儘管對於一個來勢洶洶的編程問題,戰鬥或逃跑都不是有效的應對方式)。而且幾乎可以感覺到這些問題被設計得異常困難。我認為這不僅僅是一種感覺。
面試問題被設計得很難。因為僱傭一個糟糕的工程師的成本要比拒絕一個優秀工程師的成本高得多,所以公司往往被鼓勵設置高標準。對大多數公司來說,這意味著設計非常難的問題。直覺上,這是有道理的,因為更難的問題似乎應該導致更嚴格的篩選過程。但是直覺在這裡不對。我們的數據顯示,較難的問題實際不如相對容易的問題具有預測性。
面試問題太難了
困難的問題確實能夠過濾掉糟糕的工程師,但它們也會過濾掉一些優秀的人選。相比之下,簡單的問題能夠避免篩掉優秀人選,但更多的工程師都能答對,包括一些水平不高的工程師。平衡這兩個信號是企業在選擇面試問題的最佳難度時所面臨的核心問題。那些不惜一切代價想要避免招到不合格人選的公司往往傾向於選擇更難的面試問題。
然而,候選人回答正確與否並不是面試過程中唯一的參考信號。你也可以評估整個面試過程,例如,觀察他們完成的時間、代碼的乾淨程度以及他們在尋找解決方案時的努力程度。我們的分析表明,第二個信號源(過程)幾乎和第一個(正確性)同樣具有預測性。
但這裡有一個額外的權衡。偏重於過程信號的問題比偏重於答案正確性信號的問題要簡單得多。當你將過程提煉成候選人在尋找解決方案時的努力程度(這是過程中與問題難度最直接相關的)時,這個問題的原因就很清楚了。如果一個問題實在很難,那麼所有的候選人都會很努力去尋找解決方案(包括那些最終回答正確的人)。所以努力程度不足以成為篩選的信號。
相反,對於大多數候選人來說,帶有強烈過程信號的問題很容易就能正確回答,因此在正確性信號方面幾乎沒有什麼可參考性。最佳難度的問題是平衡過程信號和正確性信號,從這兩個因素的組合中提取最大信號。
我們面試了數千名工程師,對他們的答案進行了多維度評分,包括過程和正確性,並將這些評分與他們後來的表現進行了比較。而且,在回歸分析之後(觀察過程信號和正確性信號),我們的數據顯示,最具預測性的問題實際上比我們預期的要容易得多(也比許多公司的面試問題要容易得多)。
太難的問題最終會篩掉非常多合格的候選人才能達到最佳狀態。所以,如果你想讓招聘過程更準確,你可能應該問一些更簡單的問題。
但是,我想明確指出的是,這並不意味著你應該降低招聘門檻,讓更多候選人通過。問一些簡單的問題並不意味著面試變得簡單了。你問的問題的難度和你的決策門檻是獨立的決定。你仍然可以通過問一些相對簡單的問題,然後進行苛刻的評估,來實現一個非常嚴格的招聘流程。我們發現,更簡單的問題能提供更多的信號,但是如何處理這些信號取決於你自己。
面試問題更容易,壓力也就更小,這是一個重要的優勢。壓力會導致候選人表現不佳。但是,另一方面,當候選人感覺更舒適時,他們就會表現出真正的最佳狀態,這實際上能讓面試更具預測性。我認為面試官往往傾向於低估壓力對應聘者的影響,同時高估自己的能力。當你提問面試者的時候,很容易忘記在30-60分鐘內完成大量編程是多麼的困難。為了消除這種偏見,我們採用了一條規則,即面試官必須給候選人3倍於他們自己認為解決問題需要的時間來回答問題。通常這是合適的時間。
面試問題太短
更簡單的問題還有另一個重要的好處。它們可以讓你在面試中加入更多內容。這意味著你可以設計更長的、多個部分的問題,這些問題在預測上具有複合效益。隨著時間的推移,你可以問一些難度越來越大的問題,這些更長、更具現實性的問題比那些更短、更難的問題更具預測性。
這在一定程度上是因為較長的問題可以更好地代表真實的編程。生產中的編程涉及在較長時間裡處理相對較大的代碼庫,而較長的問題能夠更好地接近這種現實情況。
此外,較長的問題可以讓你在候選人陷入困境時提供提示。我認為這是非常重要的,因為即使是強大的工程師也可能在編碼問題的某個時刻出錯。問題越長,候選人就越有機會從錯誤中恢復過來,並在後面的編程中展示自己的技能。一個小小的失誤不應該毀掉整個面試。最後,提供提示可以減少面試壓力,這也會帶來更準確的結果。
結論
當涉及到面試問題難度時,公司可能會陷入惡性循環。他們一開始就問一些太難、太短的問題,這會導致他們根據雜訊信號做出次優的招聘決策。當他們發現招聘結果不理想時,可能會試圖通過使招聘過程更加嚴格(這通常意味著提出更加困難的問題)來糾正。但這隻會讓他們的面試更加不準確。如此反覆,惡性循環。公司錯過了人才,候選人錯失了工作,雙方都承受著不必要的壓力。
我希望面試官能夠欣然接受這一發現。它不僅可以使面試工作更準確,而且更容易。提出簡單的、多步驟的問題所花的時間要比提出異常困難的問題所花的時間少得多。
所以,以上是我們的建議。如果你真的想讓你的面試更高效準確,你可能需要開始提問一些更簡單的編程問題。這並不意味著降低標準。這只是意味著獲得更好的信號,從而聘用到合適的人。
讀者朋友,你經歷的編程面試問題難嗎?歡迎留言。
※掌握圖神經網路GNN基本,看這篇文章就夠了
※谷歌、DeepMind重磅推出PlaNet,數據效率提升50倍
TAG:新智元 |