技术面试中的精英主义
(给伯乐在线加星标,看经典文章)
编译:伯乐在线/duydls
http://blog.jobbole.com/113217/
【导读】:技术面试有很多比较深入的 CS 问题,对每个面试官来说,他们也都有自己最喜欢提的问题。但是对于招聘及面试,相比于以上那些问题,更重要的是要针对这个岗位需要什么样的人,而不是一味为难求职者,就算想问一些比较难的 CS 问题,也要有提出的理由。
我已经在 IT 领域工作了相当长时间,有 12 年了。作为一个曾经的求职者和面试官,我对面试有一个客观公平的看法。这种看法来自于个人面试经验,在这些面试中,面试官都高高在上,而且他们都有自己喜欢问的问题。其中我最喜欢的面试题包括:①二叉树排序算法,②编写代码求解一个多项式方程 ③以及编写一个编译器。到目前为止,我所经历的最糟糕的面试来自亚马逊和 Intuit,他们分别问到了二叉树和多项式。
除此以外,我还喜欢问求职者,你们每天花多长时间在那些事情?90% 的回答都会是‘从不’,或者绝大多数时间。尽管绝大多数公司都不愿意承认,计算机水平面试题是有年龄歧视的。当你离开 CS 项目一段时间却又没有每天温习(就像绝大多数高级业务程序员),你就和这些知识生疏了。计算机面试题可以帮助你找到这样的人:a)在面试前学习过一本算法书 b)刚从大学毕业。也有些人在经历过多年的职业生涯以后还可以完美回答这些问题,但是就我的经验而言,这些人多半是业务一线的开发者。
这也是我为现在公司的面试流程感到骄傲的原因。我们会给你一个能反映出公司日常工作内容的编程问题”。你可以向我们展示你的能力。然后我们会花大概 45 分钟的时间和你一起预演一遍项目并且提问,这样有助于我们了解你的想法和展示你的思路。
如果你恰好没有向我们展示你在编程项目上的技巧,我们会问一些其它正常的技术问题。我们试图保持一个轻松的氛围,我们会问你在某个问题上的技术水平(1 代表新手,10 代表专家),这样一来你就不会被某些你可能不知道答案的问题所打击到。我们的面试流程是完美的么?绝不,我们每周都在试图改善和提高这个流程。
这就是为什么当我看到这个 Glassdoor 上的评论后彻底震惊了。这里面有些抱怨是有效的,比如面试官没有及时告诉应聘者结果和不理睬应聘者是不可以被接受的。我从来没有在任何技术面试后立刻收到面试结果,往往都会有一些延迟,但没有任何人联系求职者并给出反馈意见,这样就不好了。(伯乐在线注:Glassdoor 是国外一家点评雇主的网站)
但是这个评论启发我意识到精英观念是相对的。作为那个求职者,要回答 JavaScript 的问题看上去有点不合理,他或许是一个后端开发者。作为新一代的只使用 ORM’ 的开发者,他们或许没有任何 SQL 的经验。某些对我们而言简单和无害的问题,对其它人而言也许会很古怪。
面试题应该是经过仔细思考、有意义并且能体现求职者所申请工作岗位的职能。你不一定非得通过一个很难的计算机问题来考察求职者是如何解决问题的。如果你觉得陷应试者于窘境是一种享受,那你应该把自己从面试工作中解放出来。这并不是说我们不能问我们最喜欢的问题,但是我们要有一个合理的理由问,而不是在求职者离开以后贬损他。
在你的机构/公司里,每一个部分都需要技术天才么?如果你的答案是 Yes,那你就是在寻找独角兽,也许你应该重新审查你的需求。在我的职业生涯中,曾经与我共事并且真正令我惊喜的开发者们寥寥可数。但他们也不是对公司里所用到的所有技术/系统/语言都超级擅长。因为这个,我喜欢准备不同水平的面试问题,并且我感觉这样做很有效。如果你告诉我你在某一个方面是专家,你最好可以证明这一点。
个人来讲,我把求职者与公司文化的匹配度和求职者的个性放在首要位置。在那之后是他们学习和适应新事物的能力,再之后是对待工作的激情。面试是一个困难和非完美的过程,没有人会有一个 100% 无懈可击的面试,当我们尝试帮助他们提高的时候,要试着去除精英主义。
推荐阅读
(点击标题可跳转阅读)
看完本文有收获?请分享给更多人
关注「伯乐在线」加星标,看精选 IT 职场文章