询问行为问题(Behavioral questions),是为了熟悉你的性格,更深入地了解你的简历,同时也让你更容易地进入面试。这些都是很重要的问题,可以做好准备。
浏览你简历中的每一个项目或组成部分,并确保你可以详细地讨论它们。填写这样的表格可能会有所帮助:
常见问题 | 项目 1 | 项目 2 | 项目 3 |
---|---|---|---|
挑战(Challenges) | |||
错误/失败(Mistakes/Failures) | |||
享受(Enjoyed) | |||
领导力(Leadership) | |||
冲突(Conflicts) | |||
你会做些什么(What You'd Do Differently) |
在表格顶部,你应该将简历的所有主要方面写成一列,包括每个项目、工作或活动。在表格的左边,作为行,你应该列出常见的行为问题。
在面试前研究一下这个表格。将每个故事缩减为几个关键词可能会使表格更容易学习和回忆。在面试中,你也可以更容易地在眼前浮现出这个表格,从而使你不会分散注意力。
此外,确保你有一到三个项目可以详细讨论。你应该能够深入讨论这些项目用到的技术组件。当然你所列的项目必须是自己发挥核心作用的项目。
当被问到你的缺点时,给出一个真正的缺点!像 “我最大的缺点是工作太努力” 这样的回答会让你的面试官觉得你很自大,或者不愿承认自己的错误。一个好的回答应该是你给出了一个自己的真实的、合理的缺点,并且强调了你是如何克服它的。
例如:
“有时候,我不太注意细节。虽然这很好,因为它让我可以快速执行,但这也意味着我有时会犯一些粗心的错误。正因为如此,我会确保始终让别人仔细检查一下我的工作。”
大多数面试官都会给你机会向他们提问。你所提出的问题的质量,无论是下意识的还是有意识的,都将是影响面试官决定的因素。所以,请带着一些疑问进入面试。
你可以考虑以下三种常见类型的问题。
真实的问题
这些都是你真正想知道答案的问题。以下是一些对许多候选人都有价值的问题:
- “测试人员、开发人员和程序经理的比例是多少?交互是什么样的?团队中的项目计划如何进行?”
- “是什么使你来到这家公司的?对你而言最具挑战性的是什么?”
这些问题会让你对公司的日常生活有一个很好的了解。
有深度的问题
这些问题表明了你对技术的熟悉或理解程度。
- “我注意到你使用的是 X 技术。你是如何处理 Y 问题的?”
- “为什么产品选择使用 X 协议而不是 Y 协议?我知道它有 A、B、C 等好处,但很多公司因为问题 D 而选择不使用它。”
提出这样的问题通常需要事先对公司进行深入研究。
热情问题
这些问题旨在展示你对科技的热情。它们会表现出你对学习的兴趣,并且表现了你会对公司做出巨大的贡献的潜力。
- “我对可扩展性非常感兴趣,我很想了解更多有关可扩展性的信息。这家公司有什么机会能让我学习这些呢?”
- “我不熟悉 X 技术,但它听起来是一个非常有趣的解决方案。你能告诉我更多有关它的工作原理吗?”
作为准备工作的一部分,你应该专注于两三个你应该深入掌握的技术项目。选择最符合以下条件的项目:
- 项目存在具有挑战性的组件(不仅仅是“学到很多”)。
- 你扮演了核心角色(理想情况下是在具有挑战性的组件上)。
- 你可以在技术层面上深入讨论。
对于这些项目,以及你所有的项目,都要可以谈论挑战、错误、技术决策、技术选择(以及这些技术的权衡),以及你将采取的不同措施。
你还可以考虑后续问题,例如如何扩展应用程序。
行为问题能让面试官更好地了解你和你之前的经历。回答问题时要记住以下建议。
傲慢是一个危险信号,但是你仍然想让自己听起来令人印象深刻。那么,如何让自己听起来不那么自大呢?通过将描述具体化!
具体化意味着只给出事实,让面试官自己得出一个结论。例如,与其说你“做了所有困难的部分”,还不如具体描述你做了哪些具有挑战性的工作。
当候选人喋喋不休地谈论一个问题时,对于不是很精通这个话题或项目的面试官来说,要理解它是很困难的。
保持对细节的关注,但同时应该只陈述重点。如果可能的话,试着解释它或者至少说明其影响。你通常可以给面试官提供进一步深入了解的机会。
“通过研究最常见的用户行为,并应用 Rabin-Karp 算法,我设计了一个新的算法,可以在 90% 的情况下,将搜索从 O(n) 减少到 O(log n)。如果你有其他问题,我可以详细介绍。”
这样描述不仅可以展示重点,并且允许面试官在需要时可以询问更多细节。
面试从根本上说是个人评估。不幸的是,当你倾听许多候选人(尤其是那些担任领导职务的候选人)的回答时,他们的答案往往是关于“我们”和“团队”的。面试官离开的时候对候选人的实际影响一无所知,可能会得出这样的结论:候选人没有做任何事情。
注意你的答案。听一听相对于“我”,你说了多少次“我们”。所以请假设每个问题都是关于你的角色的,然后再说出来。
有两种常见的方法来考虑如何组织对行为问题的回答:金块优先(Nugget First),和S.A.R. 。这些技术可以单独使用,也可以一起使用。
金块优先(Nugget First)
“金块优先”是指从一个“金块”开始你的回答,该“金块”简洁地描述了你的回答是关于什么的。
例如:
- 面试官:“请给出一个你说服一群人做出巨大改变的例子。”
- 候选人:“好的,让我来告诉你一次我说服学校让本科生自己教授自己课程的经历。起初,我们学校有一条规定……”
这种技巧能抓住面试官的注意力,让你的故事内容一目了然。它还能帮助你更专注于你的交流,因为你已经非常清楚地告诉自己你回答的要点是什么。
S.A.R. 这种方法意味着你首先要概述情况,然后解释所采取的行动,最后描述结果。
例子:“跟我说说你和同事之间富有挑战性的交流。”
-
情况(Situation):在我的操作系统项目中,我被分配与另外三个人一起工作。尽管两个人很棒,但是第三名团队成员却贡献不大。他在会议期间保持沉默,很少在电子邮件讨论中介入,而且很难完成自己部分的工作。不仅因为这把更多的工作转移到我们身上,而且因为我们不知道是否可以指望他。
-
行动(Action):我还不想完全否定他,所以我试图解决这种情况。我做了三件事。
首先,我想了解他为什么这样做。懒惰吗? 他在忙别的吗? 我与他进行了交谈,然后问他关于他感觉如何的开放性问题。有趣的是,不知从何而起,他说他想承担起写作工作,这是最耗时的工作之一。这告诉我,这不是懒惰,而是因为他觉得自己不擅长编写代码。
其次,既然我了解了原因,我就试着让他明白他不应该担心搞砸。我向他讲述了我犯的一些更大的错误,并承认我对项目的很多部分也不是很清楚。
第三,也是最后,我请他帮我分析一下这个项目的一些组成部分。我们一起坐下来,为其中一个大型组件设计了一个完整的规范,比以前更加详细。当他看到所有的片段时,他明白了这个项目并不像他想象的那么可怕。
-
结果(Result):随着他的信心增强,他现在主动提出愿意承担一些较小的编码工作,然后是一些核心的部分。他按时完成了所有工作,并在讨论中做出了更多贡献。我们很高兴和他在未来的项目上合作。
情况和结果应该简洁。你的面试官通常不需要很多细节来理解发生了什么,事实上,他们可能会被这些细节弄糊涂。
通过使用带有清晰情况、行动和结果的 S.A.R. 模型,面试官能够很容易地识别出你是如何产生影响的,以及它为什么重要。
考虑把你的故事放到下面的格子里:
Nugget | Situation | Action(s) | Result | What It Says | |
---|---|---|---|---|---|
Story 1 | 1. ... 2. ... 3. ... |
||||
Story 2 |
在几乎所有情况下,“行动”都是故事中最重要的部分。不幸的是,有太多的人却只是在喋喋不休地谈论出现的情况,而对采取的行动只是轻描淡写。
相反,请深入描述你的行动。尽可能将行动分解为多个部分。例如:“我做了三件事。首先,我……” 这样表述将使你的回答足够有深度。
重新阅读第 35 页的故事(译者注,即上面例子)。候选人表现出了哪些性格特点?
- 主动性/领导力:候选人试图通过正面处理来解决问题。
- 同理心:候选人试图理解这个人发生了什么。在知道如何解决队友的不安全感时,这位候选人也表现出了同理心。
- 同情:虽然同事伤害了团队,但候选人并不生同事的气。他的同理心使他产生了同情心。
- 谦虚:候选人能够承认自己的缺点(不仅对同事,而且对面试官)。
- 团队合作/乐于助人:候选人与同事合作,将项目分成可管理的几个部分。
你应该从这个角度来思考你的故事。分析你采取的行动和你的反应。你的反应说明了什么性格特征?
在很多情况下,答案是“没有”。这通常意味着你需要重新设计该如何描述故事,以使其更能表现你的性格特征。你不需要明确地说,“我之所以做 X 是因为我有同理心”,但你可以更进一步。例如:
- 缺少明确的属性:“我打电话给客户,告诉他发生了什么事。”
- 更多明确的属性(同理心和勇气):“我确保亲自给客户打电话,因为我知道他会很高兴直接从我这里听到。”
如果你仍然不能把性格特征明确地表现出来,那么你可能需要想出一个全新的故事。
许多面试官会让你简单介绍一下自己,或者让你浏览一下自己的简历,以此开始面试。这本质上是一个“基调(pitch)”。这是面试官对你的第一印象,所以你一定要抓住这个机会。
对于很多人来说,一个典型的结构基本上是按时间顺序排列的,开头的句子描述了他们目前的工作,结尾讨论了他们在工作之外的相关兴趣爱好(如果有的话)。
- 当前职位[仅限摘要]:“我是 Microworks 的一名软件工程师,在过去的五年里,我一直领导着该公司的 Android 团队。”
- 学校:我的专业是计算机科学。我在伯克利读本科时,有几个暑假在初创公司工作,其中包括我尝试创办自己的企业的那一年。
- 大学毕业及以后:大学毕业后,我想接触一些更大的公司,所以我加入了 Amazon,成为一名开发人员。这是一次很棒的经历。我学到了很多关于大型系统设计的知识,并且推动了 AWS 关键部分的发布。这实际上让我明确了,我十分想在一个更有创业精神的环境中。
- 当前职位[详细信息]:我在 Amazon 的一位老领导招募我加入她的初创公司,这就是我进入Microworks 的原因。在这里,我做了最初的系统架构,随着我们的快速增长,它的扩展性非常好。然后我抓住机会领导了 Android 团队。我管理着一个三人团队,但我的角色主要是技术领导:架构、编码等等。
- 工作以外:在工作之外,我参加了一些黑客马拉松——主要是在那里进行iOS开发,以便更深入地学习。我还积极在有关 Android 开发的在线论坛上担任版主。
- 总结:我正在找新工作,你的公司吸引了我的注意。我一直很喜欢与用户的联系,我也很想回到一个更小的环境中。
这种结构对 95% 的候选人都很有效。对于有更多经验的候选人,你可以浓缩其中的一部分。十年后,候选人最初的陈述可能会变成:“从伯克利获得计算机科学学位后,我在 Amazon 工作了几年,然后加入了一家初创公司,在那里我领导着 Android 团队。”
仔细考虑你的爱好。你可能想讨论,也可能不想讨论。
通常它们只是无足轻重的。如果你的爱好只是一些普通的活动,比如滑雪或者和你的狗狗玩耍,你可以跳过它。
然而,有时候,描述你的爱好可能是会有用的。这通常在以下情况下发生:
- 爱好是非常独特的(例如,喷火)。它可能会帮助你们开启一段对话,并以一种更亲切的语调开始面试。
- 爱好是技术性的。这不仅可以补充你的实际的技术栈,还可以显示出你对技术的热情。
- 爱好表现出积极的个性特征。诸如“自己改造房屋”之类的爱好显示了一种学习新事物、承担一些风险和动手(字面上和比喻上)的动力。
提起爱好很少会有什么坏处,所以当你疑惑该不该说时,不妨提一下。
不过,考虑一下如何最好地构筑自己的爱好。你是否有任何成功或具体的工作可以展示(例如,在戏剧中扮演角色)? 这个爱好有表现出什么性格特征吗?
在上面的沟通中,候选人随意地提到了他的一些重要背景。
- 他特别提到他是被他的老领导从 Microworks 招聘来的,这表明他在 Amazon 很成功。
- 他还提到想要在一个较小的环境中工作,这显示了一些他与当前企业文化契合的元素(假设这是他正在申请的创业公司)。
- 他提到了自己取得的一些成功,比如发布了 AWS 的关键部分,并构建了一个可扩展的系统。
- 他提到了他的爱好,这两项都显示出学习的动力。
当你考虑你的陈述时,考虑一下你的背景将如何影响面试官对你有哪些不同的评价。你能不动声色地展示自己的成功吗(获奖、晋升、被之前的同事招募、发布等等)? 你想传达什么关于自己的信息?