..

近期面试工作的一些感想

最近几天,我参与了几个后端实习生的面试工作,有些感悟,分享给大家。如果你是大三阶段正在找工作的同学,希望能给你带来一些帮助。

先说说从企业的视角,希望要什么样的实习生。不同的公司对实习生的要求是不一样的。我们公司虽有点规模,但比起大厂体量还是差了很多,没有那么多培养实习生的资源(包括时间和人力),所以我们公司招收实习生的视角,比较务实:希望实习生有不错的基础和快速的学习能力,稍加培养,即可开始为团队产出价值,能和团队成员共同成长。

具体来说,我自然是希望实习生的学科基础越扎实越好,实践经历越丰富越好。不过,这种又有理论基础又有实践经验的同学,我们一般称之为大神。人还是要有自知之明,公司的团队也是,在自己的边界内做事,招人。

退一步的话,我希望实习生,要么是具有比较丰富的实践经验,毕竟,能在大学期间就有不少代码实践经验的人,从能力上来讲也往往是公司需要的人;要么,具有不错的学科基础,比如对计算机网络、数据结构、操作系统等课程的了解,因为这在一定程度上能证明一个人的学习能力。

说到学习能力,我多说两句。我对实习生的评估过程中,最为看重的就是学习能力,因为进入公司后,总是会接触到很多全新的,以前从未接触过的东西。当新事物一下子太多的时候,学习的过程甚至会从非舒适区,落入痛苦区,这对人来说是个考验。还别说实习生,对于已经工作两年的我来说,一脚踏空踩进学习痛苦区也是常事。

举两个例子,同学A和同学B。

电话面试时,我问到同学A用没用过Git。A:”听说过,但没用过”。他又补充道,”如果需要我学的话,这个东西我之前看过一点,我觉得不难,一天之内应该就能掌握”。没错!这对我来说是极大的加分项。在我看来,如果你相信你一天之内能学会Git,那你就是能学会。

面试同学B时,我问他:”看起来你只学过Java,但我们的基础栈是Python为主的,如果要你快速学习Python并加入开发工作,你有信心吗?”这位同学很犹豫,他觉得之前一直在学Java,如果这时候学新东西,觉得有种前功尽弃的感觉。我给了他一些建议,比如哪些地方可能对Java更欢迎一些,然后默默pass了他。

同学B是一个比较极端的例子,但在这几天整体的电话面试过程中,是能感觉的到不同的人,对学习新知识的热情是不同的。有些人能够诠释”Stay hungry”,有些人对新知识表现出很强的不自信。在短暂的电话面试过程中,也许很难评估一个人的学习能力如何,但是对于学习新知识的信心,基本能够探明。

话说回来,刚才说到,我希望实习生要么有不错的实践经历,要么有不错的学科基础。如果两样都没有,怎么办?态度是第三个因素。如果我感觉面试者的态度积极,表现出很强的学习欲望,或是有一些属于他自己的想法和见解,我还是愿意给这样的人进一步面试的机会。

属于自己的想法和见解,这是什么意思呢?我比较看重这一点,因为我觉得具有这样素质的人,在面对不确定性和变化时,会更加游刃有余一些。我在面试同学C的时候,同学C反复向我表达过一个想法,就是希望公司能够对她的职业发展有一个培养和指点,并且给我的总体感觉就是不自信。因为我们团队乃至我们公司,更像是一个小型的创业团队,而不是一个稳定的大规模团队。稳定是相对的,变化是绝对的,所以我是希望能招来一些主动性强,有一定自主判断能力的同学。

简历中还有一个很常见的坑,就是”熟悉”。请一定谨慎使用熟悉这个字眼,因为我在面试过程中,尤其是觉得这个人的项目经历没什么可聊的时候,我就会比较深入地问简历上自称”熟悉”的地方。举几个例子。

自称熟悉Linux,我问怎么查看当前路径;”cd ~”是什么意思,怎么查看当前的进程,都不知道。

自称熟悉TCP/IP网络模型,我问TCP/IP分层都是啥,TCP三次握手过程是啥,都不知道。

自称熟悉Python,问list和tuple有啥区别,一点都不知道。

这就很难办了嘛,我这人比较较真,如果你在简历上写的是”了解”,我也不会有什么想法。

我给实习生面的一些基础知识的考察,我会参考我曾经的面试经历(自己参加面试的经历)。我们不是大厂,对实习生不会问很深入的基础知识和算法(甚至基础的算法也不怎么问,主要考察一些概念,能讲清楚概念就是很大的加分项)。比如,我们日常工作中,网络和Linux相关的知识用的比较多,如果你在简历上提到,我就会多问几个问题,主要就是考察你是否真的用过相关的内容。其实,面对技术问题,不知道不要紧,如果能坦诚大方地表示自己不懂,或者能表达出一定的利用已有知识进行推理、猜测的能力,也会是一个加分项。

举个例子,昨天和一位我很认可的学弟聊了聊。我问他是否了解如何观察Linux系统的负载,我给出了一个引导,跟他说了一下Load Avg的取值范围,比如没什么负载的时候是0到零点几,负载很大的时候是10以上。我让他猜测这个值的背后含义是什么。他能够猜测出这个值跟进程状态的数量有关系,这就说明他真的对操作系统的知识有一定理解,而不仅仅是应付考试。

实际上,有一种简历的构成成分是这样的:专业技能=学过的课,项目经历=做过的课设和毕设。这样的简历其实很容易问出来,因为如果你真的对某项技能有过实践经历,或是对某类专业知识有真正的理解(而不仅仅是刷题考试),总是会有一些可说的东西。我一般管这种简历叫白板简历。

这几天我也认识了一些我真正认为靠谱的同学,看看后续发展,如果能够成为同事,我再和大家分享这些人的故事。还有就是一些对硕士生实习生的感觉,有机会也会和大家分享。