这一周在广州校招, 作为面试官负责一二面的面试. 五天下来一共面试超过 30 人, 看着他们当中的一些人, 就如同看到五年前的自己, 有些感触, 特此记录下.
作为候选人, 可能对面试官考评自己的准则并不完全清楚. 这里介绍下我个人是怎样为候选人打分的.
一面: 基本条件
因为候选人都是应届毕业生, 我一面会注重基础的考察, 尤其是对于应届的本科生更是如此.
主要的考察点:
- 数据结构
- 算法
- 操作系统
- 计算机网络
- 1-2门候选人熟悉的编程语言
一般会从编程语言开始, 以算法结束, 每个方面考察 2-3 题. 出题的范围一般都是书上的基础内容, 或者稍微加一点变通. 候选人在某一方面如果答错题超过 2 道, 在这一点上的得分会在基本分数之下, 需要有其他表现比较突出的点才能够弥补. 从面试的经历来看, 对基础知识的掌握, 大多不够扎实, 很少有答的都不错的. 怀疑候选人花了太多的时间在刷复杂的算法题, 而忽略了很重要的基础如计算机网络方面的知识.
候选人有不少是来自电气, 自动化等专业. 对于非计算机专业的学生, 操作系统, 网络, 编程等素养稍微弱一点可以理解, 但要求数据结构和算法比较突出.
对于比较难一点的题, 我一般会分阶段给出关键性的提示. 是否需要提示, 得到提示后能否给出正确解都会有不同的评分. 如果候选人初始能有原理接近的思路, 也会有得分.
总之, 对于一面而言, 以下的候选人能够通过:
- 综合基础 ok, 没有明显的短板
- 有突出的表现点
二面: 脱颖而出
进入到第二轮面试的候选人水平都还可以, 但依旧可能有超过百分之五十的淘汰率. 此时, 仅仅只是综合基础 ok 不足以让候选人脱颖而出, 而是需要有突出的点. 举几个例子:
- 算法很强, ACM 参赛获奖经历显著. 单纯有 ACM 经历或者得奖不出众, 并不能得到额外的加分. 如果有 ACM 经历的人在算法和数据结构上表现上较弱或者发挥不好, 甚至会带来一定程度上的减分.
- 表达, 沟通能力很强. 记得有位香港科技大学的硕士生, 基础只能算比较扎实, 技术能力其实一般. 但沟通能力强出一般的候选人一截, 表述非常精炼, 对问题的定位很精准. 这在应届生中其实是普遍缺乏的, 无疑会给他带来加分.
- 聪明. 基础一般, 但如果面试的过程中, 能够让面试官觉得你很有一股聪明劲, 如逻辑严密, 反应快. 这会让面试官认为你的学习能力不错, 得到加分.
- 有领域相关知识. 如大数据处理, 机器学习, 数据分析.
- 对某些技术点有较深入的理解.
- 技术热情.
- 特别. 记得有一位专业是应用化学, 自学编程的本科生, 实力只能算一般. 虽然人比较内向, 但另一位面试官和我都觉得这个人很扎实, 并且从化学转编程比较少见, 都愿意给他一个机会.
个人进行二面时, 主要是基于一面的面试记录, 做相应的补充, 问题会问的比较随意. 对于候选人在一面中表现非常突出的点, 可能会做一下复核. 对于候选人在一面中表现较差的点, 会询问其这方面是否较弱或者没发挥好, 如果回答上掌握得还可以或者没发挥好, 我也会进行下复核, 但往往结果和上一位面试官一致. 最后, 就是询问候选人是否有其自认为很突出的点, 或者很擅长的方面.
三面
鉴于本人还没有资格做三面的面试官决定候选人最后的评选, 这方面暂不献丑.
简历
简历中列出的项目, 技能点绝对不是越多越好. 如果对项目的理解程度不够深, 对知识的掌握点不够牢固, 被问到如果答不上可能会被减分. 同时仅仅是了解或者最基本的使用, 没有足够的深度, 不会带来加分.
候选人可以在简历上写对某一方面感兴趣, 这会让面试官觉得你有自己的思考. 但对于”了解原理”, “掌握”等词语一定要慎重使用, 除非真的掌握的比较好.
其他
从上可以看出, 候选人要从校招中拿到 offer 并不容易. 从笔试到最终发放 offer, 简单计算下就知道比例肯定不到 10%. 靠运气过关的成分很低, 唯一能够依靠的是超出常人的实力.
拿个 offer 尚且如此, 一个产品, 一家公司要想脱颖而出, 更加何其难也!