飽受詬病的白板面試,爲何沿用至今?

不少人都以爲白板面試爛!透!了!前端

 

明明跟職位要求基本沒有關係,天天卻都有上千名優秀的工程師們僅由於作很差CS 101 types of questions而錯失機會。然而多年以來,白板面試已經漸漸變成了行業入門的標準,不可能瞬間就顛覆。程序員

 

我的而言,我從剛剛步入職場時就認爲「白板面試很愚蠢」。面試

 

雖然我很喜歡解決謎題,可是在進行白板面試的時候,我沒法傳遞出我能夠給公司帶來的真正價值所在,這讓人心很累。與其花時間去練習白板面試的技巧,我更傾向去責怪整個流程、公司、面試問題或者是面試官。算法

 

雖然我最後仍是找到了工做,可是仍然所以錯失了許多好機會。編程

 

 

白板面試制度仍會繼續留存前端工程師

的確,使用白板面試有很高的拒絕優質人才的概率,但僱傭不合適員工的概率卻很低。數據結構

 

在花費百萬美金的高薪僱傭一我的以前,公司HR只有1、兩天的時間能夠跟潛在僱員互動交流。因此,相對於假陰性率,公司更看重假陽性率。沒能僱到好員工只會相對損失4-5小時的高質量工做時間,可是若是僱到不那麼優秀的人的話,長期的損失是不可計量的。框架

 

的確有很是多的優秀工程師不善於進行白板面試,然而同時,能在白板面試中脫穎而出的蹩腳工程師(若是有的話)也不多。編程語言

 

假設一家公司擁有穩定的潛在僱員來源,那麼這家公司對白板面試的推崇就能夠理解了。工具

 

 

並沒有隱藏議程

我以前老是以爲,我在白板面試中被拒並非由於我表現很差,而是由於我跟面試官的背景不一樣。我之前當過兵,我作過前端工程師,我不是名校畢業,我用了不對口的編程語言,我用了不對口的框架…

 

但當我看到一個朋友同時得到了Google和Facebook的offer,而且這兩家公司搶着要僱他的時候,這種誤解煙消雲散了。個人朋友並無名校的CS學位,英文也講的不太好,他只在美國住了1年。可是他苦練的白板面試技巧已經爐火純青了。這就是他成功的惟一祕訣。

 

我開這個博客的動力之一就源於對白板面試的厭惡。我認爲潛在僱主須要一種白板面試以外的途徑來了解我,這個博客確實起了做用,可是跟個人預期稍有不一樣。

 

我期待的是,有人對我說:「你很棒,來跟咱們一塊兒工做吧」,可是我收到的信息倒是:「你的博客看起來挺好玩的,來面試吧」。

 

 

這事發生的頭幾次,我特想哭。

 

而後我意識到:除非我作了一些真的很驚人的事情,沒有人會以這樣的方式僱傭個人。寫博客或者作一個開源項目並不能給你找到一份工做。獲得面試機會,能夠;但獲得正式工做,不行。

 

Homebrew的創始人在推特上說:

「Google:咱們90%的工程師都用你寫的軟件,可是你不能在白板上反轉二叉樹,因此滾蛋吧。

——Max Howell(@mxcl) 2015年6月10日」

 

連brew都不能當成Google的敲門磚,那麼那些博客和開源項目更不行了。

 

那Google的敲門磚到底是什麼?作好白板面試啊!

 

我喜歡寫博客,我會一直作下去。若是個人目標是獲得更多offer,那我最好把時間都投資到準備工做面試裏去。博客是分享知識和促進我的成長的好工具,可是對職業生涯幾乎沒有幫助。它確實能夠幫我拿到不少面試機會,可是一個漂亮的簡歷也能夠起到一樣的做用。

 

 

 

投資會持續獲得回報的

像我剛纔說的,我剛工做的時候是一名前端工程師。我只在這個領域全職作了五年。在那段時間裏,咱們至少經歷了技術堆棧的三場大革新。剛開始的時候,你們都在用Backbone和jQuery做爲主要工具,而後Angular 1佔了上風,在一兩年以後,React成了主流。

 

我爲何要說這些?

 

由於,不像前端技術,白板面試幾乎不會改變。即便我如今已是Angular 1的高級開發者,沒人在意的。這個技術太老了。

 

若是我把這些時間用來把本身培養成一個「高級白板工程師」,那麼這種技能會讓我持續受益不少年。

 

 

經驗 !=不須要寫白板

我曾經認爲,豐富的經驗就可讓我避開白板面試。對領導和建築師這樣的職位來講確實是這樣的,可是對普通軟件工程師來講,狀況就不一樣了。

我本身練習白板面試的最佳時間是在大學三年級,那時候我正在學算法和數據結構,當時個人大腦已經習慣用C快速準確地解答問題。

 

完成碩士學位的時候,我去參加了第一場技術面試,到底面了什麼我已經不記得了。當我被要求去解釋一下如何計算一個二進制搜索算法的時間複雜性的時候,我震驚了。我記得應該是一個log(n),可是背後的數學原理我早就忘記了。

 

現在我在面試不少更有經驗的程序員的時候,我也看到了許多熟悉的震驚/惱火/白眼,而後看他們掙扎着在一分鐘左右完成一個很是簡答的白板問題。或許我就是那個問白板問題的壞人。同時,這也是我犯給出一個假陽性錯誤的最佳工具,畢竟要進一步進行了解的話,還要花費45分鐘的時間成本的。

 

多年的經驗確實能夠在求職上有所幫助,可是這是在他們的面試表現跟其餘競爭者同樣好的前提下才成立。若是我必定要在所謂的經驗和白板面試佳績中選一個的話,我必定會選擇白板面試。我相信大部分其餘的面試官也是這麼想的。

 

 

不要把機會白白浪費

若是我能回到大學二年級,我就會更認真地聽算法和數據結構的課,我會投入更多時間來準備白板面試。

 

目前爲止,個人職業生涯還算不錯。我在很棒的公司裏,跟一羣有意思的人當同事。話雖這麼說,可是在過去的五年裏,我無疑錯失了許多良機,由於我沒有花足夠的時間來準備白板面試。

 

這是一個我想要補救的錯誤,我也會鼓勵每個人,不論是大學一年級新生仍是經驗豐富的軟件工程師,去積極準備白板面試。反正無論咱們喜不喜歡,白板面試是無從逃避的了。

 

 

 

資源

Programming Interviews Exposed

關於這個話題有不少書能夠參考,我最喜歡的一本叫作Programming Interviews Exposed。還有不少其餘書提供了例題和解答,可是這些也均可以在在線項目中得到。Programming Interviews Exposed這本書用簡單易懂的方式歸納介紹了面試者應該瞭解的全部內容。若是一我的要在面試以前讀一本書的話,我會推薦這一本。

 

Coursera上的算法專項課程

我在Coursera上選了算法專項課程的前兩門課(我那位拿到了Google和Facebook雙offer的朋友也選了),是一組由斯坦福的CS教授Tim Roughgarden錄製的視頻講座。我極力推薦這門課,特別是沒有正式CS背景的工程師們,這門課將會對你大有裨益。

 

在線編程訓練

如今網上有不少面試準備的項目,我最推薦的是Hacker Rank和Leetcode。

 

 

結論

我諮詢過許多擅長白板面試的工程師,他們的祕訣就是——練習。

 

個人教官曾經說過「完美的練習創造完美」。準備白板面試跟軍事操練的道理是同樣的。

 

白板面試的制度不會改變。咱們只能接受事實,而後利用它,把它變成咱們的優點。

 

面試就是一場規則清晰的高獎金遊戲,只能熟能生巧。

相關文章
相關標籤/搜索