本文主要是介绍Amazon前技术副总裁解剖完美技术面试,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
原文地址:http://www.36kr.com/p/210076.html
http://firstround.com/article/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的招聘哲学总结
- 自我介绍让大家放松进入状态。
- “简单介绍你自自己”在技术面试中不是个有用的问题。
- 通过深度提问以辨别应聘者的对项目的参与程度。
- 不要尝试无从辨别答案好坏的新问题。
- 现场写代码。
- 探究算法,数据结构,代码组织和简洁性。
- 故意提出指示不明的问题,观察应聘者是否发问。
- 通过设计问题考察其全局思考的能力。
- 确认应聘者具备公司所需要的核心才能。
- 让面试变得有难度却不失趣味。优秀的研发人员只想和聪明人对话。
[本文编译自:firstround.com]
For the first time, in this exclusive First Round Review interview, Roseman explains exactly how he designs interview processes from top to bottom to build an effective organization, regardless of size or resources.
At the 10,000-Foot Level
Starting out, there are a few key organizing principles to acknowledge in interviewing, even before you start collecting resumes or asking for referrals. These can be used to craft a clear protocol around interviewing and hiring.
- You should come out of every interview with a clear sense of whether the person could improve the probability of your company’s success.
- Great interviewing is work. It takes time to prepare, conduct the interview and then de-brief in an effective way. If you don’t want to do the work, don’t interview.
- Once you form an initial impression of someone - which usually happens within the first 60 seconds - you should spend the rest the interview trying to invalidate that impression.
- You should always take copious notes during interviews so you can make a cogent argument for or against a candidate.
- In most cases, the “best and the brightest” already have jobs, so you’re really just on the lookout for the best available. Plus there’s no way to prove that your hiring process resulted in the right people because you can’t A/B test hiring decisions.
- Always strive to hire superstars but realize that not all hires need to “walk on water.” This person should be better along some dimensions than a majority of the current staff and have the potential to have a long-term impact.
- You want to hire people who are smart, that get stuff done and have the functional set of skills you need for the role.
The Right Way to Read Resumes & Design Questions
Every job search starts with a resume or web profile — whether it comes in as referral or through a proactive sourcing strategy. While current wisdom suggests that resumes aren’t all that important compared to what a candidate actually knows, Roseman argues there’s a lot to be gained through careful review.
“The things that most teams have the least experience in is how to read a resume, identify the areas worth probing, and determining how to probe into them.”
While screening resumes, Roseman keeps an eye out for areas where he can push candidates. “I always look for things where they have a measure of their success, especially if they make comparisons or use percentages.” For example, "grew revenue by 50% or decreased downtime by 30%."
This is how he develops most of his questions. “You want to find out what somebody really did, as opposed to just being an observer or a participant,” Roseman says. “Even at the greatest companies, there’s a gap between those who get the most stuff done and those who don’t get much done. You need to try and figure that out during an interview.”
In many cases, this can be a litmus test for how clearly they think about themselves and their role as well. “They might think it sounds good to say 'I improved system availability by 50%', but if we’re hiring someone for a system engineering role, I need to know they actually did that. In most cases with high level statements like this — which appear on resumes all the time — the person actually hasn’t done it or was just a participant, and understands very little. They won’t have a very clear answer.” The good candidates will be able to explain and backup their claims no matter how far you drill down.
As an example, here is a resume snippet Roseman recently received, “Led a team of 3 engineers in creating massively scalable storage infrastructure used by various Google products.” Roseman took note of this and during the interview, had the candidate whiteboard the infrastructure, and then highlight his main contribution, where Roseman could dig down and see if he really knew his stuff.
To put this another way, great interview questions focus on specific examples of the candidate’s unique contributions, actions, decisions and impact. Ideally, you want to:
- Probe: give me an example…
- Dig: who, what, where, when, why and how on every accomplishment or project
- Differentiate: we vs. I, good vs. great, exposure vs. expertise, participant vs. owner/leader, 20 yard line vs. 80 yard line
Roseman goes on to share, “I look for past projects and accomplishments that seem to have enough weight and depth that I can apply STAR questions — STAR stands for situation, task, actions and results.” Roseman subscribes heavily to an approach called Behavioral Interviewing, in which STAR questions are a staple. They include:
- What was the background of what you were working on?
- What tasks were you given?
- What actions did you take?
- What results did you measure?
In addition, when reading resumes prior to interviews, it’s a good idea to suss out whether the projects or products listed were significant to the company, even if they didn’t succeed. Roseman uses Microsoft as an apt example. “It’s such a big company, you want the employees that worked on important teams,” he says. “Companies like Microsoft move people around to get the best people on the highest profile products. Whether it’s Google, Facebook, Apple, Amazon...you start to learn. You can try to read the company."
Technical Questions & the Interview
All too often Roseman hears hiring managers begin an interview by asking candidates to walk through their resume. “That is not a highly valuable question to ask unless you’ve already decided you’re not hiring this person,” he says. You can set a candidate at ease without this warmup softball. Roseman recommends introducing yourself so they know where you’re coming from, and clearly stating what his goal of the interview is. “I ask the person to introduce themselves and give me a couple of minutes about what they’re interested in and most excited about,” he says. “This way we can relax, set the stage for the conversation and make sure we’re both comfortable with each other. Calm any nerves that the candidate might have.”
After a quick intro, Roseman begins an interview with the most hands-on technical questions. “For an engineering position, the reason most people don’t get hired is because they simply don’t have the skills — they don’t pass the technical bar,” he says. “I want to validate that first.”
Here, he pays attention to the candidate’s area of focus. If it’s coding, he asks them a coding question based on their experience. The important thing, he says, is to never ask a question that you haven’t asked ever before. “You want to have tried the question out on other people in a non-interview situation so you can understand how to guide someone through the question,” he says.
“When asking a question, you have to know what to consider a very good, good, poor or very poor answer and why.”
To Roseman, this is the most important tenet of crafting smart interview questions. “One of the things that really pisses me off is people asking questions that they don’t even have a good handle on themselves,” he says. “They don’t have a good distinction between a great answer and a crappy answer. They decide to try out a new question they heard from somebody or make something up themselves."
This is especially important today, when there are infinite resources on the web for interview questions. Candidates can look up past interview experiences on Glassdoor or Quora and have an inside track. Even so, Roseman says it’s okay to borrow questions from these resources as long as you make them your own. “Your whole team should sit down and discuss what’s a good coding question, what’s a good answer and why you should use this one.”
For example, Roseman often asks candidates to palindrome the words in a string, then digs a little deeper by asking them to imagine they’re on a limited memory machine and they have to do this in place. “You can always push them so they might have gotten one level of the answer from the web. If they’ve gotten all the levels then they’re pretty darn smart.” Again, the key is to start high-level and then begin to dig deeper. Even if a candidate has seen the question before, if you dig, you can learn something.
To create one-of-a-kind questions, he suggests asking candidates how they would solve the kinds of problems your company actually faces. “While at Amazon, I often asked a design question that’s based on the recommendation system — the ‘people who bought also bought feature.’ It’s always best if I cast this in terms of a product that people know. That way you see if they’re both product focused and solution focused.”
Roseman especially likes to press engineering candidates on product design. Great engineers should not simply be order takers, but actively part of product development. Design questions also allow you to better understand how someone thinks. To get to the heart of this ability, Roseman drills candidates on past products they have been involved in, and may ask them to write a small portfolio management program. Roseman also often asks the candidate to walk through a more generic design question like “design an ATM/Elevator for blind people” or something more technical, depending on the role.
“If I have enough time, I give them the laptop and have them write a small command line app, or I have them design it and or write it on the whiteboard where they have to ask me questions about what I expect the product to do,” he says. “We want employees to ask questions. I want co-workers who ask questions and don’t just sit in the corner and wait to be given orders.”
Leading with technical questions has one caveat: answers can run really long. This is where Roseman says it is critical to keep your eyes on the time and rope people in if they start to ramble. It’s easy to eat up 45 minutes of a 60-minute interview on a particularly complex query.
“I might only be able to ask one ‘write code on a whiteboard’ question because I want to move on to a more design or product-focused question,” he says. “Then I also want to get to the soft skills, company values and culture fit.” This is also the part of the interview where Roseman asks his pre-engineered questions based on the resume review that were not covered in the technical portion of the interview.
When it comes to soft skills and culture fit, Roseman is a big fan of one question — he asks everyone, no matter the position: Do you consider yourself lucky?
“If you look at what you’ve done, would you put yourself in the camp of people who say they’ve been lucky in their career?” Roseman explains. “I find a lot of people who will say I would have gotten that promotion but my manager cancelled my product, or they find other reasons for failure. Those are the ones who say they don’t think of themselves as lucky. I’m looking for the people who embody the phrase ‘fortune favors the prepared.’ It’s the willingness to be ready and take advantage of every opportunity that presents itself. At a startup, this is particularly valuable.”
Roseman often follows this up by asking what he calls his “three adjectives” question. Many interviewers ask candidates for their strengths and weaknesses, but Roseman puts a different spin on it. “I will ask a candidate to think of people who they worked with, professors, fellow students, managers, etc. and imagine that I am going to go to all these people and ask them for their top three adjectives to describe the candidate. Often, it causes people to think a little bit differently about themselves. They won’t just say their worst feature is working too hard.” Once a candidate shares their three adjectives, Roseman follows up and asks for examples — so if someone says, “creative,” his standard follow up will be “what are some examples of when you were creative.”
Even if you know a candidate is a no-go 15 minutes into an interaction, it’s important to get through all these phases of the interview. “You want to do close to a full interview because it’s a small world out there, and even if someone doesn’t get hired, my theory is it’s a good thing if the person believes they just had a great interview, even if they don’t get the offer.”
At the other end of the spectrum, if someone is a clear winner, selling them on the position at the end of the session is critical. “You better do a good job both answering their questions and communicating your enthusiasm about the place and the opportunity,” says Roseman. “I’ve been very clear with the people on my teams that even if they don’t have an excitable personality, they have to be very positive about the company. If you can’t be, then don’t interview people.”
In the actual interview, Roseman tries to anticipate what concerns a candidate might have, or what might convince them not to accept the job. “Sometimes, since I’m old now, I can get away with asking ‘Have you thought about where you want to be in two, three, five years?’” he says. “I want to make sure I understand potential sticking points and what’s driving the candidate.”
The Hiring Team
The employees you hire will only be as good as the hiring team you assemble. Too many companies do not invest time in training current employees to interview their prospective peers. But according to Roseman, this is critical. “I’ve required anybody that even does a phone screen to first do it with other people who are more experienced, just sitting in.”
Once you have a qualified squad of interviewers, it’s time to take a closer look at their decision-making processes. To ensure that everyone can articulate their thinking on a candidate, Roseman prefers everyone to take exhaustive notes on their conversations. After everyone on the hiring team has met the candidate, the group deliberates in person. Roseman explains what happens when everyone gets in the room, “What we do is put our votes in and then list in detail the questions we asked and the candidate’s answers. If someone is not inclined to hire them because of a pure technical question, then they should list the exact question they asked and the candidates code.”
This feedback can’t be too long or drawn out, according to Roseman. Every decision is critical, and critical decisions require careful deliberation. He tells his hiring teams two things: 1) if they can’t provide comprehensive feedback, then they’ve wasted their own time, the company’s time and the candidate’s time; and 2) “If you get to the end of an interview and all you can say is ‘Yeah, I kind of liked them, I think they’d be good,’” then you’ve also wasted everyone’s time. You have failed to do your job, and you should either learn how to do it or please just tell me and you won’t have to interview people anymore. I don’t do pressure interviewing of candidates, but I do pressure the people I work with to do good interviews.”
Being a quality interviewer doesn’t have to be a selfless act either, Roseman says. In fact, it can reflect very well on existing employees. “It can be a big deal to show that you’re someone who should get more responsibility. It shows you’re thinking, and that’s what we’re trying to find.”
Despite his team-oriented approach to hiring decisions, Roseman is wary of hiring managers being too involved in the process. Placing emphasis on the opinions of people who will work with the new employee day in and day out is critical. He says, “no matter what, you never want to let a hiring manager override the group’s decisions. They have to be able to convince everyone, and not by fear.”
Given all the talk about sky-high Silicon Valley standards, Roseman acknowledges it’s not rare for hiring teams to pass on candidates because they don’t display superhuman skills. But not everyone should be required to walk on water in an interview. To keep this tendency front-of-mind, he’s set a more explicit bar: “The expectation is that the people you hire are better than when you were hired. So that in fact if you left and came back, you might not be hired again in that position. You want to improve your overall bar up with each hire. Another way to put it is every new hire should be better than your average current team member.”
Roseman uses this same logic to encourage quality referrals from current employees. “You better be good with referrals, and it’s always nice to give referral bonuses,” he says. “It’s a lot cheaper than any other network you’re going to use to hire people, and it’s the best way to get some of that already hired talent that has some experience.”
Here’s a distilled list of Roseman’s Rules:
- Don’t forget to introduce yourself to help work out everyone’s nerves.
- “Tell me about your background” is not a useful question for a tech interview.
- Pick specifics out of a resume to determine what the candidate actually did. Remember, you want people who get stuff done. Period.
- Probe when you see a resume with a long list of skills. Separate the truth from filler.
- Don’t “try out” new questions on candidates. Know what a good answer sounds like.
- Make sure you have them write code! This is too often skipped.
- Dig into algorithms, data structures, code organization, simplicity.
- Use some questions that are vague and open-ended. See if they ask you questions to find out more.
- Ask a design question. See how people think about a bigger picture problem.
- Create core competences for your company. Make sure candidates measure up well.
- Make it tough but fun. Good developers want to know they’re talking to smart folks.
这篇关于Amazon前技术副总裁解剖完美技术面试的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!