程序員的三大難題:禿頂、面試、找女朋友
如果說女朋友是程序員會遇到的***大難題的話,那么白板面試應(yīng)該是當(dāng)之無愧的排行讓程序員最頭疼的第二大難題,禿頂勉強排在第三。
多數(shù)程序員都不太喜歡跟外行解釋程序員到底是干什么的,但是因為白板面試太遭程序員恨了,以至于多數(shù)也不得不跟外行吐槽什么是白板面試,可見白板面試到底有多讓人頭疼。
很多人都覺得白板面試飽受詬病,但是不論國內(nèi)外,白板面試反倒是越來越火。也許是被谷歌這種大公司帶的頭,到現(xiàn)在白板面試倒發(fā)展成為程序員面試的行業(yè)入門標(biāo)準(zhǔn)。
什么是白板面試?
白板面試指面試時,面試官要求不借助 IDE,互聯(lián)網(wǎng)等工具,直接在白板或者紙上手寫代碼以實現(xiàn)某塊功能。跟上學(xué)的時候閉卷考試那種感覺差不多。
不論是在墻內(nèi)還是墻外,各種平臺上都少不了程序員們發(fā)泄自己憤怒,狂懟白板面試的例子。其中最最最為著名的例子當(dāng)然非 Max Howell 莫屬了。
都說擁有一個好的 Github 是面試一份好工作的敲門磚,然后 Max Howell 著名的開源項目 Homebrew 卻不能敲開谷歌的大門。
被谷歌拒絕的原因很簡單,就是因為 Max Howell 無法在白板上寫出翻轉(zhuǎn)二叉樹的算法。之后不久,LeetCode 上就出了這道題,并且難度被定義為簡單。
然而大牛居然解決不了一道基礎(chǔ)的算法題倒是讓大家驚訝,具體原因 Max Howell 也沒說。后來只是發(fā)個推吐槽了谷歌的白板面試。
但是畢竟是大牛,有實力的大牛因為一個小問題沒被谷歌錄取,當(dāng)然在互聯(lián)網(wǎng)上被程序員們熱議。甚至因為這件事,不少程序員開始紛紛響應(yīng),開始各自站隊,互聯(lián)網(wǎng)上還興起了一次取消白板面試的抗議。
那么目前的白板面試到底有哪些弊端?
程序員平時都是用 IDE 寫代碼,而且多數(shù)情況下還需要面向搜索引擎編程,突然冷不丁地讓你用墨水寫代碼,一下子肯定不習(xí)慣。再加上面試的時候本來就緊張,還有面試官一直盯著你,面試者肯定感到不安。
那個時候的心情,估計比考試監(jiān)考老師一直站你旁邊看你卷子還復(fù)雜。
而且再加上現(xiàn)在白板面試被越來越多的公司效仿,很多公司只一味的跟風(fēng),覺得別人面試都要用白板面試,為什么我們不用,導(dǎo)致***只是為了用白板面試而白板面試。而用白板面試真正的原因是什么,卻又沒有學(xué)到。
舉個糟糕的白板面試的例子,面試過程中,問的問題過于刁鉆困難,以至于這些問題在以后工作中根本涉及不到。這樣搞根本不能篩選人才,或許剛畢業(yè)在學(xué)校期間有過一些算法經(jīng)驗,然而并沒實戰(zhàn)多少的大學(xué)生更能適應(yīng)這樣的面試。
而且白板面試的過程中還要嚴(yán)格要求寫代碼的時間,加上面試官也特別不友善,面試的時候函數(shù)名記不住了不跟你說,需要第三方的api的時候也不給你提供,***還要求寫完了的代碼要一次能編譯過。
這樣下來,有能力的面試者反而被淘汰了。
正是因為白板面試過于泛濫,也出現(xiàn)了一種面試前面試者們都去刷題的現(xiàn)象,也就只是為了適應(yīng)白板面試,這樣子搞下去,就跟應(yīng)試考試沒多少差別了。甚至有的面試者為了一個面試要準(zhǔn)備幾年時間,在LeetCode等網(wǎng)站上刷一大堆5天高考3天模擬。
其實我覺得,白板面試并沒有錯,錯誤的是白板面試的方法。白板面試更注重的應(yīng)該是解決問題的思路,如果函數(shù)名記不住了,或者需要api,面試官應(yīng)該提醒。如果寫出來的代碼編譯不過,面試官應(yīng)該與面試者進(jìn)一步討論如何解決問題。