AI 时代程序员该固守手写代码,还是拥抱 AI?说点真相

2025 年你打开 B 站,铺天盖地是"Cursor 帮我写了整个项目"“Vibe Coding 让零基础小白三小时做出 App”。你关上 B 站去 V2EX 看帖,又全是"AI 只会生成 Bug"“用 AI 写代码这辈子完了”。

两边都有人在贩卖焦虑。这篇文章不讲极端,说点实在的。

Vibe Coding:真的能让普通人开发软件吗

“Vibe Coding"是 2025 年最火的词。Andrej Karpathy(前特斯拉 AI 总监、OpenAI 联合创始人)提出了这个概念——你不需要写代码,你只需要用自然语言描述你想要什么,AI 帮你全搞定。你像一个产品经理一样"提需求”,AI 像一个程序员一样"实现"。

听起来很美好。实际情况呢?

能做出来的:

  • 个人博客、简历页面、简单的 Landing Page
  • 一个计算器 App、一个 Todo List、一个天气预报查询
  • 一个表单收集工具、一个数据展示面板

做不出来的:

  • 任何涉及支付、用户认证、数据库安全的系统——AI 生成的代码在安全层面几乎全是漏洞
  • 需要性能优化的场景——AI 会给你写出功能正确的代码,但它不知道什么时候应该用缓存、什么时候应该建索引
  • 复杂的业务逻辑——比如"用户下单后 15 分钟未支付自动取消,但如果使用了优惠券要回滚,同时要发通知,如果库存不足还要触发采购流程"——这类需求 AI 能写出代码,但逻辑完整性基本没法保证
  • 调试——当你遇到一个只在特定条件下才出现的 Bug,AI 帮不了你。它看不到你的运行环境,不知道数据状态,只能猜

Vibe Coding 能让你做出能跑的东西,但做不出能用的东西。 能跑 = 你一个人点来点去看起来正常。能用 = 一万个用户同时用不出问题、数据不会丢、不会被黑。

这两者之间的距离,就是"学过计算机"和"没学过计算机"之间的距离。

只会 AI 写代码,能找到工作吗

现在很多初学者学编程的路径变成了:看三天 Python 语法 → 用 Cursor 写项目 → 简历写"熟练使用 AI 辅助开发"。

然后去面试。面试官问:

“你写的这个登录接口,是怎么防止 CSRF 攻击的?”
“你的数据库查询为什么没用索引?”
“这个递归调用在数据量大的时候会不会爆栈?”

AI 给你写了能跑的代码,但它没告诉你为什么这样写是对的、什么情况下会出问题。面试官问的就是这些"为什么"和"什么情况"。

大厂面试从不考"你会不会用 Cursor"。他们考的是:

  • 数据结构与算法(LeetCode 刷题)
  • 操作系统和网络基础
  • 系统设计能力
  • 代码调试和问题排查能力
  • 对业务的理解和抽象能力

这五样东西,AI 一样也帮不了你。

结论:只会 AI 写代码的人是找不到正经工作的。 AI 可以是你工具箱里最强的工具,但不能是你工具箱里的唯一工具。

大厂到底看中什么

我认识几个在大厂做技术面试官的朋友。他们最近的共同感受是:来面试的人越来越多,但能通过的越来越少。

不是因为题变难了——是因为候选人的"表面能力"变强了(AI 帮你写出了好看的代码),但"底层能力"变弱了(你不理解你写的代码)。

大厂真正看中的能力排序:

1. 问题拆解能力。 给你一个模糊的需求,你能不能把它拆成清晰的技术方案?AI 可以帮你实现每一步,但拆解的思路 AI 给不了你。

2. 调试和排查能力。 线上出了问题,你能不能快速定位?AI 看不到你的线上环境,只能猜。能独立排查问题的人在任何团队都是稀缺资源。

3. 技术判断力。 同一个需求,可以用 Redis 做缓存,也可以用本地内存做缓存。选哪个?为什么?AI 能列出两种方案的优缺点,但它不能结合你的具体业务场景做决策。

4. 沟通和协作能力。 为什么需求文档上写的跟产品经理脑子里想的不一样?为什么测试说这是个 Bug 但你觉得是 Feature?这些不是一个能写代码的 AI 能解决的。

5. 代码能力。 对,代码能力反而排在第五位。因为前四项不行的话,代码写得再好也没用。而如果前四项强,代码能力弱一点(可以靠 AI 补)反而是最容易解决的问题。

那到底该怎么用 AI

不是"用不用 AI"的二选一。是"怎么用 AI"的问题。

AI 应该做的事:

  • 写重复性的模板代码(CRUD 接口、表单验证、单元测试)
  • 帮你快速了解一个不熟悉的库或 API(“用 Python 的 requests 库发一个带超时的 POST 请求怎么写”)
  • 代码重构和格式化(“把这段代码改成 async/await 风格”)
  • 生成正则表达式(谁手写正则谁脑子有病)
  • 写文档和注释(“给这个函数写一段 JSDoc 注释”)

AI 不应该做的事:

  • 设计系统架构——AI 不理解你的业务上下文
  • 做安全相关的决策——AI 不知道哪些是敏感数据
  • 写涉及金钱和交易的逻辑——AI 不知道业务规则
  • 做性能优化——AI 不知道你的流量模型和数据规模

你应该做的事:

  • 审查 AI 生成的每一行代码——理解它为什么这样写
  • 对 AI 写的安全相关代码保持高度警惕
  • 把 AI 当"高级自动补全",不当"全职替代程序员"

未来三年会怎样

做个预测:

初级程序员的岗位会大幅减少。 如果你的工作内容是"接需求 → 写 CRUD → 调接口",AI 已经在替代你了。不是替代你全部,而是大幅提升效率——以前需要五个初级程序员,现在两个 + AI 就够了。

高级程序员会变得更重要。 能把模糊需求拆成技术方案的人、能快速排查线上问题的人、能设计高可用架构的人——AI 替代不了。而且因为他们能利用 AI 提升效率,产出会更高。

"会用 AI + 理解底层"的组合最有竞争力。 纯手写代码的人会被效率碾压,纯用 AI 的人会被质量问题绊倒。最稳的是:理解底层原理 + 用 AI 写重复代码 + 人的判断力做关键决策。

给你的建议

如果你是在校学生:先别碰 AI 写代码。 老老实实手写一年。理解内存怎么分配、理解锁怎么竞争、理解网络包怎么传输。这些基础不牢,以后在 AI 上翻车是迟早的事。

如果你是刚入行的初级程序员:用 AI 加速学习,别用 AI 替代学习。 你让 AI 帮你写代码,然后花时间读懂它写了什么。不懂的地方去查官方文档,而不是让 AI 再解释一遍。

如果你是有经验的开发者:拥抱 AI,但不要依赖 AI。 用 AI 处理 80% 的机械工作,你的精力集中在 20% 的关键决策上。审查 AI 的代码要比你手写更仔细——AI 不会累,但它真的会乱写。

最后

"AI 时代要不要学编程"这个问题,跟"有了计算器还要不要学数学"是一样的。

计算器让你不用手算三位数乘法,但你得知道乘法的本质是什么、什么时候该用乘法。你不会因为有了计算器就觉得"学数学没用了"。

编程也是一样。AI 让你不用手动写那些重复的代码,但你得知道程序运行的本质是什么、什么时候该用什么方案。代码能自动生成,判断力永远不能。

所以别焦虑了。该学的基础继续学,该写的代码继续写。让 AI 帮你加速,别让它替你思考。

一名痴迷于计算机技术的学生~