加入面试官行列之前,看到组里前辈去面试的时候,我总是在想:他们面试的标准是什么?
是技术深度?是发展潜力?是踏实能干?
经过过去半年对实习生的面试,我把自己对面试的思考做一个小总结记录。
以下所有想法仅代表我个人当时当下的观点,和组织无关。
一、提升对招聘标准的认知
如果一个工作,什么样的人都能做,那这个工作根本就不需要面试。
新开的招聘名额,那一定是这个工种有空缺:
可能是组织向前运转时,缺了一个轮子,那么要求的就一定要符合轮子的特性:坚韧、高效,讲究专业。
可能是组织内部需要润滑,缺了润滑剂来激发活力,那么要求的就一定要有链接各方的能力,制定和推行规则的魄力。
所以开启面试第一步就是要熟悉招聘人才背后的真实诉求,千篇一律的JD没有任何参考意义,对要招聘的职位要有自己的预期。
招聘和选伴侣一样,要在心里对候选人有一个期望,期望它有什么样的能力,以及对哪些能力不是那么需要。
只有先搞明白要招聘什么样的人,才能进行下一步的招聘工作。
二、建立面试候选人的总目标
面试本身是一项任务,任何任何都有一个大的目标,而面试的目标就是:通过提问各种问题,把候选人的各种能力「快速」「摸明白」。
这是一件很有挑战的事情,不仅要「摸明白」,而且要「快速」。
我总结的技巧是:(对候选人能力)先严格匹配形状,再反复验证材质(层级)。
(一)能力是方是圆?
在一个拼图上,如果缺角处需要的是一块方形。那么在筛选剩下形状时,我们完全可以pass除了方形之外的任何形状。
面试同理,如果我们招聘的是程序员岗位,那么它所限定的框就是:编程写代码能力,帮助我们进行快速筛选。
而不是先跟候选人聊发散性的问题,比如:候选人感兴趣的领域、候选人在学校的项目经历。这些确实也非常重要,但不应该是刚开始就聊的话题。
(二)能力在什么层级?
一把剑,它可以是粗铁打造,也可以是玄铁炼制,短期来看剑都可以用来上阵杀敌,但长期来看,玄铁打造的剑发挥的价值更持久。
面试也是一样,尤其是在面试实习生、校招生,他们的未来成长性比他们当下的技能更加重要。但同时鉴别成长性也是一个更难的话题。
我自己通过对各类问题的汇总,推演出的一个评价标准就是:「认知」。
现在很多人把认知滥用了,认知最初的定义是:【你能明白当下你所做的事情,在未来会带来什么样的影响】。
所以基于此,我们可以派生出很多检验个人能力层级的话题。
1. 学习路线
不同的学生有不同的学习路线,有的学生大一就明确了方向早早加入了实验室,有的学生临近找工作时节才匆匆背诵八股文。
学生自己的学习路线,一定程度也反应了作为学生的认知能力,这部分能力包含了对自己命运的负责人程度,以及获取各种信息做决策的能力。
2. 抽象能力
作为程序员,工作过程中最忌讳的就是【产品要什么,代码怎么写】,各种if else逻辑堆得漫天都是。
那通过什么办法可以评估学生的抽象能力呢?
最简单最粗暴最有效的方式,就是【代码review】,代码风格是思维的具象化。
看学生的工程代码是否有进行抽象分层,是否有对接口进行收敛等等等。
为什么抽象能力也反应了学生的认知水平呢?
以接口抽象为例:一份代码在未来是否会被其它业务使用到,一份代码在未来是否有可能和其它业务耦合等等,抽象的水平彰显了学生对未来情况的预判能力。
3. 逻辑链
作为面试官,最怕的就是学霸背八股,通过上面两个方法,我们已经可以比较好的进行筛选了。
另外一个利器,就是考察学生的逻辑链,这也是一个没法进行短期伪造的考察角度。
怎么理解逻辑链? 简单来说,就是大脑里有ABCD等等N个知识点,这些知识点在大脑中是以什么样的方式进行链接的。
如果是背八股,那么这些知识点在他的脑海中是平铺开的。
但如果是真实应用到这些知识点,可以说清楚A点为什么和B点相关,C点为什么和D点成因果。
可以在跟候选者展开聊实习经历或项目时验证它的逻辑链(按照视频教程完成的不算)。
三、面试流程中容易被忽视的
(一)沟通
很多程序员会因为害怕沟通,而不去和别人讨论更好的方案,闭门造车,甚至屎上雕花,
技术能力都能教,但沟通是人的本性,后天很难变更。
(二)主动性
主动意味着潜力,入职之后不用导师推着跑,主动性 和 逻辑链 强相关,一般逻辑链比较完备的人,主动性也会非常强。
(三)主人翁意识
主人翁意识相当重要,最怕的是和秉持着”代码和人,有一个能跑”就行的人进行合作,能把对接的人坑死。
有主人翁意识的研发,对自己的代码会有高要求,以为代码是他的脸面。
(四)面试流程的连续性
目前大厂里的面试分为很多轮,每轮之间的连续性需要进行强化,每轮面试的时间总是有限的。
多轮面试的目的是从不同的程度【摸明白】候选人,在无法长期跟候选人相处的客观背景下,盲人摸象最终还是需要大家汇总意见,形成一个尽可能客观的全局评价。