研发面试官的面试指南(二)

除了面试流程,研发面试最关键的还是技术面试环节,这个环节要确认应聘者的技术基本功是否扎实,以及技术的深度和广度,与公司部门的技术栈是否匹配等等。

技能考察

面试过程中除了通过项目了解应聘者外,还需要通过一些技术问题来了解应聘者的真实能力。

技术基础

这里以前端岗位为例,技术基础就是JS、CSS和HTML。这方面的问题网上都有很多人做过总结,所以尽量不要问一些烂大街的问题,可以结合平时工作遇到的问题来进行提问,或者内部团队专门设计一些巧妙的面试问题来考验应聘者。

技术问题可以结合公司的技术栈提问,比如公司用的ReactNodejs,就可以问一些这方面相关的问题。

手写代码

很多人讨厌 Google 公司的“白板面试”环节,我觉得讨厌的原因主要是要让应聘者手写二叉树查询算法这种太过困难的任务,在很多实际项目开发中很少涉及到复杂算法,更不要说手写了。
但是我觉得考察应聘者手写代码的能力还是有必要的,特别是没有笔试环节的情况下。可以出一道简单的编程题目,让应聘者通过编写实际代码或者伪代码来解答,主要考察的是编程思路,代码编写规范等。
有些应聘者在自己的项目上说的头头是道,但是一旦要实际写代码却困难重重,这个时候就要质疑应聘者的实际能力了,如果是天天和代码打交道的人是不会写不出代码的。

项目管理(可选)

如果面试的岗位需要带团队做项目,就可以提问一些项目管理相关的问题。可以从以下方面了解:

  • 如何把控项目进度
  • 如何保证项目质量
  • 如何汇报项目进展
  • 如何让新人快速融入团队
  • 等等

代码质量

优秀的研发人员对代码是有要求甚至是有洁癖的,可以从以下方面了解:

  • 有没有做过code review?有的话是怎么做的?一般会对哪些代码提出建议?
  • 最不能忍受的代码是什么样的?
  • 项目中有没有做自动化代码检查?(比如前端的话是否有用Lint类的工具)
  • 有没有写过单元测试?平时单元测试用的框架是什么?好的单元测试一般是什么样的?
  • 等等

过程控制

效率高的研发人员会对软件开发的流程有一定的了解和关注,并且有自己的一套方法方式,可以从以下方面了解:

  • 什么是持续集成和持续部署?持续集成用的哪些工具?
  • 平时项目中的持续集成一般会做一些什么事情?
  • 对敏捷开发是否了解?平时的开发流程是怎么样的?
  • 拿到开发任务后有没有对任务进行拆解?有的话是如何拆分任务的?
  • 等等

学习和分享

爱分享的研发人员一般能力不会差,可以从以下方面了解:

  • 最近了解到的最新技术是哪些?
  • 平时是通过什么渠道了解技术资讯的?
  • 是否经常写博客?
  • 是否参与开源项目?
  • 等等

其他方面

最后可以从其他方面了解应聘者的综合能力,可以从以下方面了解:

  • 感兴趣的技术方向(看是否与公司部门的技术方向匹配)
  • 文档能力(具备良好的文档编写能力绝对是加分项)
  • 沟通能力(是主动沟通还是被动沟通)
  • 抗压能力(面对压力时如何应对)
  • 等等

总结

仅凭一次面试就想真正了解一个人是很难的,但通过以上方面可以把握一些正确的选人方向,后面再继续讨论面试过程应该注意的一些事项,以及如何提高面试的效率,敬请期待。

Comments