怎样招聘一名科学家
2016年 5月 14号看了韩春雨的事迹以后,很是感动,我于是在微博上谈论一下简历背景是否等于一个人的成就和水平,里面谈及了一些在招聘科学家过程中的遇到的经历和水平的问题。后来,我感觉需要系统得总结一下招聘科学家的流程,一是为了记录下在招聘过程中的一些思考,另一方面也是为了帮助年轻学者或者博士生,能够提高自身的水平。当然,一个高水平的流程,也是对自己的一种鞭策。我时常也会想,在这样的流程里,我是否能够体现自己的能力和水平。
面试的目的
在我们谈论如何建立一个快速有效的面试过程之前,我们一定要弄明白,我们究竟要招聘什么样的人才。面试的目的是让我们的需求和我们要招聘的人才之间建立一个统一。也就是说,我们的流程是为了招到我们想要的人才。对于一个科学家而言,我们关心如下这些素质:
- 科研的基本水平:这里面包括如何查找相关文献;如何把一个工程问题或者是产品问题转化成科研问题,从而利用科研工具解决这个问题;如何完成完成的科研流程(比如提出解决方案,实现解决方案,做实验,写论文专利);如何包装科研成果(比如作报告,向其他工程师讲授内容)等等方面。
- 工程的基本水平:虽然科学家并不是工程团队的工程师,但我们也要求我们的科学家能够理解现在公司的工程框架、代码库,能够在实现关键代码;能够做代码审核(Code Review),能够做非常接近于生产环境(Production)的原型系统(Prototype)。
- 交流沟通能力:能够清晰得阐述自己的观点;能够聆听别人的观点;能够起到科研成果、工程、产品之间的桥梁作用。 团队协作能力:能够在一个科研团队里能够发挥自己的作用,能够帮助团队成功,而不是只关注自己。 好奇心:能够学习新东西,有很强的自我要求。能够在短时间内学习大量的新知识。
面试的目的是要检测出候选人在上述这些方面的一个综合表现。我们后面还会说到面试的各个环节如何考察候选人的这些素质。
除了考察基本素质之外,作为招聘方,还有一个方面需要考虑的是,我们是要招一个“通才”(Generalists)还是一个“专才”(Specialist)。作为很多公司(特别是中小型公司)而言,项目、产品可能会发生反复变化,对于科学家而言,可能需要在短时间里,适应不同的项目不同的方向,这就需要招“通才”。而如果是一个成型的公司,需要在现有的基础上提高产品质量,就需要招“专才”。招聘这两种类型的人才考察的侧重点是不一样的。比如,考察“通才”重点是要看候选人是否能够对于陌生的领域问题有无好奇心、能否利用自己学习的知识分析陌生领域问题。而考察“专才”重点是要看,候选人是否在专注的领域有过硬的基础和深入的理解。
说了这些细节的方针,一个总的原则是,考察候选人的强项,看候选人能干什么。因为很多领域都是非常广的(比如机器学习),我们其实无法要求候选人什么都懂,所以我们不是要考察这个人不懂什么,因为有很多东西不懂是很正常的,而是要考察这个人究竟懂什么,他(她)说懂的东西是不是真的懂,他(她)能否运用懂的东西去解决新问题。
筛选简历
筛选简历是一个很需要细心的过程。对于普通的博士毕业生,我们会很快速看两个方面的信息:
- 是否有高水平的论文发表
- 是专注一个问题或者一个小领域还是很多领域都有论文
- 第几作者
- 论文发表频率,是否是所有工作都是一年做出来的
- 论文档次
- 引用数
- 是否有工业界实习经历
- 是否是研究实习还是工程实习
- 实习的公司
- 是否是同一家公司还是多个公司
- 如果是研究实习是否有相应论文发表
在看了这两个因素之后,我们心中对于这个候选人就有一个很基本的认识。在通常需要高标准的情况下,一个博士毕业生如果没有3-4篇第一作者的高水平论文发表(在毕业的时候,引用数在70-100左右),没有1-2次工业界实习经验,我们就不会考虑这个候选人的其他方面了。除了这两个硬指标以外,我们还会关注:
- 简历里是否有一些信息不完整的部分
- 比如有一些明显断档的经历
- 没有本科学校
- 没有说明博士生导师
- 会什么编程语言和开发工具
- 是否只熟悉Matlab或者R
- 是否有开源项目贡献
- 是否已经有审稿经验
- 是否已经有组织会议的经验
所有这些因素都没有明显问题之后,我们已经定位到了比较靠谱的候选人(通常,只有少数人能够通过上面这轮简历筛选)。我们可以根据实际情况来调整在筛选简历这里的标准线(Bar)从而让候选人能够和我们直接交流证明自己的实力。
这里再说几个比较细的准则:
- 博士生的论文中,非第一作者的一般不算数
- 已经发表的会议论文和同一内容的期刊文章算一篇
- 可以有非第一档次会议或者期刊的论文,但没有第一档次的是不行的
- 如果有单一作者的论文,是一个比较大的问题,电话面试的时候一定要问清楚原因
- 课程项目原则上也不算数
- 简历是LaTex生成还是Word
- 毕业学校和GPA,一般不是很侧重要考虑的问题
再说几个对于已经有工作经验的候选人的简历筛选要素:
- 如果有教职经验或者博士后经验,原则上是一个大问题,需要电话面试问清楚
- 一两年左右频繁换公司是一个大问题,需要电话面试问清楚
这里要多说一句的是,上面这些标准是对计算机相关专业比较适用的准则。而对于数学、应用数学、统计、物理等等专业的人来说,可能有些标准需要重新设定(比如发表论文的标准需要降低)。总之,这里说的是一些比较大的方向,不过在把握了这些原则之后,我们就可以安排少量的候选人电话面试了。
电话面试
在经过筛简历的过程后,电话面试的目的是要看这个候选人是不是像简历里所说的那样有相应的经历。当然,有一些公司在电话面试的时候也会考察候选人解决问题的能力,这也是很经常发生的安排。一般对于科学家的职位,我们需要2-3轮电话面试,包括了解下面这些信息:
- 了解候选人简历上的基本信息,如果简历上有疑点,需要在这个阶段问清楚
- 考察候选人是否能够有基本的专业知识和相关领域的见解,考察候选人是否有其他领域的知识
- 考察候选人是否有基本的专业相关的编写代码的能力
- 体会候选人的表达能力,英语水平
在询问候选人的简历信息的时候,有这些内容是需要弄明白:
- 对于候选人是第一作者的论文,候选人是否能够很清晰说出这些论文的解决问题、思路。在进一步的沟通里,候选人是否能够讲清楚模型细节甚至是公式细节。候选人能够把实验的目的、数据、比较算法讲清楚。当然,这需要面试官做提前准备。同时,询问候选人其他作者在这篇论文中的贡献。
- 对于候选人是非第一作者的论文,询问候选人在这个工作中起到了什么作用。看候选人是否诚实可信,也可以看出候选人的学术道德水平。
- 对于单一作者的文章,需要候选人解释为什么这个工作没有合作人,博士生导师为什么不是合作者,这个论文的研究时间如何而来。
- 对于有博士后经验或者教职经验的候选人,要询问候选人是否分得清楚工业界研究和学术界研究的区别,要询问候选人如果以后有机会,是否还考虑学术界教职。
- 对于有工作经验的候选人,要询问候选人反复换工作的原因,询问清楚候选人在项目里的具体贡献,要询问候选人的职业规划,看职业规划和简历经历是否能够吻合。对于在某一个公司待了很长时间没有升职的候选人,也需要询问一下为何在旧公司里没有其他机会。
在考察候选人专业知识的时候,有这些内容需要弄明白:
- 对于某一专业最基础的一些概念和知识,候选人是否能够清晰地讲解出来。这一条其实很多人很难做到。不少人能够做复杂的工作,却往往在最基础的内容上含混不清。而在一些跨领域的工作中,基础知识往往是一个科学家所能够依赖提供解决方案的最初的工具。所以,基础很重要。
- 候选人是否诚实说明自己懂什么,不懂什么。在广泛的领域里,科学家应该有足够的自信说自己的专长是什么,自己的局限在哪里。
- 候选人是否对跨领域知识一窍不通,还是略有知晓,界限在哪里。
在考察编程水平方面,虽然很多公司已经有比较完备的方案考察软件工程师,但这些题目和考察目的其实不太适合科学家。这需要公司专门针对科学家制定一些考察题目。关于这方面的探讨,我以后还会专门写文章。
在上述考察候选人各个方面的过程中,一个贯穿始终的主题就是要看候选人是不是能和面试人员进行有效的沟通。当然,也要考虑到,有人可能不太适应电话面试,而在面对面的交流时则毫无问题。
现场面试
在经历了简历筛选的流程和电话面试之后,我们已经对候选人有了一个初步的了解:他(她)的背景、熟悉以及不熟悉的领域、编程能力和沟通能力。对于各方面都表现不错的候选人,我们一般就会安排到公司来进行现场面试。对于科学家岗位,现场面试一般包括下面这些环节:
- 一场一个小时左右的学术报告会
- 和招聘经理讨论可能的项目方向
- 和其他科学家、工程师讨论技术和研究问题
- 和人事讨论职位的其他问题
学术报告会是考察候选人学术水平的一个非常重要的环节。因为简历和电话面试都无法系统得看出候选人的整个学术生涯的特征(是偏理论、偏应用,是到处蜻蜓点水似的研究,还是专注某几个问题)。一场报告会,候选人必须能够在逻辑上提供一个链条把自己的学术成果贯穿起来。好的候选人的整个学术生涯都有清晰明确的线条。同时,报告会还是观察候选人是否有清晰的语言组织能力和表达能力的很好机会。有一些候选人连自己的工作都讲不清楚。另外一个需要考察的就是,候选人是否能够在公开场合接受各种质疑和对自己工作的挑战,包括候选人是否能够承认自己工作的局限性和不足,候选人能否礼貌但“到点”(To-The-Point)地回答技术问题。
对于和招聘经理讨论可能的项目方向,很多候选人显得很随意,觉得这就是闲聊。其实这也是观察候选人和考察候选人的一个很重要的机会。首先,招聘经理可以说一些公司的产品或是项目,看看候选人是否有兴趣,看看候选人是否能够通过一些简单的产品介绍,问出一些有科学价值的问题。会问问题,其实是一个非常重要的技能。招聘经理也可以在稍微深入得讨论一些产品的一两个具体的现实问题,看候选人能否快速说出一些解决方案或者是一些思路。在整个谈话中,可以体会出候选人是否只有学术的经验而没有任何产品和产业的“感觉”(Sense)。有一些候选人在这个阶段会显得没法把谈话进行下去,完全是倾听问不出任何问题。这就需要招聘经理仔细控制谈话来看候选人是否对新事物有好奇心,是否能够跟上思路,对新领域新问题有快速的思考。
和参加面试的科学家以及工程师讨论研究问题,主要考察的是候选人在一个类似工作的环境里能否半独立得完成科研解决方案的设计和实现。为什么说“半”,是因为这个环节里,沟通也是很重要的,很多条件、约束和限制都需要候选人和面试人员进行有效沟通来得以清晰化。因此,候选人面对的并不是完全“应用题”似的独立解决问题场景。这里的通常形式是,面试人员针对某个具体的问题,询问候选人如何提供一个有效的科学解决方案。这里面需要注意的环节有:
- 候选人是否能够问出有效的问题,这些问题是不是在帮助候选人自己减少问题的不确定性,帮助候选人自己寻找答案,还是漫无目的地问各种问题。
- 候选人是不是不假思索得就提供一些思路,然后没有认真思考以后又更换思路,反反复复。这是候选人没有系统思维能力的一个体现。
- 候选人的整体思维模式是怎样的
- 先提出一个也许可以解决的多步骤的方案,然后看是否能够简化步骤,然后看能否提出比较规范的数学模型
- 先提出比较完整的数学模型,然后能够根据实际情况简化,提出更加快速的算法
这两种思维模式都是行之有效的思维方式。但是也有候选人在两者之间踌躇,一方面提不出“丑陋一点”的解决方案,一方面完整的数学模型也写不出来。
- 候选人能否在提出基本方案或者是数学模型之后,能够用自己掌握的方法把问题的细节算法写出来,并且能够分析算法的各方面特征。这考察的是候选人解决问题连贯性和独立性。有一些候选人的确能够漂亮的写出数学模型,但是可能完全没法把模型给算法化,写出来的程序惨不忍睹。
- 还有一个需要考察的维度就是,候选人遇到领域之外的问题,是如何思考的。有的候选人就彻底懵了,完全不能理性化得提出任何方案。而有的候选人则会小心翼翼利用基础知识去尝试解决问题;或者是把新领域的问题转化成自己熟悉的问题。
值得注意的是,在这个环节中表现不好的候选人,不管过去的论文、学校、导师经历多么优秀,都要打一个大问号,而事实证明,往往在这个阶段不那么令人满意的候选人,在现实工作中也很难胜任实际的工作。
对于有经验的候选人,这部分的考察重点除了刚才说的解决方案本身以外,还可以看候选人是否有全局观,比如如何设计更加有效的数据通路;比如没有数据怎么办;比如上线以后系统表现不好怎么办。
有一个需要观察的就是,候选人的表现是否在有压力或者劳累(毕竟一天的现场面试是很累的)的情况下有重大波动。优秀的候选人能够通过沟通来缓解自己的压力。
总结
本篇文章简单得总结了招聘科学家的流程,希望能够对于需要招聘科学家的公司有一个抛砖引玉的作用,也希望能够对于找工作的博士们或者已经有工作经验的人有帮助。招聘有时候就像恋爱,也讲感觉,也讲契合度。同时,一个规范的流程只是找到合适人才的一个部分,对于如何挖掘如何考察一个人的水平还有很多方面的工作要做。