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

    文章

    951

    浏览量

    29799
收藏 人收藏

    评论

    相关推荐

    TMS320C55x DSP CPU程序员参考补充

    电子发烧友网站提供《TMS320C55x DSP CPU程序员参考补充.pdf》资料免费下载
    发表于 12-21 11:36 0次下载
    TMS320C55x DSP CPU<b class='flag-5'>程序员</b>参考补充

    UCD3138A64/UCD3138128程序员手册

    电子发烧友网站提供《UCD3138A64/UCD3138128程序员手册.pdf》资料免费下载
    发表于 12-09 14:42 0次下载
    UCD3138A64/UCD3138128<b class='flag-5'>程序员</b>手册

    机械革命发布CODE AI程序员

    近日,英特尔新质生产力技术生态大会在成都举行,机械革命作为重要参展商带来了多款明星产品引爆全场!其中更是在AI PC软件生态产品发布分论坛上,Intel、智谱、机械革命三方联合发布了专为程序员设计的CODE AI程序员本,成为本次大会的一大亮点。
    的头像 发表于 11-30 10:34 373次阅读

    Linux驱动程序程序员指南

    电子发烧友网站提供《Linux驱动程序程序员指南.pdf》资料免费下载
    发表于 11-22 15:53 0次下载
    Linux驱动<b class='flag-5'>程序</b><b class='flag-5'>程序员</b>指南

    AI编程工具会不会抢程序员饭碗

    AI编程工具可辅助编程,减少手动编码,提升效率,对程序员有积极影响也有挑战。程序员需深化技能、拓宽知识应对。长远看,AI与人类程序员将共生共荣。
    的头像 发表于 11-08 10:17 158次阅读

    第五届长沙·中国1024程序员节开幕

    据官方媒体报道,10月24日;  第五届长沙·中国1024程序员节在湖南湘江新区开幕;本次中国1024程序员节以“智能应用新生态”为主题。设置有岳麓对话、技术英雄会、主题峰会及赛事、展览等活动,一场
    的头像 发表于 10-25 15:42 192次阅读

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

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

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

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

    助力程序员告别困扰已久的梦魇-Bug

    程序员的噩梦是什么?不用怀疑,就是让你加班到崩溃的Bug!下面是经过业界大佬们“长期加班”积累的小妙招,助力你离早下班又进一~一、定位Bug范围及性质要有效解决问题,首先要缩小范围,集中关注最近
    的头像 发表于 07-02 08:10 314次阅读
    助力<b class='flag-5'>程序员</b>告别困扰已久的梦魇-Bug

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

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

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

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

    薪资高、青春饭,是不是程序员=青楼?

    花期太短。技术迭代快,年龄大容易失业。 就这几年的互联网环境而言,不管是前端、Java、Android开发等等行业。已经感受到程序员不是太卷就是工作难找,薪资过低。以前高工现在拿着中低程序员薪资
    发表于 03-06 21:32

    瑞萨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 816次阅读
    2024<b class='flag-5'>程序员</b>的未来方向如何走?还看今朝

    1月18号“纯鸿蒙”千帆启航,程序员预备!

    。 如何正确看待鸿蒙? 我作为程序员来说,首先是看鸿蒙的发展、市场开发岗位、薪资以及前景。 这几年对鸿蒙的发展情况来分析,从2019年开始鸿蒙的出来今天,华为鸿蒙取得了很大的成就。从“不兼容
    发表于 01-16 22:13