0%

谈谈如何面试候选人

最近关于B站在北邮校园招聘时,面试官对候选人打压的事件在知乎上讨论的很激烈。我并不想讨论这些言论的真假,但从这件事件反映出了B站面试官的不专业性。本文结合自身的一些招聘经验,从面试官角度谈谈应该如何面试候选人。

人才标准

每个公司或团队都有一个正式的或非正式的人才要求,即你想要雇用什么样的人?这是招聘的总体准则,这个准则因公司或团队而异,但可简单的概括为:聪明且会做事情的人

聪明和会做事情的人并不能划等号。有的人的确很聪明,但并没有将其聪明才智用到正确的地方,容易分散团队的精力;只会做事情的人往往缺乏自己的思考,容易人云亦云,很难有培养空间。

在面试的时候是可以区分出这两种类别的人的。聪明的人在沟通过程中比较顺畅,逻辑思维清晰,语言组织有条理,反映比较敏捷,对开放性的问题有自己独到的见解;会做事情的人通常需要从其过往学习、工作经验中进行考察,会做事情的人通常有始有终,对待工作认真尽责,有较强的团队合作能力。

面试前

面试前我会花几分钟快速浏览候选人的简历,主要包括候选人的学历,工作/项目经历,最后才关注候选人具备的技能。

不可否认,学历是一个重要的筛选指标。它虽然并不能代表候选人的水平,但在一定程度上降低了招聘成本,从招聘的数据来看,好学校的候选人成功率的确比较高。项目经历是衡量候选人的重要指标,它是候选人过去能力的证明,通常有好的项目经历是有加分的。最后才关注候选人的技能,技能可以在工作中不断学习到,而且技能可能会随着技术的演进而被淘汰,相较于技能,我们更关注候选人解决问题的能力。

通常,在面试前,我们准备一些问题,主要包括:

  1. 候选人自我介绍
  2. 一至两道笔试题
  3. 对候选人最近工作中(过)的项目提问
  4. 一些针对基础知识的开放性问题
  5. 候选人提问

面试中

在面试前,我通常会花30秒左右跟候选人寒暄一下,同时提前跟候选人说明一下我们的面视流程。对于现场面试,我通常会问候选人是怎么过来的,在路上花了多长时间,是否口渴;对于视频面试,我通常会问候选人网络是否稳定,面试软件是否用的顺手。面试开始前的闲聊主要是为了让候选人放松下来,而不至于一开始就进入紧张的面试环境。

在征得候选人同意后,就开始进入正式面试环节。我会按照之前准备好的问题(也可能在面试过程中有所变化)进行提问。

自我介绍

我通常会让候选人先做一个简单的自我介绍,时间不超过3分钟。这个环节是为了让候选人推销自己,也让面试官从整体上了解候选人。这个环节按候选人的时间线正常简述就好,如果能突出一些履历亮点就更好了。但我发现,好多候选人分不清重点,在自我介绍环节就开始介绍项目中的细节,结果超时,不得不打断候选者。

笔试环节

由于主要面试的技术岗位,笔试环节是必不可少的。笔记环节主要考察候选人的代码功底、算法和数据结构基础知识。题目基本上是对基础算法、数据结构的一些应用,题目难度通常是简单或中等,时间通常在25分钟以内。为了提高面试效率,我们将笔试环节放到了前面,如果笔试不通过,除非候选人后面的表现非常好,不然很难通过面试。

虽然现在有类似于像leetcode.com的面试网站。但笔试环节仍然能够考察候选人的一些水平,主要关注候选人下面内容的表现:

代码功底
代码是否正确实现功能?代码实现是否简洁?边界条件处理是否到位?函数、变量命名是否友好?代码功底是我们考察候选人最重要的一项指标,它反映了候选人的逻辑思维是否严谨,对细节的处理能力,对代码的品味以及工程素养。

解题速度
通常出的笔试题比较常规,不会出一些带智力性的笔试题,因为这并不能考察出候选人的水平。如果候选人在5分钟左右都没有思路,我们给一点提示,如果有必要,我会征求候选人同意换一个题目。解题速度通常反映候选人思维的敏捷性以及熟练程度,如果候选人在有思路的情况下也很难用代码实现,我们认为候选人在代码功底上有所欠缺。

理解/学习能力
如果候选人很快就做完了,我们会稍微变换一下题目,或加一些限制条件,进一步挖掘候选人的潜能。如果都能做出来,会是加分项。

基础知识

这个环节主要考察候选人对基础知识的掌握程度,偏重于对系统、网络、数据库原理性的基础知识,时间大概10分钟左右。对于一些框架或中间件,如果候选人只是停留在会用的程度,一般不会进一步考察,个人认为这些东西只要认真看官方文档都可以掌握,没有什么区分度。

如果对于刚毕业的学生,侧重于考察其对知识点掌握的深度;如果对于社招有经验的候选人,侧重于需要利用这些基础知识去解决带场景的开放性问题,主要考察候选人解决问题的能力。

项目经历

通常会让候选人自己挑选一个他认为值得讲的项目进行深入了解。我会先让候选人简单描述一下整个项目的背景,他在项目中承担的角色以及个人贡献。这个过程通常可以考察候选人以下几点内容:

沟通能力
沟通能力是一项非常重要的软素质,考察候选人是否有良好的沟通能力的一个简单标准就是看候选人能否将这个项目讲明白。每个项目都是背景和一些专有名词,候选人能否用通俗的语言向一个没有丝毫背景的人讲明白本身就是沟通能力的一种体现。

逻辑思维能力
好的候选人在介绍时,通常逻辑清晰,层次分明,详略得当。不好的候选人通常抓不住重点,讲了很久也不知道他在说什么。

团队合作/领导力
项目通常由一个或多个团队共同完成。好的候选人会主动体现自己在项目/团队中的价值和领导力。这实际上是一种能力的证明。

项目复杂度
项目复杂度也是一个比较重要的参考指标,项目复杂度能直接反映出项目和团队的规模,从侧面则能反映出产品的用户量,系统的复杂性等。

候选人提问

这个环节对面试官来讲一般不会影响最后的决定。但不管候选人是否通过,如果候选人问起,我都会向其介绍我们的产品和团队情况,并表明我们愿意吸引更多的人才。

需要回避的问题

忌讳在面试中向候选人问一些关于个人隐私的问题,如婚姻、种族、宗教、性取向等问题。

面试后

在面试结束后,有个评分环节。通常在面试过程中已经有了答案,如果对候选人暂时不能做出判断,我通常的做法是不通过。

对于团队来讲,我们期望招我们要想的人,如果自己都不确认,那进入团队后也会存在不确认性;对候选人来讲,如果他的确是优秀的,那么他一定能找到好的工作,不用为其惋惜。

总结

首先确定人才标准,面试前浏览候选人简历并提前准备好问题。面试过程主要包括候选人自我介绍、笔试环节、基础知识考察、项目经历考察、以及候选人提问。问题要具有开放性,主要考察候选人解决问题的能力而非事实性知识点,同时要回避一些个人隐私问题。最后,如果对候选人不确定是否要通过,答案是不通过。

参考资料

[1] The Guerrilla Guide to Interviewing (version 3.0)