什么是一个优秀的校招候选人

作为面试官面试过数百候选人,深知招人难,招合适的人更难。同时,所谓“良禽择木而栖”,找一份自己满意的工作也并非易事。社招由于岗位职责的不同,与校招的标准有较大区别,下回分解。今天我们从面试官的角度来聊聊,对于技术研发岗,什么是一个优秀的校招候选人。

思维敏捷,基本功扎实

从招聘方的角度,肯定是要招smart的候选人。而如何定义smart,则主要体现在思维的活跃度上。

从面试官的角度来看,好的学历背景可以为你的能力背书,第一印象非常重要。不过不必担心,既然你能进入面试环节,说明学历和项目背景已经过关,不必过分焦虑。

如果是计算机相关专业,要保证专业基础扎实。比如计算机体系结构,操作系统,数据库原理,计算机网络,编译原理等。如果面试的是算法岗位,则需要复习传统机器学习,深度学习,数学分析,高等代数,概率与统计等。值得一提的是,如果是计算机科班出身,至少需要了解一门除Python之外的面向对象的语言,如C++或Java。否则,编程能力和好奇心可能不足,对软件工程的认知也有所欠缺。

提到好奇心,就谈谈了解项目全貌的问题。候选人在学校或之前的实习岗位往往会参与到大项目中的一个模块。在介绍项目时,最好可以先简要地说明项目背景,再谈及自己负责的模块。听起来很简单,实际上一定程度上反映了候选人是否有足够的上进心和学习能力。一个只关心自己一亩三分地的人,上进心和主观能动性可能不足。

沟通顺畅,逻辑清晰

记得当年面试完Google,面试官问我有什么问题,我问了句:“您工作这么多年,工作上除了技术本身,最重要的能力是什么?” 当时他想了一下,然后回答说:“沟通,沟通能力是最重要的。”多年过去,自己也有了切身体会,沟通和表达确实是一名优秀研发人员必备的素质。大到项目立项和架构设计评审,小到feature设计的确认,每天都要花大量时间在与其他人沟通。因此,沟通效率就显得至关重要。

与有些候选人沟通非常费劲以至于面试都不想进行下去。一种是话非常密但毫无重点,问任何一个问题他都能东拉西扯说上一大堆,不正面回答问题。给面试官的感受就是每个字都听懂了,连起来不知其所云。另一种是问什么答什么,多一个字也不愿意说,好像是你在恳求他告诉你祖传秘方。

比较好的表达方式类似于写文章,自上而下地阐述。先给出对于问题本身的总结,然后可以具体描述下解决问题的思路,其中穿插着遇到的的困难与挑战及对应的思考,作适当的展开,最后一两句话做个总结。

所以当我希望与面试者探讨项目时,会如此引导:“挑一个你觉得有意思或挑战的项目,说下有什么问题,如何解决的问题,及最终的结果怎样?”

当然,表达和沟通能力的锻炼,需要长期不断地训练,或者说是一种自身特质的体现。如果自己目前表达能力确实欠妥,也不要刻意强求这里提到的表达方式,有可能东施效颦。建议先用自己熟悉的方式把问题描述清楚。

态度端正

从面试的过程来看,面试双方并不对等。但从结果来看,双向选择,公司在选择你的同时,你也有权选择公司。因此,在面试的过程中,要有不卑不亢,保持谦虚的态度。即使遇到了比较难的问题,或者之前的表现不太好,也不要影响自己的情绪,心态平和很重要。

面试过程中,面试官可能会不断地横向扩展和纵向深入,直到问到候选人答不出来为止。这样做有两个目的,第一如前所述,考察候选人知识的广度和深度,所谓知其深浅;第二考察候选人的态度,是否主动积极,乐观向上,以及是否有钻研精神,不轻言放弃。

一些很好的面试题会从实际业务中抽取,并去除业务背景上下文。有些候选人遇到这类问题会马上说:我不会。这是个非常不好的信号,即使没见过,也应该比较积极地面对,即使不能找出最优解,至少也应该做些尝试。工作中常常会遇到没见过且很有挑战的问题,你能直接对老板说“我做不了”吗?这时我往往会进一步引导:“这个问题不难,现想就可以,能考虑一下吗?”如果候选人依然后退,可能就会影响到面试结果了。

知识面丰富,准备充分

简历内容准备要足够充分,保证自己简历上的内容及其扩展是非常熟悉的,否则就从简历中删除。一般来说,当简历相关内容都不能很好地回答时,会使面试官对你的印象分大减。甚至会考虑:是否简历上的其他内容也有一定水分?

在技术层面的知识面广且成体系。本质在于解决问题的思路是否开阔。比如秒杀系统设计,作为后端研发,可能仅考虑了系统扩容这种非常直接和硬核的方案,而忽略了从前端提前过滤的手段。在工程应用中,常有许多巧妙的设计可以大大降低系统复杂度和成本。而此时就需要研发同学的思路开阔,想法多样。

其他

如果面试官能感受到候选人非常热衷于技术,或者说是个Geek,自然是极好的。但就我遇到过的很多Geek,短板也比较明显,可能会比较坚持自我,习惯单兵作战,或者技术完美主义。这种习惯源于技术实力的自信和技术至上的执念。就个人而言,无所谓好坏。但对于团队而言,这样的候选人可能管理成本较高,同时可能无法与团队很好地协作。如果你也是个Geek,可以适当地收敛下锋芒。

面试末尾的提问环节,不要问“我今天的面试表现如何,是否可以通过面试”。第一,这样的提问比较尴尬且不专业,面试官无法正面回答你的问题。第二,显示出你的不自信,表现好的候选人往往不会问这样的问题。

在讨论问题时,结果可能并不那么重要。重要的是面试官和候选人是否能一起慢慢找出解决方案。可以把面试过程当做实际工作的缩影,当你和面试官在同一团队遇到有挑战有难度的问题时,以你为主如何想出多种方案并比较优劣,最终解决问题。所以,在面试的过程中要放轻松,一个好的面试官带来的感受不是他在面试或不断挑战你,而是你们一起接近最终目标的过程。

候选人的责任心,也就是靠谱。所谓“事事有回音,凡事有交代”。可惜的是,这一点通过短短一小时的面试是看不出来的,或者说不能显式地体现,只能是面试官通过各种细节进行大致判断。但作为候选人,可以通过交流的方式,说话的表情和语气等等方面来尽力传递“我很靠谱”的信号。相信聪明的你在实际生活中肯定有这样的体验,觉得某人特别值得信任(这个感受可能是玄学 :-) )。

上面所谈到的许多优秀候选人的特质,如smart、沟通能力强、基础知识扎实和对技术的热情等方面,都非一朝一夕所能习得,都需要长期不断地学习和积累。所以准备面试也不要急于求成,要注重在日常工作和学习中一点一滴的成长。

最后想说的是,面试和其他所有事情一样,要看缘分。俗话说得好,在你进门的前三分钟,面试结果就已经定了。剩下的时间都是在为这前三分钟的结果找论据。所以放平心态,双向选择,总有一个合适的岗位在等着你。