文章 601
评论 5
浏览 235764

"AI 要取代程序员"说了三年了,我的真实观察是——

一、引言

三年前,"AI 要取代程序员"的说法铺天盖地。我当时也有些焦虑,但三年过去了,我所在的团队不仅没有裁人,反而还在扩招。

我的真实观察是:AI 没有取代程序员,但改变了"什么算编程能力"。


二、三个正在消失的能力

2.1 手写样板代码

以前:我们花大量时间手写 CRUD、配置类、DTO 转换等样板代码。记得刚入职时,写一个完整的订单模块需要两天——一天写 Controller、Service、Repository,一天写测试和配置。

现在:让 AI 生成这些代码只需要几分钟。

真实案例:

去年我们要做一个库存管理模块,按照以前的节奏至少需要三天。
我让新人小周尝试用 AI 辅助开发:

1. 向 AI 描述需求:"创建一个库存管理模块,包含商品入库、出库、盘点功能"
2. AI 生成了完整的代码结构:Controller、Service、Repository、DTO
3. 小周只需要调整业务逻辑和添加事务注解
4. 最终只用了半天就完成了,代码质量还不错

但这里有个关键:小周必须能看懂 AI 生成的代码,知道哪里需要修改。

现状:手写样板代码的能力正在快速贬值,因为 AI 能做得又快又好。

2.2 死记 API

以前:面试必问"Spring Boot 的启动流程"、"Redis 的数据结构"、"Java 集合类的实现原理"。我们花大量时间背诵 API 和源码细节,仿佛记住这些就是能力的证明。

现在:遇到不会的 API,直接问 AI 就好。

真实案例:

上个月我需要实现一个复杂的 Redis 缓存策略,涉及到 Lua 脚本和分布式锁。
说实话,我已经记不清 Redis Lua 脚本的具体语法了。

我直接问 AI:
"帮我写一个 Redis Lua 脚本,实现分布式锁的获取和释放,要求支持锁续期"

AI 立刻给出了完整的脚本,还解释了每个步骤的作用。
我只需要理解逻辑,不需要死记语法。

但关键是:我必须知道什么时候该用 Lua 脚本,什么时候不该用。

现状:死记硬背 API 的能力正在消失,因为 AI 是随时可用的"活文档"。

2.3 逐行调试

以前:遇到 bug,我们会逐行查看代码,打印日志,一步步排查问题。这个过程可能需要几个小时甚至几天。

现在:AI 能帮我们快速定位问题。

真实案例:

上周测试反馈一个空指针异常,堆栈信息很长,涉及多个服务调用。

我把堆栈信息粘贴给 AI:
"帮我分析这个空指针异常的根因"

AI 立刻指出了问题所在:
1. 在 OrderService.processOrder() 方法中,findById() 返回了 null
2. 后续代码没有做空检查
3. 建议使用 Optional 或添加 null 检查

我按照建议修复,问题很快解决了。

但关键是:我必须判断 AI 的分析是否正确,不能盲目信任。

现状:逐行调试的能力正在转变为"AI 辅助调试",纯手动调试的场景越来越少。


三、三个正在升值的能力

3.1 系统设计

以前:系统设计能力虽然重要,但在快速迭代的环境中,往往被"先做出来再说"的心态所忽视。

现在:AI 能写代码,但不能做系统设计。

真实案例:

今年初,我们要重构用户服务。团队里有两个方案:

方案 A:单体架构,简单直接
方案 B:微服务架构,扩展性好

我让 AI 帮我分析两个方案的优缺点,AI 给出了一份详细的对比表。

但最终的决策还是需要我来做:
1. 考虑团队的技术能力(微服务需要更多的运维投入)
2. 考虑业务的发展趋势(用户服务未来是否需要独立扩容)
3. 考虑成本和时间(微服务架构需要更多的开发时间)

最终我们选择了方案 A,因为当前团队规模小,业务也比较简单。

AI 可以提供信息,但不能做决策。

现状:系统设计能力正在成为区分普通程序员和优秀程序员的关键。

3.2 需求翻译

以前:产品经理提出需求,我们直接照着做。如果需求不清晰,就去问产品经理。

现在:AI 能帮我们实现需求,但前提是我们必须能正确理解和翻译需求。

真实案例:

产品经理说:"我们需要一个智能推荐系统,根据用户的浏览历史推荐商品"

这个需求很模糊:
1. 智能到什么程度?
2. 推荐的算法是什么?
3. 数据从哪里来?
4. 性能要求是什么?

我需要把这个模糊的需求翻译成具体的技术需求:
1. 使用协同过滤算法
2. 实时计算用户的兴趣向量
3. 从用户行为日志中获取数据
4. 推荐结果需要在 100ms 内返回

然后把这些技术需求交给 AI,让 AI 帮我实现具体的代码。

如果需求翻译错了,AI 生成的代码再好也没用。

现状:需求翻译能力正在变得越来越重要,因为 AI 需要清晰的输入才能产生好的输出。

3.3 代码审查

以前:代码审查主要关注代码规范、命名、注释等表面问题。

现在:代码审查需要关注更深层次的问题——AI 生成的代码是否正确、是否有安全隐患、是否符合业务逻辑。

真实案例:

上个月,小周用 AI 生成了一段支付相关的代码。代码看起来很完美,通过了所有测试。

但我在代码审查时发现了一个问题:
AI 生成的代码没有处理并发支付的情况。如果用户同时发起两次支付请求,可能会导致重复扣款。

我指出了这个问题,小周添加了分布式锁来解决。

AI 生成的代码往往是"看起来正确",但缺乏对业务场景的深度理解。

现状:代码审查能力正在变得更加重要,因为我们需要对 AI 生成的代码进行"把关"。


四、能力变迁图

能力变迁图(趋势示意):

┌─────────────────────────────────────────────────────┐
│                                                     │
│  正在消失的能力                                        │
│                                                     │
│  ┌─────────────────────────────────────────────┐    │
│  │  手写样板代码  │  ████████████░░░░░  │      │    │
│  └─────────────────────────────────────────────┘    │
│                                                     │
│  ┌─────────────────────────────────────────────┐    │
│  │  死记 API      │  ██████████████░░░  │      │    │
│  └─────────────────────────────────────────────┘    │
│                                                     │
│  ┌─────────────────────────────────────────────┐    │
│  │  逐行调试      │  █████████████░░░░  │      │    │
│  └─────────────────────────────────────────────┘    │
│                                                     │
└─────────────────────────────────────────────────────┘
                       ↓
┌─────────────────────────────────────────────────────┐
│                                                     │
│  正在升值的能力                                        │
│                                                     │
│  ┌─────────────────────────────────────────────┐    │
│  │  系统设计      │  ██████████████████  │      │    │
│  └─────────────────────────────────────────────┘    │
│                                                     │
│  ┌─────────────────────────────────────────────┐    │
│  │  需求翻译      │  █████████████████░  │      │    │
│  └─────────────────────────────────────────────┘    │
│                                                     │
│  ┌─────────────────────────────────────────────┐    │
│  │  代码审查      │  ████████████████░  │      │    │
│  └─────────────────────────────────────────────┘    │
│                                                     │
└─────────────────────────────────────────────────────┘

五、调整学习方向

5.1 减少投入的方向

减少投入的方向:

1. 不再死记硬背 API 和框架细节
   - 知道有这个功能就行,具体用法查文档或问 AI
   
2. 不再花大量时间手写样板代码
   - 让 AI 生成,自己专注于业务逻辑
   
3. 不再依赖逐行调试来解决问题
   - 学会用 AI 辅助定位问题,提高调试效率

5.2 增加投入的方向

增加投入的方向:

1. 系统设计能力
   - 学习设计模式、架构模式
   - 理解分布式系统原理
   - 掌握微服务设计原则
   
2. 需求翻译能力
   - 学会从业务需求中提取技术需求
   - 学会用清晰的语言描述问题
   - 学会拆解复杂任务
   
3. 代码审查能力
   - 学习代码质量标准
   - 掌握安全审查方法
   - 学会判断 AI 输出的质量
   
4. 领域知识
   - 深入理解业务逻辑
   - 了解行业最佳实践
   - 积累领域经验

5.3 具体行动计划

具体行动计划:

┌─────────────────────────────────────────────────────┐
│                                                     │
│  短期(1-3个月)                                      │
│  ├── 学习 Prompt 工程,提高 AI 使用效率                 │
│  ├── 练习用 AI 生成代码,并进行审查                     │
│  └── 阅读系统设计相关书籍                              │
│                                                     │
│  中期(3-6个月)                                      │
│  ├── 参与大型项目的架构设计                            │
│  ├── 练习将业务需求转化为技术方案                       │
│  └── 建立个人的代码审查标准                            │
│                                                     │
│  长期(6个月以上)                                     │
│  ├── 成为领域专家                                      │
│  ├── 培养团队的技术能力                                │
│  └── 关注技术趋势,保持学习                             │
│                                                     │
└─────────────────────────────────────────────────────┘

六、总结

6.1 核心观点

核心观点:

1. AI 没有取代程序员,而是改变了编程能力的定义
2. 以前比的是"会不会写",现在比的是"会不会用 AI 写得更好"
3. 正在消失的能力:手写样板代码、死记 API、逐行调试
4. 正在升值的能力:系统设计、需求翻译、代码审查
5. 程序员需要调整学习方向,拥抱 AI,提升核心竞争力

6.2 不焦虑的理由

不焦虑的理由:

1. AI 只是工具,不能替代人类的创造力和判断力
2. 编程的本质是解决问题,而不是写代码
3. 好的程序员从来不是"写代码最快的人",而是"解决问题最好的人"
4. AI 让我们从繁琐的工作中解放出来,专注于更有价值的事情

6.3 给年轻程序员的建议

给年轻程序员的建议:

1. 不要害怕 AI,要拥抱 AI
2. 不要和 AI 比写代码速度,要比解决问题的能力
3. 专注于提升核心竞争力,而不是表面技能
4. 保持学习,适应变化

💡 互动话题:你觉得 AI 对你的工作影响最大的是什么?你正在调整哪些学习方向?欢迎在评论区分享!


标题:"AI 要取代程序员"说了三年了,我的真实观察是——
作者:jiangyi
地址:http://www.jiangyi.space/articles/2026/07/21/1784445935358.html
公众号:服务端技术精选

服务端开发博客:后端架构、高并发、性能优化与微服务实战教程

取消