头图

今天接着上回聊招聘。

海量选人之后,就要进入面试环节了。面试通过意味着候选人变成试用期员工,要进入团队,可能给团队带来助力、活力和新思想,也可能是阻碍、破坏和坏模式,所以千万别觉得差不多就先招进来试试!新人融入的成本是很高的,如果他/她最终无法胜任,不但会拖累工作进度,对整个团队都有负面影响。

面试时无论是否安排笔试,一定不要从网上抄各种面试题,这是非常偷懒和不负责任的——考察的不是面试者的实际解决问题能力,而是刷题能力。

对于纯技术问题,可以从公司项目中遇到的实际问题中,摘选几个有通用性的,考察求职者对技术的理解,思考是否全面,以及是否有探索欲;大部分问题应该是团队已经经过努力解决了的——自己踩过相关的坑,才能更全面地考察,提问的目的是激发探讨,不是免费让别人解决问题;如果前面表现良好,最后可以抛出一个尚待解决的问题,这时几乎就是工作状态的模拟了,对方的技术能力、沟通能力、团队协作方式都可以充分表现。
discuss

但无论如何,纯技术问题都有可能“打偏”——没有人能对方方面的技术细节都很熟悉,如果他正好遇到过相关问题,有处理的经验,就会表现优秀;而完全没有遇到过的,容易手忙脚乱,特别在面试的环境里,心情紧张,又不善表达的人可能都想逃走了。

所以面试还有一个重要组成部分,就是针对他简历中提到的工作经历,进行详细的描述:比如具体问一下做了哪个模块?项目组有多少人,如何分工?自己做的工作中用到了技术栈中哪些技术?遇到过什么问题,如何解决的?

假如他说做过电商后台项目,那就请他详细描述商品和SKU的逻辑概念,在数据结构上是如何映射的;如果涉及库存,可以讨论一下如何保证数据一致性,如何加锁,数据库锁与内存锁的取舍;如果涉及支付,那么可讨论的就更多了,如何签名,和三方服务器如何交互,怎样处理退款等等。

提问题可以是层层递进模式的,比如先问项目分工,再问他本人承担的职责,继而请他举个实际的例子,然后讨论这个例子中的技术细节,询问他是否遇到问题,如何解决问题,决策的依据是什么,现在回想是否还有优化空间,可能的优化方向.....把它当做自己要面对的任务,逐渐深挖下去。

如果面试者是刚入行的新人,业务涉及的比较少,技术上也没有那么多思考,就可以让他谈谈具体的实现过程:比如web service接口的实现原理(通常是用注解表达,背后有不同框架的代码逻辑)啊,前后端交互过程中发生了什么呀(至少有序列化和反序列化,http协议的封装,框架的反射调用等技术,实现不同语言之间的调用和数据交互)?


面试中要始终体现对求职者的尊重——这是互相筛选的过程,而不是面试官的自嗨。技术岗的小伙伴往往是偏内向的,需要让他/她放松下来,才能更全面地展现自己。刚开始不妨给求职者倒杯水(自己倒比行政人员倒效果要好),随便聊两句日常来破冰,等对方确认自己面对的是一个温和诚恳的人,才让他开始自我介绍。无论是对方在说什么,都应该认真的倾听,给予必要的回应,可以插话,可以礼貌地打断,但切忌不能心不在焉,或者作出不耐烦的小动作。我自己团队的小伙伴,后来各自找工作的时候,就遇到过面试官不停抖腿,抓耳挠腮的样子——马上这家公司就在她心目中分数大减。
impatient.png

如果你实在觉得面试者答非所问,可以直接说“不好意思,我想了解的其实是XXX”,或者“抱歉打断一下,你可以从XXX这个角度描述一下么?” 当然面试者确实能力不足的话,也不用浪费时间,礼貌地告诉他还不合适就可以了。对于准备不足的新人,我一般还会多说两句:告诉他下次面试应该提前想好什么,对于技术问题,应该从什么角度来思考,这可能纯粹因为自己已经“老”了,看到有潜质年轻人没发挥好,觉得实在可惜。

记得招聘最重要的一点,就是努力招优秀的人,最好比自己更优秀,这样才能进步——如果一个团队中,队长就是那个技术最牛的人,那就成了名副其实的“救火队长”,所有其他成员都是打下手的,这样的话,自己倒是有成就感了,协同作战的价值就无法发挥出来。这样的队伍,我只见过一个成功案例:有位同学确实这样带过队伍,并且多次在通信系统研发领域高比分PK掉大厂团队。但他是天纵英才那种类型的,就好比吴健雄牵头搞个物理实验室,那其他人都甘于打下手,还动力十足。我们普通人还是不要放纵自己小小的满足感,多给团队成员发挥的机会。当然优秀的人也不好管理,这个以后再聊。

最终呢,有些优秀的同学会选择其他公司,但只要面试过程中表现出足够的诚恳和尊重,通常还能保持良好的关系,以后说不定仍然有合作机会。


songofhawk
303 声望24 粉丝