0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

招聘程序员的四步法则

工程师人生 来源:网络整理 作者:工程师吴畏 2018-11-23 16:57 次阅读

怎样招聘程序员

本文记录了本人招聘程序员的方法,希望能帮助你建立一个出色的团队。

一般来说招聘程序员不算难。但要总结出如何招聘程序员,特别是招聘优秀程序员还是比想象中要困难的。尤其是你要招聘一个全职的员工(无论是否远程工作)。这里面涉及到很多东西,比如文化背景,职业素养还有最重要的方面-技术领域(程序员是否知道如何实现他们口中宣称的技术)。我们假设你只是在招聘一个外包人员来做一个小项目,如果要招优秀程序员仍然是不容易的。你如何考评应聘人员?你如何知道怎样可行怎样不行?你如何发现自己是在拿钱打水漂?答案是你根本就不知道。

你竭尽全力的面试候选人然后挑选最合格人的加入团队。如果这个人不行你就换一个,直到找到那个能呆下来的。问题是没人说非得要走这个流程。我下面将分享我在招聘程序员时采用的方法,通过这种方式在过去几年里我招到了最优质的远程工作者,外包人员和全职员工。我招聘远程程序员和现场程序员时也采用了同样的方式。

在我找到了候选人后,我会让他们经历四轮面试:

四轮面试流程:

非正式HR电话沟通(电话/Skype/Google Hangout)

技术电话沟通 (电话/Skype/Google Hangout)

编程测试筛选

文化融合评估

如果候选人通过了所有的四轮测试,那很可能你找对人了。上述流程找到的人具有下面的特点:

技术上能够完成工作任务

能够融入公司文化

善于有效沟通和发散思维

四轮流程的目标

可能你也注意到前两轮筛选都是采用电话/Skype/Google Hangout作为沟通工具。为啥哩?答案非常简单:时间宝贵啊。时间一去不复返…如果我能为团队节省会议室,出差等我会很乐意去做。这就是电话面试的目的。通常候选人也会倾向于这种方式,毕竟这节省的是大家的时间啊。所以前几步的目的就是为了节省公司和员工的时间。

我们的目标是:节约时间!

每一轮都是在不同时间完成的。一般来说最少也得间隔4到6个小时吧。留出时间间隔的目的是让团队有时间决定是否让候选人进入下一个流程。例如:第一轮面试后团队决定放弃后续的面试,那就可以通过电子(邮件或电话)方式通知候选人然后继续自己愉快的一天。第二步第三步是一样的道理。第四步就是要上手的了,后面会细说。这也可以说是“敏捷”式招聘。每一步都是迭代式的循环并建立于上一步的成功。也可以看着是一种测试驱动(TDD)式招聘流程。 第一步测试通过了吗?通过了就进入第二步。第二步通过了吗?通过了,太好了。进入第三步吧, 第三步通过了吗?没有。 好吧,GameOver了, 不用浪费后面的时间了。

步骤细说

下面就细说一下各个步骤,并提供了参考提问,外部资源的链接以及优化流程的建议。

第一轮:非正式HR筛选(10到30分钟)

终极目标:基于基本对话和HR的经典必杀问题判断候选人是否适合目标岗位

第一轮其实是很短的。 又想到了节约时间的问题—这是第一道关卡。你也可以把它变得更短。你需要确认这个人能有效的沟通,思路清晰没有社交恐惧症啥的。比如有人满嘴的”Cao” (原文是F开头的四字单词),那这种人就很可能不太适合团队。

这一轮一般交给招聘经理(有时候就是你(HR), 有时候是别人)。这一轮经理应该描述工作性质并与候选人对话。下面是一些参考问题:

为什么申请这个职位?

在X方面你有多少经验?(X就是你们正在干的事儿,或者是新技术等等)

谈谈你的上一份工作?

接下来还可以采用传统的面试问题。例如下面这些:

你会如何处理X情况?(X就是HR的经典问题)

讲讲你遇到无法解决的问题时,后来是怎样解决的?

跟同事有不同意见,你是如何处理的?

你对我们公司有了解吗?

你对我们有问题要问吗?

此时此刻,你就可也判断候选人是不是思路清晰,或者是跟你在扯八卦。也就可以判断是否进入下一步:技术筛选

第二轮: 技术筛选(10到30分钟)

终极目标:采用问答形式判断候选人是否具有所需的技术(Skype/Hangout/电话形式)

技术筛选是第二道关卡。这一轮应该持续10到30分钟取决于问题的难度。如果候选人答不上的问题太多,可以随意缩短时间。所提的问题根据招聘的程序员类型有所区别。但应该覆盖正在使用的一些编程语言基础,框架基础,服务器。可以提一些开放式的问题让候选人自己解释。尽量避免问一些是/非问题。下面是一些参考问题:

NodeJS 参考提问:

请解释NodeJS里ExpressJS的作用以及你为什么会使用它

Sync和Async call的区别以及你更倾向于采用哪种方式,为什么?

你使用哪个测试框架?

知道V8是什么吗?

Android 参考提问:

什么是AsyncTask,什么时候你会使用它?

什么是ActionBar

什么是Gradle以及使用场景

如何在Android上做单元测试

Rails 参考提问:

什么是asset管道

什么是控制器(controller)?

什么是RSpec以及使用场景?

什么是路由?

通常这类面试由团队成员进行。有时候是两个程序员。如果是两个面试官,相互间要有个暗号告诉对方候选人不合适以节省时间。我之前就采用了下面的方式:

“提醒我跟你讲早上我在加油站的遭遇”

“面试结束后提醒我给我表弟打电话”

道理你应该已经懂了。自己编一个吧。至少有50%的时间你希望尽快结束面试因为候选人不靠谱。记住,目标是:节约时间。

第三轮: 编程测试(2-4个小时/夜间)

终极目标:判断候选人拥有通过代码解决问题的能力。了解代码质量。

面试过程中,要求候选人采用指定的语言解决实际问题。一个有经验的程序员应该在一个小时之内解决问题。我会给出2-4小时的范围以便候选人有足够的时间完成任务。为了公平公正我一般会允许候选人在家里舒适的环境下接受面试,以排除压力并了解他们实际如何解决问题。有些公司更喜欢在现场给候选人提供电脑和网络。不管哪种方式,目标很简单:了解候选人能否写出正确的代码。

编程测试是很好的调节阀。不是说问题有多难(恰恰相反,问题很简单),而是因为你可以了解对方的代码质量,同时也能找到以下问题的答案:

候选人的沟通能力

候选人是否知道服从指示?

候选人知道如何使用Git和GitHub吗(后面会细说)

候选人知道最佳代码实践吗?

候选人知道如何写代码吗?

候选人能通过测试吗?

如果我让候选人在空闲时间里在家面试,我一般会告诉他们我会在下午5点通过邮件告诉他们题目以及解决问题的提示。我告诉他们最迟在明天中午12点前得完成。问题会发布到GitHub/BitBucket的repo里,这个repo会为每个候选人创建一个。repo包含了所有关于问题的描述。候选人需要做的就是跟随指示并将结果发给我。下面是一些我创建的例子:

NodeJS 例子

Android 例子

Rails 例子

你可以fork这些例子并保存。如果你访问过这些网站中的任何一个你就会发现这里面的每一个例子都要求候选人经历一系列步骤。如果候选人不清楚干什么,他们可以跟我确认或者直接在Goolge上找答案。候选人完成后需要提交一个pull 请求给我,然后我可以进行评审。我知道不是所有人都用Git来管理源代码,所以你可以进行修改,以便采用mercurial或者SVN来管理。

这种方式可以说是神来之笔,因为它能全方面了解候选人。比如候选人是否能按时写出代码完成工作。同时也能让我审查代码来判断到底是好还是坏。基于我的经验,平均60%的候选人不能完成任务,因为他们不知道如何解决问题。这也是我让他们在家面试的原因。从第一步到第三步都可以远程进行。这为公司节约了时间。在这完成了任务的40%的人中,只有20%的人做对了,并且到这个时候基本上只剩下一两个候选人看起来不错。如果你有更多的选择当然更好。

对于这种方式有一个很正常的顾虑:万一他们作弊怎么办?如果他们叫朋友或者其他人当枪手怎么办?是有这种可能,但我认为现实中也存在这个问题。有时候程序员不知道如何解决问题就会寻求帮助。他们通过QQ向朋友求助,或者是在网上搜或者是找一些满足要求的开源项目来修改。这就是程序员的作风,管你是在家还是在公司谁关心。如果对方真是在欺骗,我想很快我也能发现。就算是对方被招进来了,团队也能很快发现问题。这时候你就需要需要决定是否要留下这个人了。

如果候选人没能完成测试,这就直接是红牌了。当然出的问题也应该足够简单让有经验的程序员能在一个小时内完成。如果不能完成,要么是题目太难了要么是候选人不合适。如果你用的是我上面提到的链接(或者类似的),那就不存在这个问题。对于那些没通过测试的,我建议放弃后面的面试直接换下一个人。

对那些完成题目的我会审查代码。如果没问题我会继续面试。这种情况其实很少。一般我会问候选人为什么会用他的方式去写代码。比如我会问一个做Android题目的人为什么会用HttpGet而不是类似OkHttp或http-request的库。对于做NodeJS题目的人我会问为什么会采用原生的http请求而不是restler或rest。问这些问题的目的是考察候选人的思维方式,也能更多的了解他们的性格。有时你也能从他们身上学到一些东西。

如果没人解决问题,那就继续发布职位需求。有时候我要发好几遍才能找到合适的人。

第四轮:文化融合评估(2-4小时)

目标:考察候选人是否能融入公司文化

到这一步,候选人通过了HR和技术的电话面试,以及编程测试。或许你认为应该聘用这个人了。但注意不要被激动冲昏头脑—你需要了解这个人是不是能够和你以及团队一起和谐共事。这时候我会把候选人带到办公室和团队见面并共用午餐。我一般叫他们在指定的时间来公司(上午11点到12点)并安排团队午饭。我们会去一个常去的地方吃饭。不要去一个高档的或者团队不熟悉的地方吃饭。否则团队不会全部参加或则气氛变味。我们需要的是平常和正常,就是一个每天工作状态的展示。这样我们能评估他的个性并试图发现一些影响团队和谐的因素。如果我们发现有人感觉不对,我们就不会聘用候选人。因为以后的路还长,如果一见不能钟情,日久就要生恨,工作也不会出色。

情景再现: 有个人前几轮结果都恨优秀。我有点小激动。我带他们出去吃午饭才发现他们非常没素质,极端的具有消极进攻性(passive aggressive)而且有时非常计较。我们都应该有过这种感受:不要惹桌子对面的那个人。后来我就认为这人不适合团队也没有发offer。

你还应该带新人在办公室/园区等转一转。跟他们讲讲职位以了解他们的兴趣。问他们一些针对公司的宽泛问题,看他们是否对公司进行过了解。总之就是要了解这个人。你要问自己这样一个问题:要是这个人在下班后跟你一起吃饭喝东西你愿意吗?如果你的回答是不,那又是红牌需要商榷了。

候选人走后,和团队的人聊一聊他们的看法(如果这个人是招进来的第一个人,只有靠直觉)。如果候选人还靠谱那就发offer,否则—下一位。

总结:

好马不好找,找好马还要省钱就更难。上面的四轮法则将帮你节省时间并找到最佳人选。不要怕尝试下一个人选。与其招庸人不如耐心等。记住,第三轮是调节阀。这里是“行”与“不行”的分水岭。如此多的人卡在这一关让我有点惊讶。祝大家找马顺利。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 程序员
    +关注

    关注

    4

    文章

    945

    浏览量

    29699
收藏 人收藏

    评论

    相关推荐

    程序员节视频创意大赛,用串口屏赢取千元大奖

    10月24日,程序员专属的节日里,我们盛大开启“程序员节视频创意大赛”特别活动!这不仅是一场视觉的盛宴,更是智慧与创意的璀璨碰撞。我们诚挚邀请每一位程序员及编程爱好者,拿起你的镜头,记录下那些平凡日子中的不凡瞬间,让编程的魅力与
    的头像 发表于 07-08 10:38 72次阅读
    <b class='flag-5'>程序员</b>节视频创意大赛,用串口屏赢取千元大奖

    程序员节视频创意盛宴,邀您共襄盛举!

    10月24日,程序员专属的节日里,我们盛大开启“程序员节视频创意大赛”特别活动!这不仅是一场视觉的盛宴,更是智慧与创意的璀璨碰撞。我们诚挚邀请每一位程序员及编程爱好者,拿起你的镜头,记录下那些平凡日子中的不凡瞬间,让编程的魅力与
    的头像 发表于 07-04 09:00 67次阅读
    <b class='flag-5'>程序员</b>节视频创意盛宴,邀您共襄盛举!

    请问workbench生成代码时怎么选择foc或梯形六步法

    workbench生成代码时怎么选择foc或梯形六步法
    发表于 04-19 07:53

    适者生存,程序员最终会流向哪……

    程序员没有永远的护城河!!就目前的互联网大环境来看,it行业已经是……
    的头像 发表于 03-11 17:11 296次阅读
    适者生存,<b class='flag-5'>程序员</b>最终会流向哪……

    瑞萨Flash程序员V3 发布说明

    电子发烧友网站提供《瑞萨Flash程序员V3 发布说明.pdf》资料免费下载
    发表于 02-19 09:37 1次下载
    瑞萨Flash<b class='flag-5'>程序员</b>V3 发布说明

    2024程序员的未来方向如何走?还看今朝

    这几年的IT行业想必大家已经感受到了,Android、Java、前端等等程序员都经历了大厂……
    的头像 发表于 02-02 09:45 705次阅读
    2024<b class='flag-5'>程序员</b>的未来方向如何走?还看今朝

    程序员表白程序

    电子发烧友网站提供《程序员表白程序.rar》资料免费下载
    发表于 11-21 10:41 0次下载
    <b class='flag-5'>程序员</b>表白<b class='flag-5'>程序</b>

    嵌入式程序员应知道的几个基本问题

    电子发烧友网站提供《嵌入式程序员应知道的几个基本问题.pdf》资料免费下载
    发表于 11-20 11:21 0次下载
    嵌入式<b class='flag-5'>程序员</b>应知道的几个基本问题

    智能低代码洪流涌动程序员节,华为云 Astro 触发 1024 的乘法效应!

      从人工智能至量子计算,再到最新的云原生技术,越来越多的荣耀被程序员斩获。今年 1024 程序员节,华为云 Astro 向全民致敬:「低代码高产出 拓荒数字化版图——人人皆是程序员」,为全球工程师
    的头像 发表于 11-13 09:39 383次阅读
    智能低代码洪流涌动<b class='flag-5'>程序员</b>节,华为云 Astro 触发 1024 的乘法效应!

    中软国际鸿蒙生态实践成果闪耀程序员节,以智联创新码动程序世界

    10月24-25日,由中国软件行业协会、中软国际有限公司联合主办的2023中国程序员节活动在北京展览馆隆重举办。作为面向程序员群体的年度盛会,本届中国程序员节以“技术创新与开源合作”为主题,盛邀院士
    的头像 发表于 10-27 09:30 412次阅读
    中软国际鸿蒙生态实践成果闪耀<b class='flag-5'>程序员</b>节,以智联创新码动<b class='flag-5'>程序</b>世界

    一文速览!拓维信息@1024程序员节精彩看点

    10月23日,第届“长沙·中国1024程序员节”在湖南长沙盛大开幕。自2020年首次启动以来,1024程序员节已行至第届,以独特的IT先锋视角见证了新一代信息技术与经济社会发展深度
    的头像 发表于 10-25 08:15 500次阅读
    一文速览!拓维信息@1024<b class='flag-5'>程序员</b>节精彩看点

    喜迎1024程序员节!祝各位开发者们“码”到“程”功!

    祝各位开发者们,节日快乐! 程序员(Programmer)是从事程序开发、维护的专业人员。 对于奋斗在一线的程序员们来说, 10月24日 是一个特殊的日子,这一天是属于程序员们自己的节
    的头像 发表于 10-24 20:00 624次阅读
    喜迎1024<b class='flag-5'>程序员</b>节!祝各位开发者们“码”到“程”功!

    今天程序员节长沙出招 全国首个!长沙为程序员打造“1024街”

    今天10月24日,今天程序员节;先给程序员点赞,我们还看到有一些平台举办了程序员节;而在长沙,更有为程序员打造“1024街”。 昨天第届“
    的头像 发表于 10-24 14:29 550次阅读

    程序员节 | 今年程序员们都想要的礼物竟然是……

    原文标题:程序员节 | 今年程序员们都想要的礼物竟然是…… 文章出处:【微信公众号:微软科技】欢迎添加关注!文章转载请注明出处。
    的头像 发表于 10-24 10:35 420次阅读
    <b class='flag-5'>程序员</b>节 | 今年<b class='flag-5'>程序员</b>们都想要的礼物竟然是……

    “程”力来袭 2023中国程序员节即将在京开幕

    随着科技的不断进步和经济的全球化,编程已成为当今社会的重要组成部分,在众多行业领域发挥着重要作用,同时也促进了社会产业升级和创新突破。程序员通过编程正在深刻影响和改变着千行百业,程序员群体的成长
    的头像 发表于 10-24 10:30 392次阅读
    “程”力来袭 2023中国<b class='flag-5'>程序员</b>节即将在京开幕