俗话说,知己知彼,方能百面不挂,offer拿到手软。这个“彼”,就是面试岗位的任职要求,以及招聘公司的面试套路。
作者不才,最近几年在不同的公司里,招聘了近百人,面试了数百人,筛选简历更是无数;总结这几年所使用的套路,供大家参考。
任职要求
只要是互联网行业研发类的岗位JD,对候选人的要求,都可以概括为以下三大点十小点:
专业技能
软件开发能力。这部分包括数据结构与算法、语言基础、高并发高性能、框架/中间件、数据库基础等等。
系统架构能力。这部分包括架构基本原则、常见的系统架构模式以及问题、过往的系统经验等。
线上运维能力。可以在生产环境的压力下,快速定位和解决线上问题。
职业技能
业务理解能力。技术是服务于业务的,如果业务意识提不上来,只揪住技术细节 或者 只看到自己开发的小功能,那是万万不行的。
项目管理能力。没有单打独斗的岗位,只要涉及到多人合作,就需要项目管理能力,至少要有项目管理的意识。
通用能力
沟通表达能力。表达自己的见解、技术方案评审、产品需求评审、串讲/分享,等等,都是对沟通表达能力的要求。
解决问题能力。如何定义问题、抽象问题、拆解问题、设计方案、复盘总结等,是否有一套解决问题的框架。
学习能力。不用多说,快速学习一个知识、接收一个新业务或者新系统的开发等等
影响力。是否有更多的人听信于你、相信你的所说、所做。是否能做到“让人可依赖”等等。
结果导向。不用多说,结果说话。
如冰山模型一样,专业技能是最容易被看见的,也是最容易被训练的,刷题、面试宝典、面试指导课程,总有一样适合你。
而通用技能,是最不容易被训练的,但恰巧是发挥威力最大的一项。专业技能可以决定一个工程师是否入门软件开发这一行业,而通用技能,则是决定他走得远不远、走得顺不顺。
职业技能,则介于二者之间。
面试套路
作者近年一直遵循的面试流程,分为三个部分:
个人介绍。
项目经历。
写段代码。
对公司/岗位/业务的问题。
个人介绍,一来可以让我快速对候选人的主要经历做个判断,二来也可以缓解候选人的紧张情绪。通常这一部分是最轻松的,如果候选人显得紧张,还会插入一些生活类的话题。
项目经历,快速过一遍简历上的所有项目,然后挑选一到两个候选人最自豪的项目,进行深入探讨。内容包括 画系统架构图、业务流程、技术难点、线上问题、重来一次如何做等等,了解其在系统架构设计、中间件灵活运用、线上问题排查、业务理解等方面的能力。如果需要,还会问候选人在项目中是否获得其他同学的帮助等,以判断其团队合作性、是否正直等。
写段代码,通常是一道数据结构或算法的题目。该部分主要看两方面特质,问题解决能力 和 代码能力。相比代码能力,问题解决能力是比较难考察的,一道Easy题目可能谁都会,一道Hard题目可能就会没思路,即便多次提示也见得有好的结果,所以我通常会从候选人项目经历中抽象出一道题目。 代码能力,不用多说,有部分候选人对JVM/GC等基础说的头头是道,但连最简单的双重循环都写不利落。。
对岗位的问题,不会提问题的人不是好的候选人。因为软件开发是一门知识型工作,我们不需要执行者,而是需要思考者。 当然,最好不要问 福利、上下班、面试结果之类的问题。建议候选人问面试官以下问题:
当前业务发展的瓶颈是什么,研发可以在其中发挥什么作用。
当前系统的技术瓶颈是什么
如果我加入后,一天的工作安排会是怎么样的
在一次时长一小时的面试中,个人介绍占5-10分钟,项目经历30-40分钟,写段代码15-20分钟,最后的提问5-10分钟。
二者关系
用一个表格总结一下,任职能力 是如何在面试环节中被考察的。
从中可以看出,
某著名的红黑树公司,是承担了多大的误解。
对于有工作经验的社招同学来说,一定要对项目经历做好充足的准备。
福利推荐
福利来了,通过本公号进行内推,你可以获得:
简历指导,包括项目经历指导和表述指导。
投递岗位指导,减少不必要的面试投入。
内推奖金返回。
联系客服