前文说到我要招聘一个全栈的nodejs工程师。
我对于我想要招聘的人有一个清晰的画像,既得会前端,也得会后端。我们要做的是一个内网的devops平台,所以前端的要求不太高,简单的掌握就行。但是后端的关系型数据库基础,docker+k8s的操作是必不可少的。
而且我当初招聘这个岗位的目标,就是提高高端人才的人效比,所以这个岗位的预算肯定高不了。大厂出来的就别想了,肯定是一个工作3~5年的年轻同事。
所以我就按照我的要求出了一版JD,给到HR。
一
HR把JD挂在boss上好几天了,收到的简历都不不太行,数量和质量都不太行。我就急了,连夜用 AI 编辑了一个招聘海报,把公司简介和岗位JD写在海报上。
招聘组有一个群,HR和老板都在里面,我把海报发到群里,让大家看看有没有问题,没问题我就要推广了。
老板提出了几点建议,然后给了一个公司负责画图的同事的资源,让她第二天给我画一个符合公司规定的海报。
这家公司的HR显然之前没有遇到过在招聘这个事情上,员工比HR还着急的情况,她被我的这个push劲儿给震惊了。当然,在字节工作过的人都知道,这是基操。
我拿到正版的图以后,发在自己的朋友圈,而且在微博上自费花了几百块钱推广。果然简历纷至沓来。
在这里我想说的是:招人是leader的事情,不是HR的事情。
这是一个很基本很简单的道理,招不到人活儿干不完是你业务leader的问题,你业务leader要为公司业绩背指标。HR又不为业绩背指标,难道要HR去着急操心吗?
很多人对于招聘的态度是配合的态度,HR推一下动一下,HR不推就完全想不起来。要是招不到人,就立马把锅甩给HR,说HR工作不力。
如果真的HR工作不力,你就应该跟老板谈,把这个HR换掉,而不是坐等着所有事情搞砸。
这是一个积极性和主动性的问题。
这家公司的HR显然没有想清楚这些,他们许多年来被业务leader PUA的太惨了,也觉得招不到人是自己的问题。
我这么一push,他们自己有些不适应,不过他们自己也明显的感觉到进展推进的很顺利。
我这个积极主动的劲儿,可把她们给感动坏了。
这里我再插一句嘴,任何方向上,想要拿好绩效,都要有这个劲儿:"不是别人让我干这个事儿,而是这个事儿是我自己的事业"。
二
面试的进展顺利不顺利,很大程度上跟这家公司对这个岗位有没有清晰的画像直接相关。在这次招聘中,我心中的画像很清晰。
我的画像就是这个人是前端转后端的履历,前端基本功扎实,并且用nodejs操作过数据库。这就够了。
在看简历的时候,我只看关键词,比如"vue / react / nodejs / express / mysql /mongoDB" 。
只要简历里出现这些关键词,我就觉得OK,就进入下一轮面试。
至于你写的什么"熟练 / 掌握 / 精通" ,我连鸟都不鸟一下。大家写简历的时候也不用在这些莫名其妙的词汇上下功夫。
最好使用数据来描述你做过的项目的复杂度。
比如我独自负责一个大型项目的前端架构,整个项目包含5个子应用,每一个子应用平均包含100+个vue组件。
虽然不知道具体是啥项目,不过听上去感觉就有一些复杂度。
还有一些前端候选人做过IM系统,这时候就不要简单的写"负责过IM",而是写"前端部分承接每天 30000+次IM消息,消息错误率≤1%,消息丢失率≤1%,消息平均延迟30ms"等。
做过IM的人就知道能做到这个指标有多难,看这个指标,猜也能猜出来你们采取过哪些措施解决这个问题。所以看见这个指标的时候,面试的时候该问你啥问题都想好了。
后端项目也要用数据描述复杂度,比如项目总共包含30+张数据库表,最大的数据库表有过亿级别的数据,或者每日增长 40000+ 条数据。最复杂的请求需要垮5个表查询信息,并且响应时间要求在500ms以下等等。
总之用你能想到的一切数据来描述你的项目复杂度,而不是干瘪的写一个"很复杂"。
如果你简历上写了"对xxx有很深刻理解"这句话,那就一定要附上一个你的博客地址。用你的文章或者其他什么内容作品来佐证这句话。否则这句话就毫无意义。
比如我在我的简历上可以说"我对技术管理有很深刻的理解",然后把我现在在写的这个博客地址贴上去。你想想面试官读了这个博客以后心里是什么感想?
筛简历很大程度上是一个赌概率的事情,大部分工程师都不怎么会写简历,所以想要靠简历的内容来提高准确率的希望是很渺茫的。只能靠提高面试的数量来提高最终的招聘成功期望。
所以你的简历提供了足够的关键信息,就很大概率进入下一步。
最后说一句,简历压在一张纸内的说法完全是错误的,有效的信息一张纸完全装不下。
三
我一直对行业内的程序员招聘方式有所诟病,我感觉程序员的面试都特别傻。
面试的时候考知识点,回答上来就是OK,回答不上来就不行。然而每一个面试官心里都知道,对方回答不上来某个知识点,并不代表他真的不行,有可能只是你问的知识点他不知道。
大部分公司的面试实践里,如果某个知识点不会,就要换别的知识点。但是如果换了三四个知识点还不会,那基本就不行了。
这样就很容易导致"面试造火箭入职拧螺丝"和"茴香豆的茴字有几种写法"的问题。
很多年前我参加过一个公司的面试,他们的面试就很独特,给你一个缩微版的任务让你去完成,期间可以自由上网查资料。这种面试方式特别贴合工作中的实际情况,能够全方位考察候选人的能力。不仅能考察他目前知识的掌握能力,也能看出来他借助工具解决问题的能力。毕竟现在谁工作不上网查资料啊,大家基本都快要靠AI写代码了。
所以我设计了一个笔试题,这个笔试题是完成一个简单的博客发布系统。笔试过程要从数据库表设计开始,到代码的实现。
在这个过程中能考察出很多东西,比如对关系型数据库的理解,对HTTP协议的理解,对事务的理解。
候选人写代码的时候,我也会随时监考。你也能从他写代码的过程和顺序了解他解决问题的思路和擅长方向。
眼睁睁得看着候选人写了两个小时代码以后,我无论是给通过的结论还是拒绝的结论,底气都非常的硬。
然而一直以来,我都没有机会实践我都这个想法,因为在大厂,面试的方法都是固定死的,你想要做一点创新,需要面对很多阻力。
这次是个天赐的好机会,我自己终于有机会从头掌握一次自己的命运。
说实话,我设计这个题的过程中,压力是非常大的,因为如果我设计的不好,没有能够考核出候选人的实际水平,就没办法给老板交代,而且也会损伤老板对我的信任。
而且要是设计的太不好,引起候选人的骂街,我可就太下不来台了。
我设计的过程中几次都想放弃了,想着要不然还是按传统的方法来,先求稳比较好。要不作为一个空降leader,连转正期都没过,就把招聘搞砸了,我怎么交代呢?
这个时候我的老板对我充分的信任给了我很大的鼓励。
我把我想用实践类题目的想法跟我老板说了,我老板大力支持,连连说没问题,说搞砸了咱们就再调整。我才有勇气继续推进。
最后的结果也很好,这套笔试题果然很能看出一个人实操的水平,我们也筛选到了合适我们的候选人。