工作这十年来,我面试了很多不同岗位的人。刚开始是面技术,后面是面产品,再后面是测试、运营、教研、设计。最近还面试了很多硬件相关岗位的人,比如 ID 设计师、结构设计师、质量工程师等。
我肯定不可能同时是这些岗位的专家,大部分情况下,我都是外行。但是我又要面试这些岗位,尽可能招聘到优秀的候选人。团队如果组建得不好,工作执行上肯定会受影响。
面试某种程度上是一门艺术,非常不标准化,又非常不确定,每个候选人都是一个独特的个体,需要你调整自己的问题,尽可能准确地判断出候选人的水平,这几乎不可能 100% 做到。
我是如何面试各种岗位的呢?以下是我的一些小结。
当你招聘一个岗位,肯定是工作上具体的事情需要增加人手完成,所以梳理 JD(岗位描述)是招聘的第一步。
通常 HR、面试官、候选人也是通过 JD 来达成对于目标工作的一致性认知。
JD 主要包括两部分:
岗位职责将这个人进来之后的工作细化,便于你理清楚到底为什么需要这个人,这个人进来之后可以改善哪部分的工作。
任职要求是对候选人核心素质的描述,便于提前过滤掉不合格的候选人,也便于你之后对核心素质进行考查。
一个候选人,你只花不到一个小时聊,很难完整得判断出这个人的水平。所以,面试考查算是一个不完备的决策行为。你可能误判,错过一个优秀的候选人。你也可能失误,把一个不合格的候选人招进来。
面试的第一步,就是承认这种决策的不完美。面试就是:
在非常有限的时间内从一堆候选人中挑出能够胜任的同学。
而我们能做的就是尽可能提高面试的 正确率 和 召回率。
面试过程中,你可以提很多问题,但是如果一个问题所有候选人都答对或者答错,那么这个问题就完全没有区分度了。你不可能全部通过或者拒绝所有候选人。
所以,我们需要精心设计问题,让优秀的候选人能够被挑出来,不合格的能够被淘汰掉。
在技术面试中,算法题目就是一类有区分度的问题。常常有人问:某某公司面算法,工作中用得到么?其实答案就是,如果不面算法,一般的工程开发问题都答上来了又有什么意义?面试又不是考查记忆力。
对于工程师来说,逻辑能力和智力都是很重要的底层能力,而算法题就可以做到很好地筛选出这方面优秀的人。
候选人的简历可能非常光鲜,但是细问一下就会发现水分。所以面试的时候,我们需要就着细节问,一个事情他负责的,我们可以:
除了问,我们还可以当场看。对于设计/产品/教研岗位,可以当场让他给你看线上的作品,讨论作品的细节。
有了细节,你就可以更真实地判断出来他的简历是否真实,事情做得到底好不好。
虽然我们面试的岗位千差万别,但是有一些基础的素质,每一个岗位都需要。
比如说:表达沟通能力。有些候选人连自己的答案都说不清楚,如何能够做好工作?而有一些候选人,说起话来滔滔不绝,但是一句也没有回答到重点上,这种人也是表达沟通能力有问题的表现。这种是信息表达的“密度”很低,和这种人工作会特别耽误时间。
除了表达沟通能力之外,我看重的核心能力还包括:
通过问一些案例和工作上的细节,我就可以对候选人的这些能力有一个感受。
不同岗位的人专业能力不一样,如果条件允许,最好还是让候选人展示一下他的专业能力。如果面试当时时间不够,也可以是以作业的方式来考查。
当你面试一个岗位的人久了,你就可以形成自己的面试「方法论」。这个方法论包括:
这套方法论固化下来,可以共享给同事,大家用一个统一的标准来面试。
每隔一段时间,你也需要复盘一下。有时候因为环境的变化,一些题目不太适用或者已经太普遍了,无法产生区分度,这个时候需要进行调整。
面试从梳理 JD 开始,在承认面试不可能完美的前提下: