前言

2024 年初,ChatGPT 爆火的时候,我焦虑得睡不着觉。

看着 AI 几秒钟生成我可能要写半小时的代码,我开始怀疑:”程序员这个职业是不是快完蛋了?”

现在一年多过去了,我的看法完全变了。AI 没有取代程序员,但确实改变了这个职业。这篇文章记录我的思考。

我经历的三个阶段

阶段一:焦虑期(2024 年初)

看到 AI 能:

  • 写完整的 CRUD 接口
  • 生成单元测试
  • 解释复杂算法
  • 甚至 debug

我的反应:”完了,我这 5 年经验不值钱了。”

那段时间:

  • 疯狂试用各种 AI 工具
  • 担心被裁员
  • 考虑转管理或产品

阶段二:依赖期(2024 年中)

开始日常用 AI:

  • 写注释让 AI 生成代码
  • 看不懂的代码扔给 AI 解释
  • 报错直接复制给 AI

效率确实提升了,但感觉自己变成了”AI 操作员”。

直到有一天,AI 生成了一段有严重性能问题的代码,我没仔细看就提交了。结果生产环境慢查询导致数据库 CPU 飙到 100%。

那一刻我意识到:完全依赖 AI,等于把自己的专业判断外包了。

阶段三:共生期(2024 年底至今)

现在我把 AI 当作:

  • 高级实习生:能干活,但需要指导
  • 搜索引擎 Plus:比 Google 更懂上下文
  • 代码审查助手:帮我发现遗漏

而我自己专注于:

  • 架构设计
  • 业务理解
  • 代码审查
  • 技术决策

AI 擅长 vs 不擅长

AI 擅长的(可以交给它)

任务 示例 我的做法
样板代码 Getter/Setter、Builder 模式 让 AI 生成,自己检查
单元测试 基于现有代码生成测试 AI 生成后补充边界条件
代码解释 看不懂的开源代码 让 AI 解释,再自己验证
格式转换 JSON 转 Java 对象 直接用 AI 生成
简单算法 排序、查找 AI 生成后理解原理

AI 不擅长的(必须自己做)

任务 原因 案例
架构设计 缺乏业务上下文 AI 只会给通用方案
技术选型 需要权衡多维度 AI 推荐的可能不适合团队
复杂调试 无法获取运行时信息 内存泄漏、并发问题
需求分析 不懂业务领域 把”简单”需求想复杂
代码审查 无法理解设计意图 误判合理的”坏代码”
安全审计 训练数据有漏洞 生成不安全的代码

未来最重要的技能

1. 提示工程(Prompt Engineering)

不是简单的”帮我写个函数”,而是:

1
2
3
4
5
6
7
8
9
10
11
差的提示:
"写一个用户登录接口"

好的提示:
"写一个 Spring Boot 用户登录接口,要求:
1. 使用 JWT Token,过期时间 2 小时
2. 密码使用 BCrypt 加密
3. 登录失败 5 次锁定 30 分钟
4. 返回统一响应格式 {code, message, data}
5. 记录登录日志到数据库
请包含完整的 Controller、Service、DTO"

如何提升:

  • 学习结构化提示词写法
  • 建立个人提示词库
  • 理解 AI 的能力和边界

2. 代码审查能力

AI 生成的代码必须审查,这要求你:

  • 能看出潜在的性能问题
  • 识别安全漏洞
  • 判断设计是否合理
  • 发现边界条件遗漏

练习方法:

  • 故意让 AI 生成代码,然后找 Bug
  • 参与开源项目的 Code Review
  • 学习常见反模式

3. 系统设计能力

AI 只能给局部优化,系统设计需要全局视野:

1
2
3
4
5
6
7
8
9
10
11
12
13
需求:做一个电商订单系统

AI 能做的:
- 生成 Order 实体类
- 写订单创建接口
- 生成订单状态机代码

AI 做不了的:
- 判断是否需要分库分表
- 设计库存扣减策略(预扣 vs 实扣)
- 选择消息队列还是同步调用
- 设计防超卖机制
- 权衡一致性和性能

提升路径:

  • 学习经典架构(微服务、DDD、CQRS)
  • 研究大厂技术博客
  • 画架构图,然后找人评审

4. 业务理解能力

最不容易被 AI 替代的,是对业务的深度理解。

同样的技术方案,在不同业务场景下完全不同:

场景 技术方案 原因
电商库存 最终一致性 + 异步补偿 允许短暂不一致
银行转账 强一致性 + 分布式事务 不允许任何不一致
社交 Feed 读扩散 + 缓存 性能优先
医疗记录 写扩散 + 审计日志 可追溯优先

如何提升:

  • 多和产品经理聊业务
  • 理解数据背后的业务含义
  • 关注行业动态

5. AI 工具链整合能力

未来程序员的工作流:

1
需求分析 -> AI 辅助设计 -> AI 生成代码 -> 人工审查 -> AI 生成测试 -> 人工验证 -> AI 辅助部署 -> 人工监控

需要掌握:

  • 多种 AI 工具的组合使用
  • 自动化流水线搭建
  • 质量门禁配置

我的学习建议

短期(3 个月)

  1. 熟练掌握 1-2 个 AI 编程助手

    • 我推荐 Cursor 或 Copilot
    • 建立个人提示词库
  2. 强化代码审查能力

    • 每周至少审查 5 个 PR
    • 重点关注 AI 生成的代码
  3. 学习提示工程

    • 看 OpenAI 官方文档
    • 练习结构化提示词

中期(6-12 个月)

  1. 深入学习系统设计

    • 读《设计数据密集型应用》
    • 做系统设计练习题
  2. 拓展技术广度

    • 了解 AI 原理(不需要深入算法)
    • 学习 DevOps 和云原生
  3. 提升软技能

    • 技术写作
    • 演讲表达
    • 跨团队沟通

长期(1-3 年)

  1. 建立技术影响力

    • 写技术博客(就像你现在做的)
    • 参与开源项目
    • 做技术分享
  2. 深耕业务领域

    • 成为某个领域的专家
    • 理解业务比理解技术更重要
  3. 培养产品思维

    • 理解用户需求
    • 关注数据指标
    • 思考技术如何创造价值

给不同经验者的建议

应届生/初级(0-2 年)

不要:

  • 完全依赖 AI 写代码
  • 不理解就复制粘贴
  • 忽视基础学习

要做:

  • 把 AI 当作老师,问”为什么”
  • 手动实现经典算法
  • 读优秀开源项目源码

中级(3-5 年)

不要:

  • 只做 CRUD,不思考架构
  • 拒绝学习 AI 工具
  • 陷入舒适区

要做:

  • 主动承担设计任务
  • 学习系统设计和性能优化
  • 建立技术影响力

高级(5 年以上)

不要:

  • 脱离一线,不懂新技术
  • 轻视 AI,认为只是玩具
  • 只管理不写代码

要做:

  • 引领团队技术方向
  • 培养新人
  • 关注业务价值

结语

AI 不会取代程序员,但会用 AI 的程序员会取代不会用的。

更重要的是,只会写代码的程序员会被取代,而懂业务、会设计、能决策的程序员不会。

保持学习,保持好奇,保持对技术的热情。AI 是工具,你才是主人。

参考