【面试总结】谈谈我喜欢的候选人

其实作为面试官有几年了,在第一家公司2016年的时候,就开始这方面工作了,这几年的面试经历中,遇到的多数候选人普普通通,当然也遇到过优秀的,但是非常少。其实作为面试官,我是非常不赞成抛开简历中的项目,直接各种八股文去考察候选人,这样的面试是片面的,还有一些面试官,也是抛开候选人简历,只问面试官自己会的。我觉得像这些面试官,他本身的技能就不是很扎实,不是合格的面试官,但是有很多时候,公司需要大量招人,就会让一些级别不高的同学也去做面试官,就会导致一些问题。那么接下来我就谈谈,我心目中优秀的候选人,是什么样的。

简历

简历很重要,我了解候选人的整体情况,第一印象都来自于候选人的简历。简历如果没有亮点,按照我的经验,多少情况最终的结果都是fail。我们先看看千篇一律的简历,如下:

这个候选人,工作4年,其实也不短,专业技能写的很泛泛,面比较广,这些技能都学的怎么样,通过简历还是看不出来,需要面试中沟通。另外再看项目,就是普通的前端项目,也看不到任何的难点和亮点。所以,像这种简历,第一印象都不是很好,如果学校、工作经历都不好的情况下,简历基本过不了。
那么什么样的简历是有亮点的呢?可以看一下这个:

首先个人优势比较突出,是一个开源项目的主要负责人,并且是vue-router的Contributor,另外在极客帮做过技术分享,这几点就很多人做不到的了。这就是亮点!我们为什么喜欢对开源社区有贡献的候选人呢,因为一般开源社区中比较知名的框架或者技术都是有一定难度的,都是从架构设计到实现,是值得我们很多人去学习的,所以它出名,而对于这些优秀的开源项目有共享的同学,他们对其实现肯定是了解甚至掌握的,而这就是体现出了候选人的实力。
一个人的亮点可以是方方面面的,比如曾经写过《xxx》书籍,在公司申请过《xxx》专利,甚至你在leetcode上涮了200道题都是你的亮点,如果你说我就是没有亮点,那我觉得就是懒,行动上和思想上都懒。那为啥优秀的那个人不可以是你呢?

技能

我一般在面试中,除了计算机基础之外,基本上都是会按照候选人的简历去聊,由浅入深,探索候选人的深度,比如候选人主要用的技术栈是react,那我会先聊一下react的一些特性,比如生命周期、一些副作用的操作在哪里写比较合适。再往深聊,就会问一些react优化的问题,hooks的使用。如果候选人答的不错,我还会往原理上聊,比如如果要实现一个xxx需求,如何写一个自定义hooks。再往深聊,就会聊到react设计、源码这部分,如果候选人能把所有问题都答的非常好,那就是牛批的候选人。这是深度。另外也会探索一下候选人的广度,比如跳出浏览器会问一些其他的技能,比如nodejs、数据库、运维相关的,如果候选人平时后端需求也写,那可以理解为是一个全栈工程师,这样的候选人有个优势就是面对一些复杂的场景需求时,可以自己搞定,进来也好带,不用特别费劲。如果技术的深度和广度都没问题的话,我可能还会问一些解决方案的思路,比如一些工程化问题,如何分析公共依赖,确定前端页面的回归范围、如何统计相似函数以提升代码质量等。总之我的面试中,可能会问很多原理性问题,如果我们聊的来,那我觉得你就是我喜欢的那种候选人。

代码能力

我的面试中,一般都会有代码题,题目不难,都是leetcode中简单题目。考代码能力的主要目的,不是为了考的你不会,而是看你的代码能力过不过关,主要看你的代码速度、代码思路、代码规范等,通过你写代码,大概能了解你的代码能力,甚至你的性格。因为个别候选人,理论知识确实不错,进来写项目需求的时候,巨慢,这种就是代码不过关导致的问题。

软性技能

软性技能的话,对于候选人来说,可能比较好答一些,但是也分好坏。这个就是主要观察一些候选人的沟通能力、性格之类的,可能更具候选人的性格,也需要安排不同的工作,比如内向一点都,可能会擅长偏技术攻关之类的工作,因为偏内向的人,一般都有一定的耐力或者耐性。对于乐观开朗一点的候选人,会适合做一些需求联动的工作,因为他擅于和各种人(测试、产品)沟通,也会促进工作更好的完成。
另外就是看看他的一些学习渠道,比如喜欢看凯源的一些技术或者框架,那可以看到这样的候选人对技术还是有热情的。喜欢看书、看博客,这样的候选人也是喜欢学习的,像这样的候选人,我也比较青睐。

总结

我觉得以上几个方面做的不错的同学,我觉得就是我喜欢的那类候选人。