Reload Original PagePrint PageEmail Page

招聘开发者:你不该这么干

当Evan Carmi在HN上贴出他的Google面试经历(http://ecarmi.org/writing/google-internship/) ,让我回想起了很多年前创业的那段日子,过去的10几年里,我们”先进“的IT界的创业公司在面试这方面却一直都没有什么进步,而我,也曾是这其中的一份子,我简单的拷贝了在那时看起来像是标准一样的招聘机制,这让我们在招聘新的开发者时几乎不可能从面试中得到那些对公司来说最为重要的信息,最近的科技网站首页满是关于Larry Page试图扭转Google公司颓势的报道,但是我认为作为一家以开发者为中心的公司,在招聘流程上的巨大失误或许同效率问题一样,已经成为他们DNA的一部分。

我们是如何做的

我的合伙人和我过去曾在德国运营过一个小的Web开发团队,我们一开始是在我朋友家的地下室一起工作,然后,随着时间推移,我们慢慢成长,搬到了真正的办公室,最开始,找新员工很容易,我们只要邀请我们的朋友加入就行了,当然,这没持续多久,但在初期的确起到了非常关键的作用,这种方式确保我们招到的都是我们了解并且适合我们公司的人,不管是在个人还是职业层面都是如此,直到有一天我们发现我们不得不从外部招人来填补我们的职位空缺。

德国公司的一个额外的好处就是,只要我们给德国的地方失业办公室打个电话,几小时后他们就会按照我们的要求送来一大摞简历,我感到很意外,我们甚至不需要找那些招聘代理,这些简历加上我们自己网站上收到的工作申请,我们经过筛选,最后从中挑出了十几个我们认为最适合的人选,并通知他们过来参加面试,而所有错误正是由此开始。

标准的开发者面试

应聘者通常穿着他们最好的套装和领带走进来,然后我们开始坐下来交谈,这种交谈和大学的入学面试有点像,我们通常会让他们编码实现一些算法来解决计算机科学中一些常见的有趣小问题,然后我们会得到质量参差不齐的答案,其中一些人会以非常不合理的速度拿出他们预先准备好的答案,他们通常都为这种类型的面试做了精心的准备,而另一些人则有可能迫于”压力“,什么都答不上来。

老实说,当我们第一次这样干的时候,我花了不少时间预先研究这些难题,以确保我不会在面试过程中出糗,这应该算是对我们的第一个警告:我们并没有在面试那些和我们的招聘要求最相关的技能,但是只要我一产生这样的念头,我就会想办法尽快打消它,最终,我们就是用的这套方法来面试的所有人。

当然我们最后雇佣了那个回答这些难题最出色的候选者,不出意料的,我们很快又有了新的职位需要招聘,在公司剩下的时间里,我们一直重复着这样的招聘步骤,如果你觉得这听起来很熟悉,那很显然你不是唯一这么干的。

实际的工作效率

那么我们按照标准的面试流程挑选出来的这些候选者的工作效率到底如何呢?实际情况是,好坏不一,大部分表现中规中矩,极少数表现优秀,还有一些则只能用糟糕来形容,所以往好了说,这样的面试实际上对于筛选我们初步挑出来的那些候选者毫无帮助,但我恐怕实际情况可能更糟,这样的面试显然对于那些不合格者更为有利。

可是应该如何区分好和坏呢?让我们看看下面这些我认为是最重要的衡量标准:

公司文化,这有些马后炮,一个新员工应该具备的最重要的特质,应该就是可以迅速融入到公司现有的工作氛围中去,但是我们标准的面试流程在考察这种特质方面几乎毫无作为,一个明显的原因,就是你很难在这样的面试中去判断应聘者的个性,因为他们表现出来的完全是另外一个人,事实上,这种面试鼓励他们不要表现出自己真实的一面。

编程能力,这有点违反直觉,但实际情况就是,通常他们在面试中写下来哪些样例代码并不能反映他们在真实工作中的能力和效率,因为真实世界的项目很少需要实现二分查找而不需要考虑解析或者语义,事实也证明那些在代码测试中表现很好的员工并不总是能很好的将他们的理论知识转化为实际的解决方案,让应聘者在白板上写出排序算法只是给了那些事先准备了这方面问题并且有着不错的短期记忆能力的家伙们可乘之机,而对于我们来说,我们需要的是能够写出简洁,稳定并且优美的软件的资深开发者,但是我们的面试流程并没有帮助我们将他们筛选出来。

项目管理,在面试中表现良好并不代表他就是一个很好的团队成员或者客户代表。事实总是出乎我的意料,实践证明,在面试中表现的如鱼得水,并不代表就能与同事融洽相处,与客户良好沟通,他们在面试中的表现也同样无法反映他们的文档编写以及在线交流方面的能力。

结果

这种招聘方式产生的后果就是公司开始逐渐失去它的创业精神以及创新的灵魂,这某种程度上就是我们公司的状况,作为CEO,我应该对我们的失败承担主要责任,尽管如此,但最主要的原因还是我们没能找到合适的人来负责合适的工作,从而导致我们没法交付出高质量的产品。内讧毒害了我们的团队,公司充斥着不称职的人,那些真正有能力的人因为厌恶这种氛围而离开公司。

尽管过去几年我因为不同的原因而解雇了很多人,但最终, 我还是不得不在那个早晨做出我这一生最难的一个演说,宣布解散这个公司,这期间,只有一个员工让我感到完全满意,他是我们过去一年面试的人中表现最好并且有着最佳教育履历的。

当然,这个例子有点极端,大多数公司都会置之不理,但我仍然坚信我们筛选合格面试者的方式还有很大的改进余地,只要我们能够从根本上改变我们的面试方式,对于我们来说,这将会造就一个完全不同的世界。

替代方案

那么,应该如何面试开发者呢?很简单:剔除考试部分,取而代之,多问一些开放式的问题,邀请他们自行评估他们的工作成绩。

  • 你在上一家公司工作的最后一个项目是什么?
  • 讲讲你最喜欢哪些项目
  • 你在业余时间都有为哪些项目工作?
  • 你平时经常去哪些在线社区?
  • 讲讲那些让你感到激情澎湃的编程或者技术难题。

这些题目的目的都是为了帮助你更好的了解面试者的真实情况,让你可以判断应聘者是否同一有一样的兴趣爱好,你是否喜欢他们思考的方式,以及他们真正的兴趣点,他们很难在这些问题上作假,因为你可以很容易通过更深入的提问来了解他们在这些方面的真实情况。

那么实际的编码能力呢?这个,你需要在面试后花点精力看看他们都写过哪些代码,可以是开源项目,或者是他们发给你的一些闭源项目,不要紧,实际产品中的代码可以更好的反映出他们真实的编码能力,这比白板变成要好上无数倍。

我确信你还可以想出更多类似这样的问题来激发你的面试者,这时候,任何主意都会是个不错的改进。

不仅如此

很多人会很快找出一对论点来维护现状,可以肯定,这种捍卫是有利的,因为任何时候你都可以拿出这个老观点而不用面对任何风险:“那么多聪明,有钱且成功的人都在使用这种方式,我相信他们不可能全错了”

“很好,但这对那些特别大,已经取得成功的公司没有效果,你的点子有局限”

我的点子当然没有局限,因为所有面试的目标并无二致,没有理由对大公司无效,最终,面试官总是需要做出一个个人化并且相当主管的决定,我只不过是建议采用一种新方式,让我们可以获取更多目标相关的信息而已。

”那些最好的程序员根本没有时间投入到业余项目上“或者是”我认识的最聪明的人都是从早9点工作到晚5点,然后回家看球或者陪伴家人“

我不这么看,我并不是说一个好的程序员不应该有自己的生活,但是我相信,对编程的热情会召唤你,并且真的,如果你有这样出色的能力,不使用它来让生活更轻松对我简直是一种浪费。

”我会用我的业余时间为我的公司创造下一个100万,嗯,当我不为公司工作的时候?,我会和我的朋友以及家人在一起“(来自 http://news.ycombinator.com/item?id=2385148) 这很好,这些人毫无疑问可以向我们展示他曾经工作过得那些项目,但是对于我来说,如果一个开发职位的应聘者没有任何业余项目经验,那我心里就会自动发出警告。

最后想说的

这些都是我个人的经验,传统的面试开发者的流程并不能有效的甄别候选者,典型的白板编程依赖一些基础的CS能力,他们对于实际的开发效率并没有指示作用,我过去很多年一直在使用这种方式进行招聘,因为这种方式很容易管理,但是它得到的结果却好坏不一。我们整个行业都应该考虑转向那些更加针对开发者的全面能力的面试题目了,同样,我相信通过实际的产品代码比那些抽象的课后题更能判断一个人的能力,最重要的,也是我坚信不移的一点,就是了解开发者的真实个性同考察他们的职业素养通常重要,因为错误的组合很有可能会摧毁整个团队。

本文翻译自“Hiring Developers: You’re Doing It Wrong”,作者:Udo Schroeter,翻译:@yuanyiz

0 ::...


免责声明:
当前网页内容, 由 大妈 ZoomQuiet 使用工具: ScrapBook :: Firefox Extension 人工从互联网中收集并分享;
内容版权归原作者所有;
本人对内容的有效性/合法性不承担任何强制性责任.
若有不妥, 欢迎评注提醒:

或是邮件反馈可也:
askdama[AT]googlegroups.com



自怼圈/年番新

DU21.7
关于 ~ DebugUself with DAMA ;-)


关注公众号, 持续获得相关各种嗯哼:
zoomquiet


粤ICP备18025058号-1
公安备案号: 44049002000656 ...::