ARTICLE · 1136966
手写代码已死:AI 时代资深工程师面试全实录
一位资深工程师刚面完一轮大厂,录下了全部过程
中文配音版 · 时长 16:10
面试官给了他一个完整的云端 IDE,浏览器里挂着能用的 AI 助手,然后扔下一张真实的生产环境工单:限流失效,用户被刷穿了。
他没有让 AI 直接写答案。而是自己先钻进了代码库,从source 一路读到 services,定位到那个限流函数,翻它所有的调用点,最后在注释里写下了一句:实现一个滑动窗口的限流。
这 16 分钟里最反直觉的一点是: 会用 AI 反而成了扣分项。 把工单直接丢给 AI,面试官当场就判你「没有知识储备」。 |
这位工程师说得很直接:2026 年手写代码这件事已经死了。不管你是初级、高级还是实习生,现在都没人再手动敲那些 token 了。但这不等于技术知识不重要——它只是从「你能不能写出来」变成了「你知不知道为什么这么写」。

能力要求没有消失,只是换了一副载体
01|两张提示词,暴露了真正的差距
面试里有个很浅的例子,但浅到能一眼看出差距。同样是「让代码把 10 个数字打印到屏幕上」,两种写法:
写一个 while 循环,把 10 个数字打印到屏幕上 | 写段代码,把某样东西打印 10 次 |
懂代码的开发者写的 (知道该用循环结构) | 不懂代码的人写的 (只知道重复这件事) |
同一个需求,两种认知水平
差别不在语法,在于第二句暴露了写的人不知道「重复」在代码里该用什么结构表达。这就是新时代面试在筛的那道缝——不是手速,是认知结构。
02|为什么「直接丢给 AI」会扣分
工单上写得很含糊:设了每分钟 2 次的限流,流量一尖峰却有 30 个用户还在打数据库。这种模糊描述,正是AI 最擅长应付的输入。你把工单转给它,十几秒就能交出一个能跑的实现。
但面试官看到的信号是:这个人没有定位问题的能力。因为连限流失效都判断不出来,凭什么相信他能判断更复杂的问题?

差别不在会不会用 AI,而在有没有知识
他的正确动作是一条完整的推理链:先确认这张工单对应哪条 API 路由,再看限流函数在哪被调用,然后判断是实现有问题还是调用方式有问题。这条链讲出来,比十个能跑的补丁都有说服力。
03|他定位到的真bug:固定窗口
代码里的限流用的是固定窗口算法——每 5 秒一个窗口,每个窗口放 2 个请求。问题在于:窗口边界会漏。
前一个窗口的最后 1 秒来 2 个请求,紧接着下一个窗口的头 1 秒又来 2 个——用户实际上在 2 秒内打了 4 次。尖峰流量一来,数据库就被打穿了。这是个纯理论问题,但它伪装成了一个线上故障。
解法是滑动窗口。他也没自己动手写实现——他先手写了一段伪代码当护栏:取开始时间、减去当前时间、判断是否小于请求数。然后才把这几行交给 AI。
这是整场面试里被面试官认可的关键一步: 你先把方案写出来,AI 才不会跑偏。 他把它总结成一句话——你得先给 AI 划好护栏。 |
04|追问开始往 AI 够不着的地方走
第二张工单说队列里出现了重复条目。代码里明明有「已在队列则不入队」的检查——那为什么还会重复?
答案是并发:同一个用户用两台设备同时提交,检查还没来得及生效,两次请求都通过了。修法是给 user ID 加唯一索引。面试官立刻追问:加唯一索引会带来什么瓶颈?数据库内部是怎么处理它的?
这题已经不是编程题了。再往后是「讲一个你的代码因为死锁崩掉的案例」、「手写一段会死锁的代码」——而且明确不许用 AI。

级别越高,越考知识与工程判断
05|最狠的一题:级联故障
最后一题的陷阱很深。服务器横向扩容,限流要分布式实现,面试官认可他用 Redis,然后问:Redis 宕机了,你的 fallback 是什么?
他答「fallback 到数据库」,面试官立刻反问:Redis 是被负载压垮的,你却把所有流量转到 DB——那 DB 是不是也会挂?
你的答案 | 面试官真正在问的 |
Redis 挂了 → fallback 到 DB | 这是不是把一个故障放大成了级联故障 |
我可以接受让系统一起下线 | 你清楚每个决策的代价吗 |
再给 fallback 加 10 秒超时和退避重试 | 你有没有把「兜底」也算进成本 |
这题没有标准答案,考的是你答的时候知不知道自己说了什么
这类问题没法背。面试官要看的不是你答对没,而是你答的时候是不是清醒、是不是知道自己每句话的代价。
他最后给出的答案很克制:Redis 重启只要五秒,所以 fallback 到 DB、只容忍十秒、失败就退避重试五次,超过五十秒就宁可下线自己的服务,也不把数据库拖下水。每个数字都带着代价。
他特别提到一个反直觉的判断:这道题没有对错,面试官接受的是你权衡之后的立场。因为真实系统里没有标准答案,只有「你选了哪一头、为什么」。这跟写代码正好相反——代码编译通过就是通过,系统设计没有编译这一关。
06|说到底,考的是你能不能指挥 AI
整场面试最反常识的结论在这里:你能不能把 AI 用好,本身就是考核对象。
懂缓存、懂滑动窗口、懂 fallback 和退避重试的人,能写出「实现滑动窗口限流,用 Redis,加 fallback,10 秒后启用退避重试」这样的提示词。不懂的人只能写「帮我写个限流」。提示词的颗粒度,就是你知识颗粒度的投影。
他也提醒:这类面试看起来只是聊天,实际挖得更深。因为你有了 AI,门槛反而被抬高了——以前只要能写出来,现在还要能审阅 AI 的输出、给它划护栏、并且说清后果。
— 结语 — 手写代码没死,「手写」这件事的价值换了位置。它从「你能不能敲出来」,挪到了「你知不知道为什么要这么敲」。AI 抹平的是执行,抹不平的是判断。这场面试真正在筛的,就是后者。 | |
参考来源
原视频:My Interview Experience for Principal Engineer - Interviews in AI Era(英文)。中文版时长 16:10,收听中文完整版音频请在小宇宙播客搜索“手写代码已死:AI 时代资深工程师面试全实录”。
如果这篇对你有用,欢迎点一下「在看」。AI 时代最值钱的能力是判断力,而不是打字速度。