程式設計師的三大難題:禿頂、面試、找女朋友
如果說女朋友是程式員會遇到的第一大難題的話,那麼白板面試應該是當之無愧的排行讓程式設計師最頭疼的第二大難題,禿頂勉強排在第三。
多數程式設計師都不太喜歡跟外行解釋程式設計師到底是幹什麼的,但是因為白板面試太遭程式設計師恨了,以至於多數也不得不跟外行吐槽什麼是白板面試,可見白板面試到底有多讓人頭疼。

很多人都覺得白板面試飽受詬病,但是不論國內外,白板面試反倒是越來越火。也許是被谷歌這種大公司帶的頭,到現在白板面試倒發展成為程式設計師面試的行業入門標準。
什麼是白板面試?
白板面試指面試時,面試官要求不借助 IDE,網際網路等工具,直接在白板或者紙上手寫程式碼以實現某塊功能。跟上學的時候閉卷考試那種感覺差不多。
不論是在牆內還是牆外,各種平臺上都少不了程式設計師們發洩自己憤怒,狂懟白板面試的例子。其中最最最為著名的例子當然非 Max Howell 莫屬了。
都說擁有一個好的 Github 是面試一份好工作的敲門磚,然後 Max Howell 著名的開源專案 Homebrew 卻不能敲開谷歌的大門。

被谷歌拒絕的原因很簡單,就是因為 Max Howell 無法在白板上寫出翻轉二叉樹的演算法。之後不久,LeetCode 上就出了這道題,並且難度被定義為簡單。

然而大牛居然解決不了一道基礎的演算法題倒是讓大家驚訝,具體原因 Max Howell 也沒說。後來只是發個推吐槽了谷歌的白板面試。

但是畢竟是大牛,有實力的大牛因為一個小問題沒被谷歌錄取,當然在網際網路上被程式設計師們熱議。甚至因為這件事,不少程式設計師開始紛紛響應,開始各自站隊,網際網路上還興起了一次取消白板面試的抗議。
說到這裡,也給大家推薦一個架構交流學習群:614478470,裡面會分享一些資深架構師錄製的視訊錄影:有Spring,MyBatis,Netty原始碼分析,高併發、高效能、分散式、微服務架構的原理,JVM效能優化這些成為架構師必備的知識體系。還能領取免費的學習資源,相信對於已經工作和遇到技術瓶頸的碼友,在這個群裡會有你需要的內容。
那麼目前的白板面試到底有哪些弊端?
程式設計師平時都是用 IDE 寫程式碼,而且多數情況下還需要面向搜尋引擎程式設計,突然冷不丁地讓你用墨水寫程式碼,一下子肯定不習慣。再加上面試的時候本來就緊張,還有面試官一直盯著你,面試者肯定感到不安。

那個時候的心情,估計比考試監考老師一直站你旁邊看你卷子還複雜。

而且再加上現在白板面試被越來越多的公司效仿,很多公司只一味的跟風,覺得別人面試都要用白板面試,為什麼我們不用,導致最後只是為了用白板面試而白板面試。而用白板面試真正的原因是什麼,卻又沒有學到。
舉個糟糕的白板面試的例子,面試過程中,問的問題過於刁鑽困難,以至於這些問題在以後工作中根本涉及不到。這樣搞根本不能篩選人才,或許剛畢業在學校期間有過一些演算法經驗,然而並沒實戰多少的大學生更能適應這樣的面試。
而且白板面試的過程中還要嚴格要求寫程式碼的時間,加上面試官也特別不友善,面試的時候函式名記不住了不跟你說,需要第三方的api的時候也不給你提供,最後還要求寫完了的程式碼要一次能編譯過。
這樣下來,有能力的面試者反而被淘汰了。

正是因為白板面試過於氾濫,也出現了一種面試前面試者們都去刷題的現象,也就只是為了適應白板面試,這樣子搞下去,就跟應試考試沒多少差別了。甚至有的面試者為了一個面試要準備幾年時間,在LeetCode等網站上刷一大堆5天高考3天模擬。

其實我覺得,白板面試並沒有錯,錯誤的是白板面試的方法。白板面試更注重的應該是解決問題的思路,如果函式名記不住了,或者需要api,面試官應該提醒。如果寫出來的程式碼編譯不過,面試官應該與面試者進一步討論如何解決問題。
想要學習Java高架構、分散式架構、高可擴充套件、高效能、高併發、效能優化、Spring boot、Redis、ActiveMQ、Nginx、Mycat、Netty、Jvm大型分散式專案實戰學習架構師視訊免費獲取 架構群:614478470
ofollow,noindex">點選連結加入群聊【JAVA高階架構】:https://jq.qq.com/?_wv=1027&k=5gMDouY
當然,如果不跟風的話,給面試者提供一臺電腦,最好給面試者提供他熟悉的開發環境,讓他有充足的時間測試,如果還能面向網際網路程式設計,或許更能更好地反應出面試者的真正實力。