大龄程序员要不要补系统设计,面试怎么问

「给你十分钟,设计一个短链服务。」

这是我做过的一道题。我当时第一反应是画架构图,面试官打断我说:先告诉我一天有多少请求,峰值是几倍,数据要留多久。 那一刻我才明白,大龄程序员要不要补系统设计,和「会不会画架构图」其实是两回事——这关考的不是画图。

大龄程序员要不要补系统设计,我的判断是:它不是必答题,但它是你和其他候选人拉开差距的地方。

这道题到底在考什么

先破除一个误解:面试官不指望你在十分钟里给出能上线的方案。

他看的是三件事——你会不会先问清需求、你有没有成本意识、你出过事没有。

一个没做过线上系统的人,会直接开始画框;做过的人,会先问量级、再问一致性要求、最后才谈技术选型。

这道题之所以在大龄候选人里权重更高,因为公司默认你有过线上经验,想验证一下。

不同岗位,权重差多少

| 岗位/场景 | 系统设计的权重 | 面试怎么问 |

|----------|--------------|-----------|

| 中小公司业务开发 | 低 | 可能一道题带过,主要问项目 |

| 大厂中高级岗位 | 高 | 独立一轮,四十五分钟起 |

| 架构或技术负责人 | 很高 | 结合真实历史项目深挖 |

| 外包或项目交付 | 低 | 更看你能不能独立做完 |

| 一人公司或独立开发 | 低 | 没面试,但自己得会拆 |

看完这张表你会发现:投中小公司和做独立开发的人,不用把系统设计当主攻方向。

真正需要补的是想去大厂或者要带技术团队的人,以及现在做独立项目、系统拆不清楚自己吃亏的人。

面试里真正被追问的五个点

第一,容量估算。 多少用户、每天多少请求、峰值几倍、要多少台机器。答不出来,后面画什么都是空的。

第二,数据怎么存。 表怎么设计、索引怎么加、什么时候该拆。这部分后端有优势。

第三,出问题怎么办。 某台机器挂了会怎样,缓存失效了会怎样。这一问最见真章。

第四,取舍。 一致性和可用性怎么选,为什么。面试官要的是理由,不是名词。

第五,成本。 别做一个正确但跑不起的方案。这一点很多候选人完全没提。

我自己的答案:不刷题,改自己做过的事

我 37 岁,没有专门刷过系统设计题。

我做的准备是把做过的项目重新讲一遍:目标是什么、当时怎么拆的、哪里返工了、如果重来会改什么。面试官问的是你的判断过程,不是标准答案。

现在做一人公司也一样。配置是 1 个真人加 5 个 AI 员工——总管、小码、小美、小推、小财,内容从选题到发布全链路要自己拆。这个拆的过程,本身就是系统设计训练。

插一句,方向怎么排和准备是连着的,比如 35岁程序员还要不要学AI,先看这三个问题 里那套判断顺序,放在这上面同样成立。

如果涉及用户数据的处理,合规要求各行业各地不同,以监管部门和平台官方口径为准,别照搬别人的做法。

怎么补,按这个顺序

1. 先补估算。 拿一个你熟悉的系统,硬算一遍它的量级和资源。

2. 再补故障。 把「哪里会挂、挂了怎么办」写成清单,一个系统写一张。

3. 然后补取舍。 每个技术选择都写一句「为什么不用另一个」。

4. 最后练表达。 找个人讲一遍,十分钟内讲完,重点是讲取舍不是讲名词。

给自己定一个节奏:每周拆一个系统,月末回头看一次。 不用多,能讲清楚就行。具体每个岗位的面试轮次和重点,各公司差别很大,以目标公司的实际面试流程为准。

常见问题

Q:大龄程序员要不要补系统设计?

看目标岗位。投大厂中高级或者要带团队就要补,投中小公司或者做独立开发,优先级可以往后排。

Q:系统设计面试怎么问,主要考什么?

通常给一个模糊场景,看你会不会先问需求,再看容量估算、数据设计、故障处理和取舍,最后看有没有成本意识。

Q:不刷题能过系统设计面试吗?

能。把你做过的真实项目拆清楚,讲明取舍和返工,比背一堆标准架构图有效,前提是你真的做过。

相关阅读


本文作者西米,37 岁程序员,一个人加五个 AI 员工在跑一家公司。踩过的坑和真实账本都写在公众号「西米分享」。

完整代码、踩坑清单与最新进展,都在公众号。

📱 关注公众号「西米分享」