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


    很多人都觉得白板面试烂!透!了!

    明明跟职位要求基本没有关系,每天却都有上千名优秀的工程师们仅因为做不好CS 101 types of questions而错失机会。然而多年以来,白板面试已经渐渐变成了行业入门的标准,不可能瞬间就颠覆。

    个人而言,我从刚刚步入职场时就认为“白板面试很愚蠢”。

    虽然我很喜欢解决谜题,但是在进行白板面试的时候,我无法传递出我可以给公司带来的真正价值所在,这让人心很累。与其花时间去练习白板面试的技巧,我更倾向去责怪整个流程、公司、面试问题或者是面试官。

    虽然我最后还是找到了工作,但是仍然因此错失了许多好机会。

    白板面试制度仍会继续留存

    的确,使用白板面试有很高的拒绝优质人才的几率,但雇佣不合适员工的几率却很低。

    在花费百万美金的高薪雇佣一个人之前,公司HR只有一、两天的时间可以跟潜在雇员互动交流。所以,相对于假阴性率,公司更看重假阳性率。没能雇到好员工只会相对损失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。

    结论

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

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

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

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

  • 相关阅读:
    Excel利用剪贴板或错位引用将多列行数不一的数据复制粘帖到一列 来自:Office之家 链接:http://www.icanzc.com/excel/5246.html
    R语言之避免for循环示例
    R语言之as.numeric(对于factor型转数值型)
    R语言之row_number
    如何在Windows环境下开发Python(转)
    单行代码 之Python 3.5版
    install xgboost package in python (Anaconda)
    汉诺塔,杨辉三角之python实现
    special-symbols in package(data.table)
    R&SQL合并记录并去重
  • 原文地址:https://www.cnblogs.com/kungfupanda/p/7116407.html
Copyright © 2020-2023  润新知