昨天刷到黄仁勋的一段采访视频,他说:
"编程已经不再重要了,因为AI可以编程。现在最重要的是学会与AI对话,告诉它你想要什么。"
评论区瞬间炸了。
有人说:"程序员要失业了。" 有人说:"黄仁勋不懂编程。" 还有人说:"终于可以不写代码了!"
作为一个写了12年代码的程序员,我想聊聊自己的看法。
一、黄仁勋说的是事实吗?
是,也不是。
编程确实在变简单
我亲身体验过AI辅助编程带来的效率提升:
场景1:写CRUD接口
以前:
- 打开IDE,新建Controller
- 写参数校验、写Service调用、写异常处理
- 写单元测试
- 总耗时:30分钟
现在:
- 告诉Cursor:"写一个用户注册接口,包含参数校验和异常处理"
- AI生成80%的代码
- 我review并微调
- 总耗时:5分钟
效率提升6倍。
场景2:重构遗留代码
以前:
- 读懂老代码逻辑(可能要半天)
- 小心翼翼地修改
- 担心改出bug
- 总耗时:1天
现在:
- 让AI分析代码逻辑
- AI给出重构建议
- AI生成重构代码 + 测试用例
- 我验证和调整
- 总耗时:2小时
效率提升4倍。
从这个角度看,黄仁勋说得没错——纯粹的"打字"确实不值钱了。
AI已经可以:
- 写标准的CRUD代码
- 实现常见的算法
- 生成单元测试
- 重构老代码
- 写文档和注释
但这只是故事的一半。
二、AI到底替代了什么?
我仔细分析了自己一周的工作,发现:
AI替代的部分(约占工作的40%):
✅ 重复性的代码编写(CRUD、Model、DTO) ✅ 标准化的单元测试 ✅ 简单的bug修复 ✅ 代码格式化和优化 ✅ 文档生成
AI无法替代的部分(约占工作的60%):
❌ 需求理解与澄清
- 业务方说"我要一个用户系统"
- 但他们真正需要的是什么?
- 需要支持哪些场景?
- 边界条件是什么?
❌ 架构设计
- 这个系统应该用微服务还是单体?
- 数据库该如何设计?
- 缓存策略怎么定?
- 如何保证高可用?
❌ 技术选型
- 市面上10种方案,选哪个?
- 每种方案的trade-off是什么?
- 团队能力能不能hold住?
- 长期维护成本如何?
❌ 问题诊断
- 生产环境突然变慢,原因是什么?
- 日志里一堆错误,先看哪个?
- 这个问题是数据库瓶颈还是代码问题?
❌ 代码Review
- AI生成的代码有没有安全隐患?
- 性能是否满足要求?
- 是否符合团队规范?
- 长期可维护性如何?
❌ 跨团队协作
- 和产品、运维、测试的沟通
- 技术方案的推动落地
- 突发问题的应急处理
结论:AI替代的是"编码"这个动作,但编码只是程序员工作的一部分。
三、一个真实的案例
上个月,我们接了一个需求:"做一个智能推荐系统"。
如果只是"打字",这事儿很简单:
我:帮我写一个基于协同过滤的推荐算法
AI:[生成一大段代码]
但实际情况是:
第1天:需求澄清
- 业务方:我们要给用户推荐商品
- 我:推荐的目标是什么?点击率还是转化率?
- 业务方:都要
- 我:那冲突怎么办?优先级?
- 业务方:...我们再想想
第3天:技术调研
- 协同过滤?深度学习?还是混合方案?
- 实时推荐还是离线计算?
- 冷启动问题怎么解决?
- 调研了5种方案,做了对比分析
第5天:架构设计
- 设计了召回 → 粗排 → 精排的三层架构
- 选定了Spark + Redis + TensorFlow的技术栈
- 定义了数据流和接口规范
第10天:编码实现
- AI帮我生成了70%的代码
- 但剩下30%的核心逻辑(特征工程、模型调优)需要反复调试
- Code review发现了3个性能问题和1个安全隐患
第15天:上线调优
- 灰度发布,监控指标
- 发现推荐准确率不达标
- 分析数据,调整策略
- 迭代了3个版本
如果只是"打字",第1天就结束了。但实际上,真正有价值的工作在后面的14天。
四、程序员的价值在哪里?
过去,程序员的价值 = 编码能力 × 工作时间
现在,程序员的价值 = (理解业务 + 架构设计 + 技术判断 + 问题解决) × AI效率加成
具体来说:
1. 理解业务的能力
好的程序员不只是"接需求",而是:
- 能听懂业务方的"方言"
- 能发现需求里的坑和矛盾
- 能提出更好的解决方案
- 能预见可能的问题
AI不懂业务。它只能按你的指令写代码,但不会问你"这个需求合理吗"。
2. 架构设计的能力
系统设计是一个trade-off的艺术:
- 性能 vs 成本
- 复杂度 vs 可维护性
- 快速上线 vs 长期演进
这需要:
- 对技术栈的深度理解
- 对业务场景的准确判断
- 丰富的项目经验
AI可以给你10种架构方案,但选哪个、为什么选,只有你能决定。
3. 技术判断的能力
- 这个开源框架靠谱吗?
- 这个新技术适合我们吗?
- 这个优化值得做吗?
- 这个风险可以接受吗?
AI没有判断力。它会告诉你Redis很快,但不会告诉你在你的场景下MySQL可能就够了。
4. 问题解决的能力
生产环境出问题了:
- 日志里一堆错误
- 监控指标异常
- 用户在投诉
你需要:
- 快速定位问题
- 找到根本原因
- 制定解决方案
- 防止再次发生
AI可以帮你分析日志,但诊断问题、做决策、承担责任的,是你。
五、那些被淘汰的,和那些不会被淘汰的
会被淘汰的程序员:
❌ 只会"打字"的码农
- 拿到需求,直接开写
- 不思考为什么,不关心业务
- 代码能跑就行,不管质量
- 遇到问题就搜Stack Overflow
❌ 拒绝使用AI的保守派
- "AI写的代码不靠谱"
- "我用不惯AI工具"
- "还是手写代码踏实"
- 结果效率被同行甩开10倍
❌ 只会用框架的API调用者
- 不理解底层原理
- 遇到问题完全不会调试
- 框架不支持的功能就没辙了
不会被淘汰的程序员:
✅ 懂业务的技术人
- 能和业务方对话
- 能发现需求背后的真实问题
- 能提出技术视角的解决方案
✅ 会设计的架构师
- 理解各种技术的trade-off
- 能设计可扩展的系统
- 能平衡短期和长期
✅ 善于用工具的效率专家
- 熟练使用AI辅助编程
- 把AI当"超级助手"
- 把时间花在更有价值的事情上
✅ 持续学习的终身学习者
- 不断学习新技术
- 不断优化工作方式
- 保持技术敏感度
六、我的应对策略
面对AI的冲击,我做了这些调整:
1. 拥抱AI,但不依赖AI
我的原则:
- AI生成的代码,必须完全理解后才提交
- 关键逻辑,自己设计,AI辅助实现
- 安全相关的代码,必须人工review
具体做法:
- 每天用GitHub Copilot / Cursor写代码
- 但会关掉AI,手写核心算法
- 定期code review AI生成的代码
2. 从"写代码"转向"设计系统"
减少时间:
- 重复性的CRUD → 5%(交给AI)
- 简单的业务逻辑 → 10%(AI辅助)
增加时间:
- 需求分析和设计 → 30%
- 架构设计和技术选型 → 25%
- Code Review和质量把控 → 15%
- 性能优化和问题诊断 → 15%
3. 深入业务,提升不可替代性
- 参加产品需求评审会
- 主动和业务方沟通
- 学习业务领域知识
- 提出技术驱动的创新
结果:从"需求执行者"变成"方案设计者"
4. 建立自己的知识体系
AI能替代的是"know-how"(知道怎么做) AI替代不了的是"know-why"(知道为什么)
我在做的事:
- 深入学习底层原理(操作系统、网络、数据库)
- 总结架构设计模式
- 积累问题诊断经验
- 建立自己的技术判断力
5. 提升软技能
技术只是工具,解决问题才是目的。
我在提升:
- 沟通能力(和产品、业务、运维的协作)
- 项目管理(需求拆解、风险控制)
- 团队协作(Code Review、技术分享)
- 决策能力(技术选型、优先级判断)
七、给程序员的5个建议
1. 立即开始用AI辅助编程
不要等,不要怀疑,现在就开始。
推荐工具:
- GitHub Copilot(基础)
- Cursor(强大)
- ChatGPT / Claude(万能助手)
用AI不是"作弊",而是提升效率的工具。
2. 把节省的时间投入到更有价值的事情上
AI帮你节省了40%的编码时间,你要用这些时间:
- 深入理解业务
- 学习架构设计
- 提升系统性思维
- 而不是摸鱼
3. 培养"工程师思维",而不只是"程序员思维"
程序员思维:给我需求,我写代码 工程师思维:
- 这个需求合理吗?
- 有更好的解决方案吗?
- 长期怎么演进?
- 如何保证质量?
4. 建立自己的"护城河"
找到AI短期内无法替代的能力:
- 行业领域知识(金融、医疗、电商)
- 复杂系统的架构能力
- 问题诊断和调优经验
- 团队协作和管理能力
5. 保持学习,但不要焦虑
技术迭代很快,AI也在进化。
但不要焦虑,要做的是:
- 关注核心原理(不变的部分)
- 快速学习新工具(变化的部分)
- 建立学习能力(最重要的能力)
八、写在最后
黄仁勋说"编程只是打字",他说的是编码这个动作的价值在下降。
但程序员的价值从来不只是"打字"。
真正有价值的是:
- 理解问题的能力
- 设计方案的能力
- 做出判断的能力
- 解决问题的能力
- 持续学习的能力
AI是工具,不是替代品。
就像计算器没有让数学家失业,搜索引擎没有让律师失业一样,AI不会让程序员失业——它只会让不思考的程序员失业。
未来的程序员,不是"码农",而是:
- 懂业务的技术专家
- 会设计的系统架构师
- 善用工具的效率大师
- 持续进化的终身学习者
AI时代,编程确实变简单了。
但成为一个优秀的程序员,从来没有变简单过。