感谢几月几日的投递 新闻来源:CSDN 招聘程序员,永远没有万能的方法。在这里,我只希望分享一些多年来的我个人的招聘经验。 首先, 进行一系列简单的“Hello World” 类型的在线测试 对此,你是不是很惊讶呀?但确实有一些自称为程序员的人几乎不会编程。直到今天,仍会有一些招聘者告诉我,他们总会遇到一些应聘者无法通过最基本编程测试。 所以,任何合理的招聘过程应把极简单的程序开发测试放在第一步。并且这个测试需要在线上进行,目的不是为了证明应聘者有多牛,而是看看他到底是怎样的开发者。这一过程很有必要,如果不进行这一部的筛选,你将来可能会后悔。 现在有一些服务可以帮助你解决在线测试应聘者的问题,比如 Interview Zen 和 codility。 看开发者在互联网上的个人资料 任何名副其实的开发者应该有一份关于他们工作经历的简历。它不必十全十美,我只关注应聘者在互联网上因帮助他人而留下来的点点痕迹。向我展示你 在 Stack Overflow 上的相关资料,凭此我可以了解你专注于哪些方面的技术信息,同时解决了哪些技术问题;给我一个你曾参与的开源代码库的链接;给我你的专业博客地 址?Tumblr?Twitter?或其他一些我不曾听过的名字?不错,我可以好好看看。向我展示你曾设计的应用,你曾工作过的网站,及你在其中担任怎样 的角色。 了解应聘者曾做过哪方面的工作及在线创造了哪种类型的贡献,对于招聘者了解应聘者适合做什么、不适合做什么有很大的帮助。 雇佣适合企业文化的人 正如 GitHub,我发现很好地融入企业文化比整天埋头苦工更容易获得成功。 我们会在面试过程中和应聘者谈论哲学,我们十分重视这个过程。我们希望来 GitHub 工作的员工了解他们将要进入的这个企业,确认他们能很好地适应公司的环境。这个过程包括一块吃饭,一起谈论企业文化、哲学、我们曾经犯过的错误、未来的规划等话题。 早些时候,我们招聘只注重应聘者的技能,而对于他是否适应企业文化,是否懂哲学并不太关注。很自然,这些招聘并没收到很好的效果。所以现在我们不仅注重应聘者的技能,是否能融入我们也是我们考察的重要部分。 据我所知,不是所有的业务领域都有相应技术圈子,但如果有,招聘者一定要尽可能地从技术圈子中招人。因为该圈子中的技术人员会自然而然地对你企 业所做的事感兴趣,也会很容易融入到与他们意愿一致的企业中。这些应聘者较好适应企业文化的可能性是异常高的。这也正是招聘者乐于见到的。 与应聘者电话沟通内容需结构清晰 上面提到的事你都完成了,现在是时候给应聘者打个电话了。记住这个电话不是用来聊天的,而是为了筛选应聘者。所以通话的内容是关于技术话题的,而且结构层次要清晰。如果内容不太合适,你和应聘者都会被带离此次通话的目的。内容应该覆盖技术基础,总结下来有下面几点: 快速编程。如:编程实现从 Int 数组中找出最大的 Int 型数据; 一些基本的设计。 脚本语言和正则表达式。如:请从该目录中提取包含电话号码的文本文件列表,并以特定格式输出。 数据结构,如,你什么时候会采用哈希表 ,而不是数组? 比特和字节,如:程序员为什么问说出“oct (31) == dec (25)”类似这样的笑话。 该举措的目的,是为了到下一流程后,可以节约应聘者和招聘者更多的时间。你一定要坚持自己的立场,如果发现该应聘者多点不符后,尽早放弃该面试过程。 请应聘者参与实际项目 应聘者顺利通过了上文提到的四关,是时候进行面对面的面试了吗?现在还不是时候。 我曾见过一些应聘者,他们也顺利通过了上文提到的层层考验,但最终在实际工作中,并不能很好地完成实际任务。 如果你想确定无疑地判断他是否是一个优秀的应聘者,那就给他一个实际的项目做。我说的不是一般的、抽象的编程任务,而是你们公司现在正在进行的某产品的一个实际开发模块——你本计划交给公司实际员工做的任务。 选择一个测试项目,在理想的情况下可以在几天,也可能最多在一个星期或两个星期内完成。应聘者可以在公司里完成,也可以远程工作。我知道不是每 个企业都能把他们的项目切分成一些这样的小项目,分给应聘者在公司外完成——但可以尽力尝试让应聘者在公司内完成。我个人认为,如果你无法为优秀的应聘者 分配这样一个微项目,很可能说明你为现在员工分配的任务存在不合理性。 如果应聘者出色地完成了所分配的测试项目。恭喜你,你找到了一个高素质的应聘者,他已被证明可以出色完成各项工作。到现在为止,我所见过的通过 该项考验的所有应聘者都能在实际工作中很好的完成任务。准确地说,也不是百分之百保证,但我把该项测试看得很重要,因为在应聘者还未被雇佣前,你可以近距 离地观看他在实际项目中的表现。如果测试项目没成功,就把在该项目上所付出的代价看作一笔“退出费”,这相比请公司的 4 或 5 个人来进行一场昂贵的面试过程便宜多了。最坏的情况是,把该项目用于下一个优秀的应聘者。 是时候与应聘者见面了 最后,你应该选一个时间与面试者见上一面了。这是必然的,但通过之前所进行的一系列测试,你应该 95% 地确认这个应聘者就是很好的雇佣对象后再与他见面。 我并非面试专家,但我不喜欢问一些很难的问题,适度就好。 关于如何面试开发者,我有自己的一套理论:给面试者 15 分钟的时间,请他陈述所擅长的领域。相比与传统的面试方式,我认为这可以取得更好的效果,困为你可以很快地探明下面问题: 这个人喜欢做什么样的工作? 他是否擅长在小组中交流? 他能否很好地解决他所擅长领域中的问题? 你的团队是否愿意和他一块工作? 每个开发者都应该知道一件事,即如何推销自己、代码以及项目。 任何事都无法绝对保证 请正确看待上文所列举的招聘流程。它们有时很成功,有时也会失败。根据你自己的特殊情况,调整这些建议,贴合你的想法,忽略某些步骤(虽然我强 烈建议你最好不要省,即便是跳过第一步)。即便在最理想的环境下,招聘人才也是一件很难的事情。一个工作机会的获得会受很多因素的影响,往往不受人的控 制。正如人们说的,人本来就很复杂。 如果把工作看作一种关系,每周需花 40 多个小时相处的关系,那么公司和招聘者都应该有一种信念,努力找到适合自己的对方。我们的目的不只是找到一个工作,或雇佣一个人,而是为了生活乐趣,为了创造一种友爱的关系。