AI 已经越来越会写代码了。
页面可以让 AI 写,接口可以让 AI 写,SQL 可以让 AI 写,Bug 可以让 AI 分析,测试可以让 AI 补,甚至你只需要描述一个需求,AI 几分钟就能搭出一个可以运行的 Demo。
于是,一个问题越来越现实:
如果 AI 越来越会写代码,程序员的价值到底在哪里?
我觉得,答案可能不是"我要比 AI 写得更快",而是:
我要学会利用 AI,把一个人的能力放大成一套能够持续解决问题的系统。
如果把这种变化浓缩成一句话,我会用:
一个人 + AI + 自动化 + 软件系统 → 持续解决一类问题
这可能才是 AI 时代真正值得关注的能力。
一、我知道要解决什么问题
这是整个过程的起点。
很多人学习 AI 的时候,很容易陷入一个循环:学习 RAG、Agent、MCP、Workflow、向量数据库,再研究各种新的模型。
技术学了很多,但最后可能还是不知道:
这些东西到底解决什么问题?
AI 让"做一个东西"变得越来越容易,但也因此,知道做什么,反而变得越来越重要。
比如,"我要做一个 AI 助手",其实并不是一个非常好的产品需求。因为它太宽泛了。你可以不断往里面增加聊天、RAG、Memory、Agent、MCP、语音、搜索、知识库、工作流,最后做出来一个功能非常复杂的产品,但用户到底为什么使用它,却没有真正回答。
换一个思路:
帮开发者自动生成项目周报。
问题一下就具体了。
我们可以从 Git 提交记录和任务管理数据中获取信息,让 AI 进行分析,生成周报草稿,最后由用户确认后发送。
这时候,技术反而没有那么重要了,因为我们已经知道谁在使用、解决什么问题,以及最终希望得到什么结果。
所以,AI 时代的第一个能力,不是 Prompt,而是问题定义能力。
二、我知道怎么设计系统
确定问题之后,下一步就是:
这个问题应该怎么解决?
这就是架构能力。
AI 很擅长写一个函数,也很擅长写一个 API,甚至可以帮你生成整个项目。但一个真正的软件系统,并不是几个函数简单拼起来。
比如一个 AI 应用,可能同时包含用户认证、权限管理、前端、API、业务逻辑、模型、数据库、缓存、知识库、工具调用、异步任务、日志和监控。
系统一复杂,就会出现很多架构问题:
- 哪些逻辑应该放前端?
- 哪些逻辑必须放后端?
- 哪些数据需要持久化?
- 哪些任务应该异步执行?
- 模型调用应该怎么封装?
- 工具调用需要什么权限?
- 模型出现故障之后怎么办?
- 未来更换模型怎么办?
这些问题不是简单地"让 AI 生成代码"就能解决的。
所以,AI 可以帮你写模块,但你需要负责设计整个系统。
而且架构能力并不意味着一定要使用复杂技术。一个小项目可能 Next.js + Python + PostgreSQL 就已经足够,没有必要为了"看起来高级"强行加入微服务、Kafka、Kubernetes。
真正的架构能力不是"我会多少中间件",而是:
我知道什么时候应该简单,什么时候应该复杂。
三、我知道哪些工作应该交给 AI
确定问题、设计好系统之后,才轮到一个非常重要的问题:
哪些事情适合交给 AI?
不是所有事情都应该交给 AI。
AI 比较适合代码生成、代码重构、测试生成、文档生成、信息提取、内容总结、日志分析、数据转换,以及大量重复性的开发工作。
例如,一个开发任务可以变成:
需求分析
→ AI 生成方案
→ AI 生成代码
→ AI 生成测试
→ AI 分析错误
→ 人工验证
但这里有一个重要前提:
你必须知道自己为什么让 AI 做这件事情。
否则很容易变成:
不知道怎么做
→ 问 AI
→ 复制代码
→ 运行
→ 出问题
→ 继续问 AI
这种方式看起来使用了 AI,实际上只是把"写代码"变成了"复制 AI 的代码"。
更好的方式是:
我知道目标,我知道约束,我知道验收标准,然后让 AI 负责实现。
这时候,AI 才真正成为你的生产力工具。
四、我知道哪些工作应该自动化
AI 解决的是"智能",自动化解决的是"重复"。
这是两个不同的概念。
比如你每周都需要读取 Git 提交、整理任务、生成总结、制作周报、发送给团队。
第一次可以自己做,第二次也可以自己做,但如果每周都重复做:
为什么不把它变成一个自动化流程?
于是整个过程可以变成:
定时任务
→ 获取 Git 数据
→ AI 总结
→ 生成周报
→ 保存结果
→ 通知用户
这时候,你就从"每周做一次工作",变成了"设计一个系统,让它每周自动完成"。
所以 AI 时代值得思考的,不只是:
"AI 能不能帮我完成这个任务?"
还应该继续问:
"这个任务是不是以后都不需要我亲自做?"
这两个问题的区别非常大。
五、我能判断结果是否正确
这是我认为 AI 时代最重要的能力之一。
AI 越强,这个能力可能越重要。
因为 AI 最大的问题并不是"完全不会",而是:
它经常会生成一个看起来非常正确的答案。
比如 AI 写了一个订单接口,代码没有报错,测试也通过了。
但真正上线之前,你还需要问:
- 重复请求会不会创建两个订单?
- 库存会不会超卖?
- 权限是否正确?
- 支付失败怎么办?
- 数据库事务是否完整?
- 异常如何恢复?
- 敏感信息有没有泄露?
如果这些问题没有考虑,那么:
代码能运行,不代表系统是正确的。
所以 AI 时代非常重要的一项能力,就是验证 AI,而不是相信 AI。
你需要不断问:
这个方案真的合理吗?这个代码真的安全吗?这个数据真的正确吗?这个架构真的适合当前业务吗?这个模型输出真的可信吗?有没有遗漏边界情况?
AI 可以给你答案,但最终做判断的人仍然是你。
六、我能让系统长期运行
最后还有一个经常被忽略的问题:
做出来之后呢?
Demo 很容易,真正困难的是让它稳定运行半年、一年甚至更久。
一个真正上线的软件,需要考虑认证、权限、数据隔离、日志、监控、告警、测试、部署、回滚、备份、性能、安全和成本。
AI 应用还会多出一些问题,例如模型超时、模型限流、Token 成本、上下文长度、输出不稳定、工具调用失败以及 Prompt Injection。
所以:
"能跑"只是软件开发的开始。
真正的工程能力,是让系统能够运行、能够维护、能够扩展、能够发现问题,也能够从问题中恢复。
这也是为什么软件工程不会因为 AI 出现而消失。
恰恰相反:
AI 越快,越需要工程能力来控制这种速度。
七、这其实是一套完整的能力模型
把前面的内容放在一起,就会发现,AI 时代开发者需要关注的不再只是"会不会写代码"。
我知道要解决什么问题。
这是产品能力。
我知道怎么设计系统。
这是架构能力。
我知道哪些工作应该交给 AI。
这是 AI 应用能力。
我知道哪些工作应该自动化。
这是自动化能力。
我能判断结果是否正确。
这是判断能力。
我能让系统长期运行。
这是工程能力。
它们最终组成的是一条完整的问题解决链路:
定义问题
→ 设计系统
→ AI 辅助实现
→ 自动化执行
→ 验证结果
→ 长期运行
这可能比单纯掌握某一个框架,更接近未来开发者真正的核心能力。
八、从"使用 AI"到"构建 AI 系统"
这里其实存在一个很大的区别。
很多人现在使用 AI 的方式是:
遇到问题 → 问 AI → 得到答案 → 自己执行。
效率确实提高了。
但更进一步,可以变成:
遇到一类重复问题 → 分析解决流程 → AI 负责其中的智能部分 → 软件负责流程 → 自动化负责执行。
这时候,你就不再只是"使用 AI",而是在构建一个 AI 驱动的工作系统。
比如内容创作。
以前可能是自己找资料、整理、写文章、修改、发布。
现在可以逐渐变成自动收集资料,AI 总结,AI 提取选题,生成文章草稿,人工审核,再自动发布。
开发工作同样如此。
以前是看需求、写代码、测试、写文档。以后可以让 AI 参与需求分析、方案设计、代码生成、测试和文档,而人负责目标、约束和最终验证。
关键并不是:
"AI 帮我写了一段代码。"
而是:
"我能不能把一整个重复工作流变成系统?"
九、一个人 + AI,可能成为一种新的生产方式
过去,一个完整产品可能需要产品经理、设计师、前端、后端、测试和运维等多个角色协作。
AI 并不意味着这些角色会简单消失,而是一个人可以借助 AI 调动越来越多的能力。
一个开发者可以同时参与需求分析、产品设计、架构设计、代码开发、测试、部署和迭代。
这并不是要求每个人都变成"全栈 + AI + DevOps",而是让你开始理解完整的问题解决链路。
因为 AI 正在不断降低单个环节的门槛。
真正拉开差距的,越来越可能是:
你能不能把这些环节组织起来。
所以,我越来越喜欢用一句话描述这种变化:
一个人 + AI + 自动化 + 软件系统 → 持续解决一类问题
这里最重要的其实不是 AI。
而是:
你有没有能力找到一类值得长期解决的问题。
因为如果问题本身没有价值,AI 越强,只是让你更快地做出一个没人需要的东西。
十、未来真正值得竞争的是什么?
如果 AI 可以越来越快地生成代码,那么:
"谁写代码更快?"
这个问题的重要性可能会逐渐下降。
更重要的问题可能是:
谁更知道应该解决什么问题?
谁更知道应该怎么设计?
谁更知道哪些事情应该交给 AI?
谁更知道哪些事情应该自动化?
谁更能识别 AI 的错误?
谁更能把系统长期运行起来?
最终,你会发现:
真正的竞争力,不再只是"写代码的能力",而是"构建解决方案的能力"。
写在最后
AI 越来越强,代码生成越来越快,很多曾经需要大量时间完成的工作,现在可能只需要几句话。
这并不意味着开发者不重要了。
更准确地说:
开发者的价值正在从"实现代码",逐渐向"解决问题"移动。
过去,我们可能会因为"我会写代码"而获得竞争力。
现在,我们需要学会"我会使用 AI 写代码"。
而未来,更重要的可能是:
我知道该解决什么问题。
我知道怎么设计系统。
我知道哪些工作应该交给 AI。
我知道哪些工作应该自动化。
我能判断结果是否正确。
我能让系统长期运行。
最终:
一个人 + AI + 自动化 + 软件系统 → 持续解决一类问题
这可能就是 AI 时代,一个普通开发者最值得建立的能力。
不是和 AI 比谁写代码更快。
而是让 AI 成为你的执行能力,让自动化成为你的杠杆,让软件系统成为你的长期能力。
然后,找到一个真实的问题。
持续解决它。
这可能比单纯学习更多的技术,更接近 AI 时代开发者真正的价值。