全部文章

面试之锤

本文另有英文译文 · 阅读英文版 →

我面过的很多技术人,项目经验都是真材实料。
问题是,讲出来的方式,全都像在复读细节流水账。

不是技术不够强,而是表达方式把亮点掩盖了。

比如我经常听到这样的讲法:

我们这个系统是用 Kafka 做消息队列的,前端用 React,后端是用 Java Spring Boot 写的,部署在 AWS 上,用了 CloudFormation 做自动化……我们团队有四个人,我负责了其中两个模块的开发,涉及到日志分析、缓存策略……

如果你是面试官,听到这里,能记住什么?

讲真,十个候选人里有八个讲的是类似的堆技术词。听着像背了PRD,又像读项目 README,结果不是信息太散,就是让人抓不到重点。

不是说这些细节没用,而是:

你想让对方记住的,是你的判断、你的贡献和你的解决思路,不是你堆了多少关键词。


为什么细节复读机会失分?

一个核心原因是:面试的对话节奏,跟工作中的技术汇报不一样。

工作汇报是团队内部的延续性沟通,面试是陌生人 30 分钟里对你的第一印象判断。
这时候如果你一上来就往下砸细节,面试官就像坐进一辆没有导航的车,根本不知道你想去哪儿。

另外,还有个更隐蔽的问题:

我们讲得太细,是因为怕不够专业,怕“漏了什么”。但面试不是考试,不是你答全所有技术细节就能加分。 反而是——

讲得太多,掩盖了你真正想让人记住的那个点。


那应该怎么讲?

不是让你故意简化细节,而是要掌握什么时间讲什么层次。

下面这三步,是我自己面试讲项目时常用的结构:

1. 先讲选择:这个项目为什么值得讲

用一句话交代你讲这个项目的核心原因,比如:

这是我第一次在系统稳定性问题上做出了关键改进,最终让用户报错率从 2.3% 降到了 0.1%,老板专门在季度会上点名表扬。

一句话,不解释太多背景,也不急着抛技术词。
面试官的注意力马上就被你拉进来了,“哦,这是你做出实质影响的项目。”

这就是抓注意力。

2. 再讲挑战:让人知道你解决的是什么难题

不要直接说你做了什么功能,而是讲清楚你面对的矛盾是什么。

比如:

我们系统当时有个疑难问题是:请求量暴增时,缓存命中率反而降低,导致后端 CPU 飙升。
大家一开始以为是 Redis 有问题,但我反复复盘日志后发现,其实是因为缓存 key 的粒度设计太细了,导致热数据被分散。

有没有发现,这样的讲法,就带出你的技术视角了。

你不是个码功能的人,而是能在混乱里抓问题根源、给出判断的人。

这才是面试官想看的判断力和深度。

3. 最后讲策略:你做了什么,结果是什么

到这一步再讲细节,就不是堆,而是有针对性的选讲。

比如继续上面的例子,你可以说:

我最后设计了一个两级缓存结构,把细粒度 key 映射到高频热点维度上,同时引入滑动过期策略,最终系统在高峰期的 CPU 降到了原来的 40%。这个做法后来还被其他组复用。

你看,这就不是干巴巴的技术细节了,而是让人看到你的分析 → 选择 → 结果的整个链条。


不是技术讲不出来,而是亮点被埋了

我们在讲项目时,总是陷入把所有做过的都讲一遍的惯性。

但面试官不关心你做了什么,他们更关心:

  • 你在项目中的角色

  • 你遇到什么难题

  • 你怎么判断方向

  • 你最后带来了什么结果

讲不清这些,再多的细节,也只是背景噪音。

讲清这些,哪怕只说了一件事,对方也能记住你。


不是公式,是练习方式

很多人听完会说,“嗯,这种讲法很有道理。”
但一到面试现场,还是回到细节复读机模式。

原因也不复杂:没练过提炼,不熟练。

我自己练的时候会逼自己回答这三个问题:

  1. 如果只能讲一句话,怎么说这个项目的价值?

  2. 如果这个项目失败了,会是因为什么?

  3. 如果只让你再优化一个点,会是什么?

每次都不一样,每次都逼着我跳出细节。


最后讲个反差:讲得最动人的人,技术并不是最强的

有一次我面试了一个候选人,她做的是个比较常见的项目:支付系统里的退款链路优化。

但她的讲法,让我印象极深。

她不是上来就讲系统结构,而是说:

我们每天大概有 2 万笔退款请求,其中 5% 要人工介入。每次人工退款都要 5 分钟,一天下来就是 80 多小时。这个项目,我们不是为了加个功能,而是为了省掉这 80 小时。

她后来讲了用状态流重构了处理逻辑,怎么做了兼容上线的验证,最后怎么和运营团队一起提升了退款完成率。

技术不是最花哨的,但这个项目,她讲得像个产品 owner,一听就知道她对业务全局有把握。

我们最终给了她 offer。


项目经验,是你自己写下的一段职场故事。
怎么讲,让别人愿意听、能听懂、会记住,就是表达力的核心。

别再当细节复读机了。讲一个故事,比展示一堆结构图,更能打动人。