You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

124 lines
14 KiB
Markdown

2 years ago
# 答疑课堂03面试决策篇热点问题解答
你好,我是四火。
这一讲,我们围绕第三大板块“面试反馈/决策篇”主题。进行热点问题的解答。
对于面试反馈和决策部分据我观察对于面试官特别是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在决策环节总会遇到棘手的问题的就像我们之前反复说到的那样只要决策过程的逻辑是合理的那结果就是合理的。同时也不要害怕把困难的问题抛出来和其他面试官一起讨论。
如果你有问题,欢迎在留言区告诉我,我将尽可能给你答复。
好,我是四火,我们下一讲见!