上个月面了家做 AI 应用的中厂,技术面第三轮。
面试官是个看着四十出头、戴黑框眼镜的架构师,进门没让我做自我介绍,往椅背上一靠,第一句话就是:
"你 GitHub 上那些项目, AI 写的比例大概多少?"
我愣了一下——问这么直接的吗。犹豫了两秒,决定不装。我说大概六到七成吧,有些工具类的基本全是 AI 生成的,我更多是做设计和 Review 。
他点了点头,然后说了一句让我记到现在的话:
"那好。你挑一个自己最满意的项目,不用讲功能,你就给我讲清楚这段代码为什么这么写。不要用 AI ,你用手划,从第一行开始,边指边说。"
我打开了自己的笔记本。
然后发现自己说不出来。
我盯着自己"写"的代码,脑子是空的
项目是我做的——一个用 RAG 搭的企业知识库问答系统。技术栈 Chroma 加 LangChain 加通义千问 API ,整个流程我脑子里过过无数遍:用户提问、向量检索 Top-K 、上下文拼接、 LLM 生成回答、引用溯源。
面试官让我从核心的处理逻辑开始讲。
我打开 service 层的一个文件,看着那几十行代码,组织了一下语言,开口:
"这里是我调 Embedding 模型把 query 转成向量……"
他打断我:"为什么用这个 Embedding 模型?"
我当时想说"因为开源的好部署",但话到嘴边我突然不确定了——这不是我选的,是 AI 写的代码里直接用的,我当时觉得能跑通就行,没想过为什么是它不是别的。
"嗯……因为这个模型中文效果不错,而且……"我开始编。
他又打断:"好,那 Chunk Size 你为什么设的 500 ?"
我。说。不。出。话。
我知道 Chunk Size 是什么,我知道它影响检索精度。但为什么是 500 不是 300 不是 1000 ?我不知道。代码里就这么写的。 AI 写的,我 Review 了语法,没 Review 决策。
面试官没为难我。他靠回椅背,语气缓下来:
"你别紧张。我说实话,你那个项目整体方向是对的, RAG 的链路也清楚。但你写的代码——或者说 AI 帮你写的代码——你自己没吃透。面试的时候我不在乎你用了什么工具、写了多快,我在乎的是你不在 IDE 旁边的时候,还能不能把这套东西讲明白。"
那场面试我没过。
讲真,当时挺沮丧的。但后来我发现,那一番话比 offer 值钱多了。
我要 AI 写代码, AI 用"魔法"给我变出来,我没想过魔法怎么来的
回想我从自学编程到现在,对 AI 工具的态度经历了三个阶段。
第一阶段:新鲜感。"卧槽还能这样?"——用 ChatGPT 写第一个 Python 脚本时的感觉,懂的都懂。
第二阶段:重度依赖。大概从去年下半年开始,我每天的代码产出里 AI 生成的比例越来越高。写接口、写单测、查文档、改 bug ,全部交给 AI 。 Cursor 的 Agent 模式一开,说一句需求,它刷刷刷生成一堆文件,我点点点 Review 一下就提交了。说白了,我成了一个"确认按钮操作员"。
效率是真高。原来两天写完的 CRUD ,现在两小时。
问题是我开始"能跑就行"了。 AI 生成的代码,只要不报错、功能对,我就不深究了。底层怎么实现的?为什么这么写?不问了。现在回头看,这其实就是认知负荷的转移——我把本该自己消化的逻辑判断,外包给了一个黑盒。
第三阶段:幻觉期——这是我刚刚命名的。
AI 什么都能帮你写。前端、后端、 AI 应用、脚本工具,全帮你写了。你以为自己在成长,其实你在被 AI"蒙眼喂饭"。你吃了很多,但不知道自己吃的是什么。说实话,这种感觉挺恶心的——你明明每天都在"干活",但脑子里真正属于自己的东西越来越少。
直到面试官让你自己说一遍,你才发现自己一张白纸。
这让我想起面灵 AI 那篇模拟面试文章里特别扎心的一段话: AI 帮你练清楚"怎么讲",但练不出"你到底做没做过"。如果你简历上写了项目经历,面试官深挖两层问下去就会露馅——这个真编不出来。
我之前觉得我在用 AI ,后来发现是 AI 在用我。它负责产出,我负责点击"确认"。扯淡吗?确实挺扯淡的。
不会用 AI 的人会被淘汰,但只会用 AI 的人也是
最近在刷面经,发现一个特别明显的趋势: 2026 年的技术面试, AI 能力已经不是加分项了,是必选项。谷歌面试强制用 AI ,国内大厂春招也开始考 AI 编程能力。 YC 管理合伙人亲口说过,当前批次里 25%的创业公司 95%的代码是 AI 生成的——面试官不是傻子,他们比谁都清楚你会用 AI 。
但问题恰恰在这里——面试官想看的不是"你用不用 AI",而是"你怎么用 AI"。你是在用 AI 替代思考,还是在用 AI 加速思考?这是本质区别。
我翻了几十个面经,总结了面试官真正想确认的三件事:
第一,你能不能给 AI 兜底。
AI 写代码最怕什么?不是它写不对,是它写错了你还不知道。 Uncle Bob 最近说不读 AI 写的代码了,把质量全交给自动化测试——但前提是他有上千个测试把关。想想你自己,你敢不看代码就让 AI 写的逻辑上线吗?你敢说它生成的每个边界处理都是对的?
有个兄弟说得特别好: Vibe Coding 的第一课——你的指令越精确, AI 的产出越靠谱。但第二课更重要——AI 做的每一个改动,你都得知道它为什么改。做不到这一条,你就是在给自己埋雷。
第二,你能不能扛住"为什么"的连环追问。
面经里有个哥们面盛大集团,面试官追着问他技术选型。用了 gRPC ?为什么效率高? JSON 不行吗?为什么选 gRPC 不选 thrift ?他全军覆没——不是因为没用过,是因为"AI 写的,没想过"。
面试官后来跟他说了一句话我记到现在:所谓的广度不是你做了多少事,而是你对"背后为什么会产生这些问题"的思考形成的广度。
这句话太狠了。说白了就是我们这波被 AI 喂大的人的通病——AI 帮你解决了"怎么做",但它从来不替你想"为什么这么架"。
第三,你有一个能讲十分钟的项目吗?
面经里最打动面试官的,永远是那些"真手写、真踩坑、真自己定位出来"的项目。比如那个盛大的哥们,全场最有底气的部分是他手写的富文本编辑器——undo/redo 历史栈被高亮逻辑污染,他不用 Quill API 改成 CSS 浮层绕过去。这种 bug , AI 不会告诉你,只有自己踩过才知道。
你不需要所有代码都手写。但你至少得有一个项目,你熟悉到能闭着眼睛画出架构图、能说清楚每一个取舍的原因、能扛住追问三十分钟不卡壳。没有这种项目——说句难听的——简历写得再花也只是 AI 的功劳,跟你这个人没关系。
从那以后,我开始逼自己做三件事
面试挂了之后,我调整了自己的学习方式。不复杂,就三条:
一、每周至少手写一次核心逻辑,不用 AI 。
不是写 CRUD ,是写一段需要思考的代码——状态机、并发控制、数据结构的边界处理。逼自己不用 AI ,从第一行开始写。刚开始很痛苦,写几行就想打开 Cursor 。但你得忍住。就像练乐器不能全靠自动伴奏。有个转 AI 开发的面经哥们在总结里写得很实在:他投了 47 份简历面了 19 场,发现面试官最想要的不是你会不会用 LangChain ,是你有没有手写过核心逻辑、踩过具体的坑。
二、 AI 生成的代码,看完一遍之后关掉屏幕、自己讲一遍。
讲给自己听也行。讲的目的是确认你真的懂了——不是"读懂了",是"能给别人讲懂了"。面试官问你的方式,本质上就是让你讲一遍。你讲不出来的,就不是你的。
三、每个月做一个"面试级"的个人项目。
不用大,但要完整。核心代码自己写, AI 辅助做文档和测试。重点是:你随时能用这个项目去面试,扛得住任何追问。
这个方法我用了大概一个月。上周又去面了一家公司,同样的问题又来了:
"你怎么用 AI 辅助开发的?"
这次我把 Cursor 关掉,从项目架构开始讲。讲了技术选型为什么这么选,数据库为什么用这个不用那个,某个 bug 是怎么定位和修复的。面试官中间追问了三次,我都接住了。
末了他撂了一句:
"你聊的和那些只会说'我用 AI 写代码'的人,不太一样。"
我笑了。那轮我过了。
说回那句话
"我不在乎你用 AI 写得多快,我要听你讲代码。"
面试官说这句话的时候,我以为是刁难我。
现在回头看,他是真的在帮我。他在告诉我一个 AI 时代最容易被忽略的事实:工具越强,人越容易被工具吃掉思考的能力。 HackerRank 去年的开发者报告里有个数据挺说明问题——74%的开发者觉得找工作仍然困难,但原因不是技术不够,是面试官在考察"你能不能在没有 AI 的情况下讲清楚你在做什么"。
这让我想起一篇广泛流传的面经里的一句话: AI 不会淘汰程序员,但会用 AI 的程序员会淘汰不会用的。但我想在后面补一句——只会用 AI 的,也会被能驾驭 AI 的淘汰。因为工具本身没有护城河,你用 Cursor 别人也用,你用 Claude Code 别人也在用。真正的差异在于:离开工具之后,你还剩下什么?
所以如果你也在自学编程,也在用 AI 写代码,问自己一个问题:如果面试官让你关掉电脑、拿支笔、从第一行开始讲你的项目——你能讲几分钟?
别等到面试那天才发现。
夜雨聆风