程序员人生 网站导航

Amazon前技术副总裁解剖完美技术面试

栏目:程序员面试时间:2014-09-22 08:00:00

  英文原文:The Anatomy of the Perfect Technical Interview from a Former Amazon VP

  编者按:本文来自First Round Review,他们准备的文章既讲故事,还同时向创业者提供可操作的建议,以助力打造优秀的公司。

  Neil Roseman 厌倦了硅谷公司“我们只要最优秀和最闪亮人才”的口号。因为无论怎样强调,在真正招新时,多数人还是凭借自己的直觉,和应聘者的基本资格而定,例如 GPA,是否来自藤校,有无大公司的工作经历—甚至是 SAT 成绩。

  Roseman 对这样的考核标准不以为意。对曾在 Amazon 和 Zynga 任技术副总裁,面试过数百人的 Roseman 来说,面试的每个环节都需要被一丝不苟地设计。只有这样,才能从面试中挖掘出有真才实学的,契合企业文化的,且有领导者潜质的应试者。下面,Roseman 分享了他的面试哲学,解析他是如何挑选人才的。

  在10,000英尺的高度上

  关于面试,有一些需要遵循的基本组织原则,能帮你拟定一个清晰的计划。

  • 在每个面试结束时,你都应该对这个应试者是否会对公司带来帮助有基本的评估。
  • 成功的面试要花功夫。从面试前对简历的了解,到面试本身,再到后期总结讨论,都要当其是工作一样认真对待。
  • 在面试开始的1分钟内,你会对应聘者形成初步印象。在剩下的时间里则要使这个印象无效。
  • 大量做笔记,以得到强有力的证据选择或放弃应聘者。
  • 多数情况下“最优秀和最闪亮”的人都已经有工作了。因而你真正要做的是在可选人才中挑出最好的。另外,因为你无法对招聘结果进行A/B测试,你无从得知是否挑到了对的人。
  • 依然力求将巨星式人物纳入麾下,但也明确并非所有人都有“水上飘”的功夫。只要他们在某些方面超越现有员工且有潜力就足够了。
  • 要找那些聪明的,能完成任务的,对特定职位有相应技能的人。

  筛选简历和设计问题的正确方法

  简历通常都是第一步。然而,简历并不能完全反应出应聘者的真实水平。Roseman 建议一个深入地筛选简历阶段。

“多数团队在如何阅读简历,如何找到目标条目并对其深挖方面知之甚少。”

  在筛选简历时,Roseman 会关注那些应聘者未来能够提高的领域。他会去寻找简历上能被量化的条目,例如“将营业额提高 50%”。

  Roseman 认为,要去发现应聘者真正完成的东西,而不仅仅作为观察者或是参与者。即使是在一个伟大的公司,主心骨和起辅助作用的员工间有很大差异。

  很多情况下,这也能立刻显现应聘者对他们自己和其职责的认识。假如现在要雇用一个系统工程师,那么你需要知道他简历上”将系统可用性提高 50%”这一条他究竟参与了多少。一个优秀的候选人,无论你把问题挖掘地多深,都能够言之有物地解释清楚他声称自己完成的事。

  一个具体的例子是,在 Roseman 看到简历上有这么一句”带领一组 3 人工程师团队完成了可大规模扩展的存储基础设施,并被广泛用于 Google 的多种产品上”时,Roseman 选择让应试者在白板上绘制出基础设施的结构图,并划出哪些是由他完成的,接着 Roseman 再就那些方面提问测试应聘者究竟知道多少。

  总结起来,在技术面试中,要就能证明其贡献,行为以及决策的方面进行提问。具体操作如下:

  • 抛出问题:给我一个关于…的例子
  • 深入挖掘:对于每一个处细小成果完成的时间,地点,合作者,细节,为什么采取这种方式及其如何执行的进行提问。
  • 区分出:优秀vs.卓越;有所涉猎vs.专家;参与者vs.领头羊。

  Roseman 补充,他会去寻找那些足够有分量和深度的项目按照 STAR 的方法进行提问—STAR 代表”情况”(Situation),”任务”(Task),”行动” (Actions) 和”结果“(Results)。具体问题就是:

  • 你从事的这个项目的背景是什么
  • 你的具体任务是什么
  • 你采取了怎样的行动* 你是如何评估结果的

  此外,在面试前阅读简历的时候也应当弄清楚,简历上列出的这些项目或产品,无论成功与否,是否会对你自己的公司有益。

  技术问题与面试

  Roseman 常常听到招聘主管的第一个问题是让应聘者介绍一下自己的简历。Roseman 并不认为这是个有价值的问题。Roseman 的建议是面试官先介绍自己,并陈述这次面试的目的,通过这种方式,双方同样可以消除紧张,令应聘者进入状态。

  简介之后,Roseman 会直接进入技术问题的面试。他认为,对于一个工程师职位来说,落选的主要原因多为技术不过关,因此,摸清应试者的技术水平是首要的。

  Roseman 首先会把注意力放在候选人所擅长的领域上。例如,如果他擅长写代码,那就问一个编程问题。重点要注意的是,不要提出一个全新的你没在非面试情况下问过别人的问题。因为你会无从得知如何引导对方来完成这个问题,也会很难判断答案的好坏。

  尤其在当下,网络上的面试题库丰富。候选人完全可以从 Glassdoor 或者 Quora 等网站上得到大量信息。Roseman 认为从这些资源中找问题是可以的,但要能将其雕琢成自己的问题。对于问题的选择和修改,整个团队都应该坐下来讨论。提出的问题要能从高处开始不断向下挖掘,即使应聘者曾见过这个问题,你的深入提问也能得到不一样的信息。

  而对于原创问题,Roseman 的建议则是让应聘者试着解决一些你的公司实际面临的难题。在 Amazon 时,Roseman 经常会提一个关于”推荐”系统(根据用户的购买历史而向他们推荐他们更有可能会买的其他产品产品)的设计问题。Roseman 认为,一个人们都有所熟悉的产品的问题,能看出应聘者是否既关注产品又关注解决方案。

  Roseman 尤其关注产品设计方面的问题。他认为,卓越的工程师不仅只会接任务,更应该能够参与到产品开发的过程中来。而设计上的问题则能让你得知应聘者的思考方式。Roseman 会让应聘者给他们曾参与过的项目写一个小的项目管理计划, 或是提出一个通用的设计问题例如,怎样设计一台给盲人用的 ATM/ 电梯。

  技术面试还需要掌握好时间分配与节奏。一个 60 分钟的面试里,在一个特别复杂的查询语句上花 45 分钟是很稀松平常的。

  至于企业文化的契合和软技能,Roseman 最喜欢的一个问题是:你认为自己是个幸运的人吗?无论职位如何,这都是他的必问问题。

  Roseman 的解释是,他遇到过许多不认为自己幸运的人。那些人会抱怨,自己差一点就升职,可惜最后一刻被上级取消了自己在做的项目;或是会找到一些失败的其他原因。而 Roseman 要寻找的则是坚信”机会只给有准备的人”的求职者。他们懂得未雨绸缪,继而抓住一切能够展示自己的机会。对于创业公司而言这点尤其可贵。

  在“幸运”的问题之后,Roseman 通常有个后续问题。不同于常规的”你认为自己的优势和劣势在哪儿“,Roseman 换了一种思路去提问。他会让应聘者试想,如果让他的师长,同事,或是上级用三个形容词去形容他,他们会选择什么,并具体例证。对与经典的“自我评估优势,劣势问题”一些人会回答,自己的缺点是工作太努力了。这种提问方式就规避了很多“优势,劣势”问题的弊端。

  另外一点 Roseman 坚持的是,不要轻易缩短面试的时间。即使你在 15 分钟的时候已经决定这不是个合适的候选人,也应该完成整个面试过程。对应聘者来说,他们依然会有所受益。
  相反,如果这个应征者明显是这个职位的绝佳人选,结束时则应进一步增加他对职位的兴趣。在面试时,能够很好地回答应试者的问题并传达出你对公司的热忱是很重要的两点。

  招聘团队

  招聘团队的质量会直接影响到所招员工的整体质素。Roseman 认为,多数公司都没有花时间训练当前雇员的面试技巧。

  Roseman 要求招聘团队中的每个人都和应征者见面,并在面试过程中做详细的笔记。当最后所有人聚在一起时, 每人投票并反馈信息。这个最后商议时间不能被无限拉长,每个面试官在言之有物的前提下要精简。Roseman 对于他自己的招聘团队的要求是:1)如果他们无法综合地反馈信息,例如面试后对应聘者的评价仅仅是 “这人还不错”, 那他们则是在浪费所有人的时间。2)如果你无法学会成为优秀的面试官,要么你去学会如何成为优秀的面试官,就不要面试别人。Roseman 在面试中不会给应征者施压,却对他自己团队成员在面试新人上的表现要求严格。

  成为一个好的面试者也是现有雇员展示自己能承担更多责任,对公司有深刻思考的好机会。
在做出招聘决策时,提出的观点要能够令人信服。Roseman 认为,这是个团体的决定,并不能是来自招聘经理的压倒性意见。

  无论硅谷标准有多高,你都不应该要求每位新员工有“水上飘”的超能力。最简单的衡量标准是只要新招比在同等职位上现有员工的水平高足矣。长远看来你想要实现的是在每一次招聘中逐渐提高标准。

  至于员工推荐,Roseman 十分欢迎,他十分乐意给员工推荐奖金。他认为这是找到优秀人才最有效和最经济的方式。

  Roseman的招聘哲学总结

  • 自我介绍让大家放松进入状态。
  • “简单介绍你自自己”在技术面试中不是个有用的问题。
  • 通过深度提问以辨别应聘者的对项目的参与程度。
  • 不要尝试无从辨别答案好坏的新问题。
  • 现场写代码。
  • 探究算法,数据结构,代码组织和简洁性。
  • 故意提出指示不明的问题,观察应聘者是否发问。
  • 通过设计问题考察其全局思考的能力。
  • 确认应聘者具备公司所需要的核心才能。
  • 让面试变得有难度却不失趣味。优秀的研发人员只想和聪明人对话。
------分隔线----------------------------
------分隔线----------------------------

最新技术推荐