项目经历怎么写:经得起面试追问的写法

项目经历是面试官提问最多的部分。写得好的项目经历,读完就知道这个人遇到过什么问题、怎么想的、做成了什么,面试时顺着往下问就行。

01先挑项目:写两三个,不写十个

项目经历不是项目清单。挑两到三个最能体现你能力的项目展开写,其余的不写或者一句带过。挑选的标准是:你在里面承担了关键角色、有明确的难点、有可以说清楚的结果。

和目标岗位相关的优先。投数据可视化方向,就把图表、大屏相关的项目放前面;投用户增长岗位,就把转化相关的项目放前面。同一个项目,针对不同岗位可以侧重不同的部分。

02一个项目写四件事

每个项目按背景、职责、方案、结果四部分来写。背景和职责合起来一两句话,篇幅主要留给方案和结果。

背景:为什么要做

项目要解决什么问题,问题有多严重。比如「后台查询超时,商家每天投诉 20 多次」,比「为了提升用户体验」具体得多。

职责:你负责哪一块

团队多大,你是负责人、核心开发还是参与者。写清楚边界,面试官才知道该问到多深。

方案:怎么做的、为什么这么做

写关键的两三个做法和取舍。考虑过什么方案、为什么放弃,这部分最能体现思考深度,也是面试追问的重点。

结果:变好了多少

用数字或事实说明结果,并写清楚口径。没有数据就写上线后的实际变化,比如问题不再出现、被其他团队采用。

03一段完整的示例

下面是一个后端项目的写法,结构对其他岗位同样适用:先讲问题,再讲方案中的关键取舍,最后讲结果。

项目经历示例
订单表分库分表迁移2023.03 — 2023.08 · 核心开发

订单单表超过 8000 万行,商家后台查询频繁超时。目标是在不停服的情况下完成拆分,并保证迁移期间数据一致。

  • 按用户 ID 分 16 库 64 表,商家维度的查询通过异构索引表支持,避免跨库扫描
  • 迁移期间新老库双写,每天跑数据比对任务,差异自动告警;按商家分批切流,每一批观察 48 小时
  • 准备了回切开关,切流期间出现一次比对差异,10 分钟内回切并定位到双写顺序问题
  • 迁移全程未停服,商家后台订单查询 P95 从 3 秒以上降到 400ms
  1. 背景里有具体数字,说明了问题的严重程度
  2. 方案写了关键取舍(异构索引表)和风险控制(双写、比对、回切),这些都是面试的追问点
  3. 写了一次实际出现的问题和处理,比只写成功更可信

04常见的几个问题

最常见的问题是只写做了什么功能,比如「实现了登录、注册、订单列表、支付」。功能清单说明不了能力,面试官更关心其中哪个最难、你是怎么解决的。

第二个问题是技术栈堆砌,项目开头列一长串技术名词,正文却看不出用这些技术解决了什么问题。技术栈一行列出即可,重点在正文。

不推荐

使用 Spring Boot、MyBatis、Redis、RocketMQ、Elasticsearch 完成了订单系统的开发,实现了下单、支付、退款等功能。

推荐

大促峰值下单接口出现行锁等待和偶发超卖。改为 Redis 预扣库存、订单确认后异步落库,并用每日对账修正差异,峰值 P99 从 1.2 秒降到 280ms,当年大促零超卖。

前者是功能清单,后者讲了一个具体问题的解决过程,面试官可以顺着问预扣失败怎么办、对账怎么做。

常见问题

项目经历写几个合适?

社招两到三个,应届生三到四个(可以包括课程设计和个人项目)。超过四个就要考虑合并或删减。

公司项目不能透露细节怎么办?

隐去公司名和具体业务数据,保留问题和方案的结构,用相对变化代替绝对数字。

个人项目和公司项目放一起吗?

可以放在同一个模块,公司项目在前。个人项目要写清楚是否有真实用户,不要包装成公司项目。

照着写一份