Aaron Swartz:我如何雇用程序员
2009/12/03原文链接:How I Hire Programmers
作者:Aaron Swartz
译者:Esther
版权声明:本文可以任意转载,转载时请务必保持作者、译者署名的完整性。
当你雇用程序员(或者任何人)时有三个问题:他们聪明吗?他们能把事情干完吗?你能跟他们共事吗?聪明但不做事的人应该是你的朋友,而不是你的雇员。在他们拖延自己正儿八经的工作时,你可以跟他们谈论你的问题。能把事情干完却不聪明的人效率低:不聪明的人干活靠的是刻苦,和他们合作又慢又恼人。而你不能打交道的人,你就无法与之共事。
传统的程序员雇用过程包括:a) 阅读简历,b) 在电话上问一些刁钻的问题,c) 让他们亲自解决一个编程问题。我觉得这个雇用体制很糟糕。从简历上,你得不到什么信息,而面试时问些很难的问题,人们会十分紧张。而通常,编程并非在压力之下完成的工作,所以看看人们在紧张时如何表现,毫无用处。而面试所提的问题简直就是残忍。我觉得我是个挺好的程序员,但我从没有通过这些面试,我觉得我永远也通不过。
所以当我雇用人时,我只尽力回答这三个问题。想知道他们是否能够把活干完,我就问问他们做过什么。如果有人真能把事做成,那么此前他们应该已经做过。没有经验难以成为好的程序员,而现在任何人都可以通过创建免费软件项目或为免费软件项目做贡献来获取经验。所以,我就要求代码样本和演示,看看好不好。你可以很快获得大量信息,因为你不是看着他们回答牵强的面试问题,你是在看他们真正的产品代码。简洁吗?明了吗?优雅吗?实用吗?你希望用于自己的产品吗?
想要知道一个人是否聪明,我就跟他们随意聊天。我尽量让他们没有压力:约在咖啡厅见面,明确说明这不是面试,我尽量随意而友好。在任何情况下,我都不会问他们任何标准的“面试问题”——我跟他们聊天,就好像跟在聚会上碰到的人聊天一样。(如果你让聚会上的人说说自己的最大长处与短处,或者估测芝加哥有多少钢琴调音师,那就麻烦了。)我觉得在随意交谈中,很容易判断一个人聪明与否。我不停判断我遇到的人是否聪明,就跟我不停判断我遇到的人是否有魅力一样。
不过,如果我必须要写出到底什么让一个人显得聪明,我会强调三件事。首先,他们懂行吗?问问他们最近在思考什么,然后进一步探讨。他们是否详细了解?他们能否解释清楚?(清晰的解释表明真正的理解。)关于主题,他们是否知道你不知道的东西?
其次,他们求知欲强吗?他们是否也反过来问些关于你的问题?他们是真得感兴趣还是仅仅出于礼貌?你说什么,他们会提后续问题吗?他们的问题会引发你思考吗?
第三,他们学习吗?在谈话中,你可能会向他们解释某样事情。他们真得理解了吗,还是仅仅点头微笑?有些人对细小部分很了解,但对其他部分不感兴趣。也有些人好奇但不学习,他们提很多问题但并不真正聆听。你需要的是这三方面都能做到的人。
最后,我花点时间跟某人在一起,看看我能否与他共事。很多聪明人在一小时的谈话中看上去很随和,但几小时以后,他们的怪癖就会令人抓狂。所以,聊完天之后,邀请他们和团队其他成员一起就餐,或者参加办公室的游戏。同样地,尽量保持随意。目的不外乎看看他们是否让你烦心。
如果所有看上去都不错,我准备雇用这个人时,我会做一个最后的完整性检查,确保我没上当受骗:我要他们做部分工作。通常,这意味着选一个我们需要的较为独立的部分让他们写。(如果你确实坚持别人在压力下工作,给他们一个期限。)如果必要,你可以提出为他们的工作付费,但是我发现,大多数程序员并不介意接受这样的小任务,只要工作完成时他们可以开源。这个测试不能单独使用,但如果有人完成了前面三部分,这应该足以证明他们没有骗你,他们确实做得了这项工作。
(我知道有些人说,“哦,我们为什么不试用你一个月,然后看看情况怎样。”这好像没用。如果在一个小项目之后你无法下决心,一个月后你还是下不了决心,最后,你雇用的人就不够好。倒不如干脆拒绝,在雇用更好的人上面犯错。)
我对这个方法相当满意。当我跳过某些部分,结果就是雇了很差劲的人,不得不让他们走。但当我遵循这个方法,我就会遇到很喜欢的人,当不再与他们共事时,我难舍难分。我觉得很惊讶,那么多公司还在用那么愚蠢的雇用方法。
小贴士:你可以用 Google Reader 或 Google Buzz 订阅这个博客。
相关文章:
No comments yet.