饱受诟病的白板面试,为何沿用至今?

不少人都以为白板面试烂!透!了!前端

 

明明跟职位要求基本没有关系,天天却都有上千名优秀的工程师们仅由于作很差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。

 

 

结论

我咨询过许多擅长白板面试的工程师,他们的秘诀就是——练习。

 

个人教官曾经说过“完美的练习创造完美”。准备白板面试跟军事操练的道理是同样的。

 

白板面试的制度不会改变。咱们只能接受事实,而后利用它,把它变成咱们的优点。

 

面试就是一场规则清晰的高奖金游戏,只能熟能生巧。

相关文章
相关标签/搜索