我在面试候选人时,发生过很多次下面的对话:

候选人:我工作有很强的主动性。

我:你可以分享一个在项目上实际发生的事情吗?

候选人:好的。在上个项目上,我经常主动做一些性能优化、功能优化,有时候也会做一些小工具来提升团队的研发效率。

我:主动做性能优化,有什么实际事例可以分享下吗?

候选人:就比如我会主动做一些页面的性能优化,降低了服务端响应时间这些。

在这段对话中,候选人一直没有给出「实际事例」。候选人可能有「主动性」的工作方式,但并没有让让面试官直接看到并且认可。

实际事例就是讲故事(Storytelling)。故事需要是一个真实发生的事情,包含了时间、地点、人物、起因、经过、结果六要素。无论是在面试中介绍项目经历,还是给别人做一次演讲分享,实际事例可以提高内容的说服力和吸引力。

我们所说的话,会包含观点(Opinion)和事实(Fact)。只有观点是很难让听众信服的。在说完自己的观点后,通过补充观点对应的一个实际的事例,可以让听众更好的理解。

在上面面试的对话中,候选人只是在重复自己「主动做优化」的观点。一个实际的事例,应该是在项目上真实发生的事情。例如,在什么时间,团队当时在做什么,什么页面遇到了性能问题,我为什么去优化这个,我是怎么做的,优化之后的性能如何。

OK,我现在明白了应该讲一个实际事例,但有什么方法可以更好组织我的语言呢?这里可以使用 SCQA 模型了。SCQA 四个字母分别代表了:

  • Situation 这个实际事例发生的时候是什么背景
  • Complication 在这个背景下,发生了什么事情
  • Question 带来了什么问题
  • Answer 你是如何解决的

SCQA 模型可以让听众更加理解事情的背景和问题,进而更好的明白你为什么这么做以及产生的价值。

再回到文章最开始的面试,候选人可以这样子来讲:

候选人:我工作有很强的主动性。

我:你可以分享一个项目上的实际事例吗?

候选人:好的,我经常会主动做一些性能优化。例如上个项目,我们组负责一个营销产品的开发,运维负责性能、可靠性这些工作。有一次我和运维沟通时了解到,整个产品的页面平均性能很好,大概是 100ms,但是每天有部分请求会耗时 5 秒左右。这些慢请求会给部分用户带来糟糕的体验,所以我开始尝试优化这里。首先我在系统中加入了一些日志,通过日志定位到了一个第三方的缓存组件。但当时大家都不熟悉这个组件。我后来研究了这个开源组件的源代码,最终找到了问题。优化之后,我们的系统 99% 请求都在 500ms 之内了。

试试吧,在下次面试的时候 😂 ,或者做技术分享的时候,补充上一个实际事例,看看是否能起到更好的效果。