我拒绝参加你们的技术面试

  英文原文:I will not do your tech interview.

  我十分不擅长对付技术面试。就我参加过的几十次来说,我甚至连一次都没有通过。一般来说,过程是这样的:因为一次偶然的联系,一个经理或一个招募者突如其来的给我打来电话。之后,我与招聘经理进行一次电话约谈,一般以对方非常满意结束。最后,我当场(现在一般是线上)与技术人员们深入讨论技术细节,之后被淘汰掉。

  有时,他们提出的问题我根本不了解。其他时候,我甚至对自己非常熟悉的话题也哑口无言。(有一次我竟然连我最爱的电子游戏的名字都说不上来。)我常常在一些逻辑问题上表现的很差。我真正得到的工作,每一个都是因为有朋友帮忙。

  好些年我都生活在害怕面试的阴影中,因为我认为我不会成功。但同时,我知道我自己其实是一个非常优秀的开发者。我总是团队的核心,常常一个人搞定大型项目,并且能够成功胜任领导者的位置。

  我对自己面试的问题焦头烂额,为此,我模仿我经历过的那些面试建立一个面试流程。包括脑筋急转弯,测试,技术质询,这些所有过程。当我简略的观察过包含了大量雇佣记录的流程之后,我了解到,在一个重要的雇佣流程中起决定性作用的是这个参与者是否已经认识雇佣团队里的某一个人。虽然你不能简单的就相信一个雇员说他的这个大学哥们非常牛,但你也不用担心让他来担起整个雇佣这个人的责任。那么,作为应聘者,你该做些什么?

  终于,在一个小型启动项目的面试中,我近乎艰难的用另一种途径找到了解决方法。我首先和项目负责人共进午餐,接着跟团队里的所有人都聊了聊。我们讨论了一些技术方面的问题,但他们没有尝试或者审核我的技能。取而代之的是他们给了我一份付费合同,让我去做一份他们真正需要做的工作。他们给我恰到好处的指点好让我开始,接着让我回去在自己的设备上工作。在提供良好的交流的条件下,看我是否能够按时做好这项工作。我晚上花了 10 个小时就搞定了它。三天之后我得到了这个工作!

  从那之后,我就拒绝参加传统的技术面试了。我礼貌地建议:用一个短期合同工作去衡量一个资深开发者,这可能是最好的选择。当他们不了解你时,这样十分有效。如果他们真的需要你,那效果更好。此外,另一个好处在于,在跟团队合作之前你就已经见识过他们如何工作的了。

  有一些公司拒绝使用我提出的模式,对此我非常理解。这些工作,我不去理会便是。对他们表示感谢之后,我就开始准备下一个工作了。

  用这样的方式成功通过面试会给你带来一定程度的信度和影响力,这是传统面试所不能提供的。我用这种方式参加面试的通过率是 100%(4 次全中)。我最终接受的那个公司,不仅雇佣了我,还打算为我投资一项新的启动项目。

  在传统面试上表现的很好的人,你们应该继续参加对你们有利的传统面试。但是,我力荐任何一家公司仔细思考一下,你们的面试流程到底在筛选什么样的人。真的选出了能够完成高质量的工作并且与团队配合良好的雇员吗?是否只是选出了那些曾经听过你提出的脑筋急转弯的人呢?面试官是否只是在面试时敷衍了事,之后再去征求其他人的感受呢?或许那个经理非常善于察言观色,但他离开了之后又怎么办呢?好好想想,用短期的合同工的方式能否提供一个对面试者更好的评价吧。

  作者后来的补充:

  感谢所有感兴趣的人以及 medium、twitter 和 hackernews 的读者们。我没想到居然有这么多回复。我猜大部分工程师都有过一两次糟糕的面试经历,也可能不止。

  我今天读到了很多不错的批评,我简要的澄清一下并在此回复他们。

  老是不停的问我什么事闭包以及可变关键字代表什么,这不适用于以对话为基础的面试。的确,了解我是否会使用 CSS(我不会)或者我是否知道A*算法 (我确实知道)是非常重要的。但我非常请求取消手写代码,某些脑筋急转弯以及现场编程等等。就我的经验,如果我们讨论的时候有一杯啤酒或者威士忌,我会非常高兴。

  我并不是一个没有存在感的程序员。我曾在游戏领域担任过策划者,做了无数的团队发言,迎合了不少投资者,还有许多会议演讲和出版商洽淡等等。这些事情与面试的不同在于,我基本上总能说:”我需要回去考虑一下。我会明天再联系你。”对方也会说:“我现在可能还不清楚。”我已经掌握了如何准备和预演,但必须在我对从代码深入到准备好的对话选项这个过程感到自然了之后再开始。因此在技术面试上我就没办法做出决策了。

  最重要的是,你根本不知道什么时候就走进了一个技术面试的圈套。要说有什么不同的话,一个优秀的面试者知道判断一个参与者的好坏正是面试官的工作, 而非自己的。但是,优秀的面试者少之又少。一旦你被一个愚蠢的脑筋急转弯卡住,就像踩进一个捕兽夹一样,你就与这份工作无缘了。跳过踩进雷区这一个环节, 我就能进入我另一个成功几率更大并与团队合作良好的状态。

  再次感谢你们的阅读和评论。

  我之前的一个同事问我,能在面试时拒绝回答面试官提出的某一个问题吗?我本人在面试时从未拒绝回答过任何技术问题。如果我自己处于那种情况,我觉认为,直接拒绝甚至都不尝试一下是非常不尊重他人的。而作为面试官,如果参与者拒绝回答,我会觉得他甚至连一点思路都没有。

  避免被一些技能非常有限的面试官随意摆布,这是我们的目标。

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×