假如目前项目稳定,未来一年半年有新的业务方向,还需要人手,这个时候,我们就可以考虑一些实习生和两年内经验的小伙伴们了。
本科以上学历,1 年左右经验,前端基础扎实。
这类候选人的经验比较少,可以在学历上设置一些门槛。确实对于经验不具备参考价值的同学来说,学历和专业几乎就是你的评估标准。
因为短期没有项目紧逼,所以我们有时间去培养上述的这类新人,为团队注入新鲜血液。一个团队中,老人有老人的优势,新人也有新人的好处。
新人一般年轻,会为团队带来活力,并且做事有时候会比一些老人积极主动。同时呢在新人和老人“学”与“带”的过程中,可以促进团队分享交流,互相磨合,这也是必不可少的。
不过要注意,这一类经验不足的候选人,需要在试用期内做好考核。因为有些新人可能缺少主动思考,也遇到过包装简历这种,这时候就要在试用期内及时评估候选人的能力,看是否适合团队。
招一个候选人,越厉害越好吗?
以前我这么想过,抛开成本不谈,当然招过来的人越厉害越好啊。
但是后来我发现,事实并不是这样的。
首先,一个人的经验能力与他的配合程度几乎是成反比的。以上面说的情况一为例,你有了技术方案,需要招一波人进来快速推进,你希望这些人执行力强,指哪打哪,干就完了。
但是一个4-5年的程序员,他一定会有自己的思考,做东西不会拿来就做,脑子里会有“优化思维”。比如他拿到任务,觉得代码不合理不规范,忍不住就想要先优化。他会思考为什么要这样做?换一种思路能不能实现?换一种方案是不是代码更少?
这种思维没有问题,并且非常难得。只不过在项目推进的过程中,比起优化,快速执行的优先级显然更高。这个时候你就会发现,反而是那些无条件执行命令的“兵”,协作起来更顺利,更容易带领他们将项目快速推进。
所以呢,招聘候选人绝不是越有经验越好,越厉害越好,适合比经验和能力更重要。你要从团队协作和组成的角度去看整体缺乏哪些能力,而不是专注于某一个人。
因此在招人之前一定要想明白,我招他来要做什么?然后再去寻找适合的人。
本科生一定比大专生好吗?
我面试过的候选人里,本科生和大专生五五分吧(专升本暂时算是大专生)。总体看下来我发现这两波人还是有比较明显的区别。
以相同的经验(如3年)为前提,如果你问一些原理性的东西,也就是我们说的八股文,本科生答的相对比较好,这方面大专生就不会那么全面。
原因的话可能是本科生有计算机基础,或者应试能力比较强,准备比较充分,总之我的感觉是本科生在理论概念和言语表述方面确实比较突出。
不过呢从简历来看,本科生的技能清单中 Vue/React/性能优化
居多。再看大专生,我常常会看到一些惊喜,如 nodejs/linux/flutter
,很显然他们的接触面更广,尝试的东西比较多,细问起来的确是做过不少实践。
这个也是有迹可循,我听到最多的讲述是因为学历不好,所以只能在项目上面下功夫,尽可能的多接触多实践,深挖技术,我为这类的大专小伙伴们点赞。
在4年左右这个阶段,我还是比较喜欢项目经验丰富,有攻关能力和主动探索能力的人。
抛除学历和算法,如何评估候选人的真实能力?
众所周知,大厂面试筛选,首先看学历,其次考算法,这是职场进阶的两道门槛。
但是有学历,懂算法的人,工程能力和编码能力就一定强吗?其实未必。只不过大厂领头,小菜跟风,社区里大厂面试八股文的博客大受欢迎,可是真正的如何考验一个候选人的能力,反而很少有人分享。
比如我司是一个小公司,面试基本不看学历,因为人不好招,你再设置条条框框那就更难了。当然了算法也不问,最多问点八股文,然后就是项目经历,做过什么,解决过什么问题。
不看学历,算法,八股文也不多,那么 项目经验 就成了考核的重中之重。如何从候选人的项目经验中问出真实水平,这里分享一下我的个人小技巧。
当我拿到一份简历,我会先找这哥们最擅长的是什么。甚至当对方简单介绍完自己的项目,我会直接问他:你最擅长的是什么?
在我看来,一个有经验的前端,写写vue页面,排个版,做个状态管理,绝大多数都没有问题。但是一个人最擅长什么,一方面能体现出他的经验和沉淀,另一方面能体现出对这个领域喜欢,感兴趣,钻研了,所以才擅长。
当我得知对方最擅长的是什么,那么就可以沿着这条线往深了问。比如对方说我擅长性能优化,那么我就接着三连问:
1. 为什么要做性能优化?
2. 怎么做性能优化?是否了解过其他方案?
3. 现有方案有什么问题?有没有改进思路?
第一问是为什么,这个非常关键。当你使用一项技术,一定是为了解决某个问题。如果你不清楚为了解决什么问题,只是因为别人在做所以我也做,那么很难理解这项技术的精髓。
第二问是怎么做,这是个选择项。一个问题会有许多个解决方案,当你选择某一个,一定是经过调研和对比,发现了它的优势,所以才会选择它。这个如果说不出来,那么当你遇到问题需要找解决方案的时候,你可能很难找到最优解。
第三问是改进思路,这是考复盘能力。当你做完一个功能,可能并不完美,或者只是解决了当前的问题。善于思考的人会复盘,我这个功能还有什么不完善的?未来有哪些隐患?然后在后来的某个时间处理掉它。
如果你完成了任务就扔到一边,没有更多思考,那么长远来看,你完成工作的质量偏低,评估风险的能力也会低。
上面的三个问题,综合下来就是挖掘对方 解决问题的能力,或者是做事的思维。因为你问的是最擅长的嘛,所以也不会因为正好碰到了对方的短板而漏掉合适的候选人。
还有一个必问问题:
4. 聊聊你遇到过最困难的几个问题,最后怎么解决的?
这个话题非常好,聊最困难的问题,几乎可以看出对方的技术深度。然后越困难的问题解决过程可能越刁钻,你们可以聊尝试过哪些方案,这些可以帮你判断对方的思考能力和实践能力。
并且这个话题也能体现出一个人在团队里承担什么样的角色,如果这个人加入你的团队,那么他多半也会是这样的角色。
大概就讲这么多吧,个人理解偏多,也许并不普适,欢迎留言区讨论。
更多推荐
最后
四轮技术面+一轮hr面结束,学习到了不少,面试也是一个学习检测自己的过程,面试前大概复习了 一周的时间,把以前的代码看了一下,字节跳动比较注重算法,面试前刷了下leetcode和剑指offer, 也刷了些在牛客网上的面经。大概就说这些了,写代码去了~
祝大家都能收获大厂offer~
篇幅有限,仅展示部分内容