<audio id="audio" title="答疑课堂03：面试决策篇热点问题解答" controls="" preload="none"><source id="mp3" src="https://static001.geekbang.org/resource/audio/ab/c5/ab4193796bcbc5a0409fb25aa97044c5.mp3"></audio>

你好，我是四火。

这一讲，我们围绕第三大板块“面试反馈/决策篇”主题。进行热点问题的解答。

对于面试反馈和决策部分，据我观察，对于面试官，特别是Bartender（技术负责人）的挑战还是很大的。在这里我将挑选几个很有典型意义的问题，跟你分享一下我的看法。

**问题1：怎样看待候选人面对同样类型的考察问题，却表现出巨大差异的现象？**

这是决策会上比较常见的一个问题。

比方说，某候选人同样在面对算法问题的时候，回答的情况差异巨大。在一轮考察链表的某个算法问题的时候，回答很顺利，不但完成了原问题的讨论、解答，还有充分的时间和面试官讨论两个延伸问题。

而在同一天的另一轮算法题考察环节，折戟沉沙，候选人面对一个难度适中的关于链表的算法问题，却推进缓慢，一直到最后也没有完成代码。

同样是算法问题，甚至都是关于链表的算法问题，两轮表现如此大相径庭，我们该怎样认识和处理这样的情况呢？我觉得可以从这样几个角度考虑。

**首先，正确认识面试考察的局限性，不要钻牛角尖。**我们在谈论计划制定时（[第2讲](https://time.geekbang.org/column/article/360268)）就说过，面试考察的目的，不是做出100%准确的决定，而是要在有限的时间里，尽量通过合理的角度布局，尽可能挖掘到有帮助的信息，从而做出在风险范围内可接受的决策。

因此，永远不要期望能做出一定正确的决策，也不要期待所有的问号都得到解答。有时候，候选人也许就是单纯在某一轮没发挥好，如果非得要钻出他那一轮为什么表现不佳，这就不合适了。

**其次，尝试从分歧中寻找一致的模式。**有些时候，表象是矛盾的，但是背后的原因却是一致的，如果我们能找到这个一致的原因，那再好不过，如果找不到，自然不要勉强。

在[第9讲](https://time.geekbang.org/column/article/367483%E3%80%81)中我介绍了一个例子，是说对于同一位候选人，有一位面试官说他编码能力不行，而另外两位则表示候选人编码能力没有问题。经过推敲，我们发现其实该候选人在其中一轮面试中，是因为没有妥善地沟通，理解问题，才走了一个错误的方向，而被简单地描述为“编码能力不行”。

再结合这位候选人其它的事实数据，我们发现他确实在沟通和交流方面存在不足。但他的编码能力本身，从面试中的表现来看，是没有问题的。

所谓模式，我们已经介绍过，指的就是**对候选人出现一次以上的相似评价，或者是体现出的相同问题。**

因此，我们如果能经过推敲，找到这样多次出现的事实数据作为佐证，那就可以得出一个比较可信的判断了。在这个例子中，经过了决策会的推敲，无论是候选人编码能力的正面反馈，还是沟通技巧的负面评价，都是有多次的数据支持的，都构成了模式的判断。

**最后，从不一致中继续分析其它原因。**找不到背后一致的模式，我们还可以继续寻找不一致的原因。比如说，有时候我们会发现，候选人第一轮表现相对于其他轮次往往要差一些，也许这和刚开始心里有些紧张，没有进入好的状态有关。

总之，候选人对同类考察问题的表现差异很大，我们确实可以尝试寻找原因。即使找不到差异背后的原因，面试中收集的考察数据还是可以帮助我们决策的，不必强求所有关于分歧的问号都得到解答。这时我们最好多找共性，也就是一致性的数据，这样的数据越多，越有助于判断出“模式”，提升决策的合理性。

**问题2：候选人优势非常突出，不忍错过；但不足也非常明显，达不到工程师的水准线，我们该怎样处理这种情况？**

其实这种情况挺常见，其中最典型的是，候选人各方面能力都达标，有的部分甚至非常出色，例如对于分布式系统的理解非常深刻，但就是代码能力一塌糊涂。说不通过吧，觉得错过这样的候选人也挺可惜的；说通过吧，作为一个程序员代码关不合格，怎么说也过不去。

第二个例子是，候选人技术能力很不错，大家都非常认可；但是性格强势，很难合作，多轮面试都有面试官反映了这个问题。这就又纠结了，既不想错过这样技术优秀的候选人，又担心加入了团队每天搞个人敌对。

我觉得遇到这种情况，可以从两个方面来分析。**第一个方面是，候选人所不足的部分，对于相应级别和职位来说，它的重要程度如何？**如果不是“必要”，那么目标团队，愿不愿意接纳，并承担它带来的风险？

就说第一个例子中的代码能力，它显然是一个通常意义上软件工程师的必选项，那么如果代码关过不去，就不能够胜任这样的职位。

但第二个例子中的“性格问题”，这就很难说了，主要得看目标团队的态度。有些团队希望有这样性格较为强势但是技术出色的人加入，以达到一种平衡，而有些团队则不然，不愿意这样的候选人加入，担心这会破坏和谐的气氛。

因此遇到这类情况，有的招聘经理会直接拍板，也有些会去团队内部开个短会，获得大家的认可后再接纳，这些操作方式都可以供你参考。

**第二个方面是，无论是出于上述的何种原因，候选人不适合当前职位、当前团队，那么能否推荐给其它职位、其它团队？**

如果是不同的职位，例如软件工程师改为产品经理，那么一般需要重新走一遍面试loop（轮次）的完整流程，毕竟这两个职位对于候选人的要求太不一样了；如果是不同的团队，那么对应的团队一般会要求加面一两轮，或者由该团队的工程师或经理和候选人聊一聊，再最终决定。

**问题3：要根据候选人的表现，来对标对应职位和级别的bar，那这个bar到底有多高？**

这个问题其实是很多面试官的担忧。初衷很简单，每个人的标准都不同，尤其是刚开始做面试官，不太好把握这个度。

候选人有优点，也有不足，那在评估的时候，不知道这个评判候选人够不够得上要求的bar（标准尺度）在哪里，而且似乎很多不同的面试官，心中的这个尺度也差很远。对于这个问题，我觉得可以从这几个角度入手。

**首先，认识和接纳评判总是具有主观性，标准难以完全统一的事实。**也许单独把这一条拿出来讲不难理解，即便我们将尊重事实数据的实践做得再好。毕竟面试官都是人，是人就不可避免地带有主观性，而且有着相当强的主观性。我们能做的，是尽量做到让事实说话，尽量让决策背后的逻辑清晰、自洽。

对这个最终结论为“是”还是“否”的bar也是如此，我们一直在说，结论可以是“合理”的，但谁也不能保证它100%是“正确”的。

**其次，把握原则和方向，而不是具体的“指标”。**原则和方向似乎总是比较虚，习惯了和0与1打交道的程序员来说，更喜欢具体、明确的“指标”。但事实是，一旦这样的指标规定出现，它就一定会在某些情况下变得不合理，并且随着时间流逝，它很可能会越来越复杂，最后失去了它存在的意义。

举例来说，在[第2讲](https://time.geekbang.org/column/article/360268)中，我们就说，“对于经验较少的工程师来说，我们更看重的是潜力；而对于经验丰富的工程师来说，我们更看重的是能力”，这就是原则和方向，而不是一个具体的指标。如果非要制定出具体的指标来，一定会走样，例如怎样才算“经验丰富”，怎样才算“经验较少”？显然，这是无法量化的。

**再次，寻找参考标尺。**这是说，已经出现过的对于这个bar的定位和理解的事例，我们可以拿过来参考。比方说，一般来讲工作经验只有三年内的工程师，是不会考虑高级工程师的定级的，有太多这样操作的例子了，这就是一个参考标尺。但是需要明确的是，既然叫做“参考”标尺，那也存在着允许特例的可能。

还有一个典型的标尺，就是自己团队的同职位和级别的工程师。不知道你听说过Amazon的“50%原则”没有？就是说，在决策会的定级过程中纠结的时候，可以问团队这样一个问题，你觉得候选人会比你所了解的同职位和级别的工程师中，50%的人更优秀吗？

这个方式虽然也带有争议，并且问题依然很主观，但是它至少给出了一个参考标尺，可以避免一些明显不合理的决策。

**最后，发挥Bartender的引导作用，多观摩、交流，积累经验，和普遍的认识保持一致。**我们已经多次介绍过，Bartender在整个面试前后的组织和引导作用，那么在这个问题上也是一样的。

OCI的Bartender，每年都会有认证培训和很多交流活动，大家还可以自由地选择观摩其它面试官的面试。目的就是能够通过更多的沟通，让Bartender的标准尽量做到接近，追随主流。

作为Bartender，如果你意识到你过于严苛了，那么之后就要注意适当放低一些标准；同样，如果过于宽松了，那么在后续的决策会中，就可以相应地抬高一些要求。生活中很多事情都崇尚个性，但是对于面试和决策标准这一条看不见的bar，我们却不希望有太多个性，而是要和普遍的认识保持一致。

**问题4：能不能发几个面试文字反馈评价事例？**

这个问题来自于用户郭志华的提问，我觉得之前在介绍面试反馈的时候，给了参考模板，但并没有给出使用模板的具体反馈例子。

下面我挑选了近期工作中的两个来自“一线”的文字面试反馈，你可以看到它们使用了不同的格式，但包含的内容还是比较相似的，从决策会需要的角度衡量，都是比较不错的反馈了。另外，需要说明的是，它们都经过了翻译，隐去了个人信息。

示例1，这是一个结论为No Hire的例子，反馈内容还是清楚、合格的：

> 
考察专注角度：系统设计，赢得和给予信任（公司的一项领导力准则）


> 
我们谈论了候选人现在的职位角色，他现在是团队中的开发骨干，也经常要跨团队合作，处理Ops问题，之后我们讨论了他做过的几个项目。


> 
优势：对分布式系统模式有一定认识，比如Pub-sub系统和Event Queue，但是只限于它们大致是怎样工作的，而并不能说出使用场景和优劣来。他表现出了对于构建后端系统的热情，和对Java的喜爱。


> 
不足：不幸的是，他在系统设计的环节做得很糟糕。我们先一起过了一遍他当前在工作的项目，但是之后他没法展现他对于项目了解的深度。在我对于他的系统存在“Single Point Failure（单点故障）”的质疑之后，他没能拿出一个解决办法。我不知道他今天是不是比较疲惫，他说话有点心不在焉。他总是连续说出一大堆而不给我对话的机会，因此好几次我不得不打断他的谈话，和他交流挺困难的。


> 
结论：No Hire。根据我的经验，我不觉得他达到了OCI的标准。


示例2：这个反馈原本比较长，我保留了其中的片段。我之所以选择这一个面试反馈，并不是因为它内容有多完整、合适，而是因为它反馈了候选人在面试中作弊的情况，我觉得它有一定代表性：

> 
结论：Never Hire，有一项red flag，我将在下面解释。


> 
级别：IC2


> 
行为考察：我询问了他简历上一个特性设计的经历，陈述清楚，对于业务的理解也很清晰。


> 
技术考察：我的问题是让他设计一个保龄球的计分系统。他表示他并不了解保龄球，因此我给他做了介绍。


> 
接下来，在我给了他一些具体需求之后，我看见了他眼镜片上的白色反光，看起来是在使用Coder Pad（注：面试中使用的在线编码工具）以外的东西。他没等我叙述完需求，就开始跟我讲他的实现方案了，这时候白色反光就消失了，Coder Pad背景的黑色反光又回到了他的镜片上。这样的过程在整个过程中反复了几次，我意识到他肯定是在查什么东西。


> 
很快我再次确认了我的疑虑，因为他用到了一个我没有提到过的技术术语，用来表示保龄球的轮次，但是我知道在Stackoverflow上有这个问题的答案，并且答案里就有这个术语。


> 
在之后我比较了Stackoverflow上的代码实现，方法签名和名字居然和他的实现一模一样，这更验证了我的猜测，虽然他最后也没有完成完整的代码实现。


> 
（略去下面的代码片段）。


那好，今天就谈论这几个问题吧，希望这些问答对你有所帮助。

你需要记住的是，无论准备再充分，作为面试官，作为Bartender，在决策环节总会遇到棘手的问题的，就像我们之前反复说到的那样，只要决策过程的逻辑是合理的，那结果就是合理的。同时，也不要害怕把困难的问题抛出来，和其他面试官一起讨论。

如果你有问题，欢迎在留言区告诉我，我将尽可能给你答复。

好，我是四火，我们下一讲见！
