AI

AI 越强,越要用编程训练判断

AI 正在降低代码生成的成本,却让问题拆解、架构判断、验证与维护能力变得更重要。

AI 能在几分钟内生成一个可以运行的 Demo,于是一个很自然的问题出现了:既然代码可以直接生成,人还有必要学习编程吗?

斯坦福大学计算机科学教授 Chris Piech 的回答是肯定的。但“学习编程”的重点正在变化:过去的大量时间花在记忆语法和 API 上,今后更重要的是拆解问题、组织数据、判断边界、验证结果,以及在系统出错时找到原因。

AI 降低的是代码生成成本,不是软件工程中判断与负责的成本。

Demo 能运行,不等于系统已经完成

AI 编程最容易制造的错觉,是把“第一版可以运行”误认为“任务已经完成”。

页面能打开、接口能返回、演示顺利,只能说明最显眼的路径暂时可用。真正棘手的问题往往要等到数据增长、并发出现、需求变化或其他开发者开始维护时才暴露:模型可能绕过原有服务层直接访问数据库,在多个地方重复权限判断,或者让同一种业务状态出现不同的表达。

这些代码未必立即报错,却会让系统逐渐失去一致性。几周后出现问题时,如果开发者看不懂数据流和架构,也就无法判断错误究竟来自业务规则、并发、缓存还是数据库。

因此,AI 写得越快,人越需要理解它替自己做了哪些决定。代码可以交给模型生成,系统后果仍要由人承担。

语法在贬值,问题拆解在升值

学习编程可以分成两个部分。

第一部分是语法:如何声明变量、怎样写循环、某个库调用哪个函数。AI 会越来越擅长处理这类工作,死记硬背的回报也会继续下降。

第二部分是解决问题:怎样把模糊需求拆成可以实现和验证的任务,数据如何组织,模块如何协作,异常情况由谁处理。AI 可以给出方案,却不能替团队决定哪些约束真正重要。

例如,“给订单增加超时关闭”看起来只是一个定时任务,实际还要回答:付款回调延迟怎么办?重复消息会不会造成二次处理?旧客户端能否识别新状态?任务失败后从哪里恢复?

真正的软件能力,体现在能否主动发现这些问题,而不只是把一个正常路径写出来。

AI 让新人可以绕过部分语法阻力,更早接触系统设计和真实项目。这是一种机会,但前提是不能只接收结果,还要追问它为什么这样拆、可能在哪里失败。

编程的价值,是提供即时且可证伪的反馈

编程是一种很少见的判断训练:提出一个假设,写成可运行的形式,然后立即从报错、测试、日志、性能和真实数据中获得反馈。

这个循环迫使人把“我觉得可行”变成“它能否通过验证”。条件写反、接口理解错误或数据结构不合适,都会留下可以观察的证据。人也正是在不断提出假设、读取失败和修正方案的过程中积累判断经验。

Agent 出现后,这个训练循环依然存在,只是代码不必再由人逐行输入。开发者的新任务是先写清验收标准,再判断模型的改动能否通过测试与真实场景的检查。

如果整个过程只剩下一句“帮我做完”,产出虽然出现了,反馈循环却被一并外包。人获得了作品,却没有获得与作品相匹配的理解。

把 Agent 从代写者变成陪练

AI 时代更有效的学习方式,不是拒绝工具,而是重新安排人与工具的分工。

可以先让 Agent 提出架构方案,但暂时不改文件;自己先判断模块边界和数据流,再与它的方案比较。代码生成后,要求它解释最重要的几个设计决定,并指出哪些输入最容易让程序失败。

需求变化时,先自己预测会影响哪些文件和状态,再看 Agent 的计划。遇到看不懂的代码,不要直接让它继续,而是缩小范围、梳理调用链、补一条失败测试,再亲手修改其中一小段。

这些动作会比全自动生成慢一些,却能把项目经验留在人身上。Agent 可以压缩试错周期,但不能替人积累全部经验。

基础没有消失,只是学习顺序变了

计算器普及后,人不必靠心算完成所有乘法,但仍要理解乘法代表什么。AI 编程也是如此。

API 名称和命令参数可以随用随查,变量、控制流、数据结构、函数边界等概念仍然重要。进入真实系统后,还要理解一次请求如何流动、状态保存在哪里、错误由谁处理,以及失败后如何恢复。

所以可以跳过一部分机械记忆,却不能跳过理解。学习路径可以从“先记住足够多语法,才能开始做项目”,转向“先做真实项目,在需要时补语法,同时持续补回概念、验证与架构能力”。

顶尖工程师的能力,是把现实问题交付成系统

AI 把第一版产品的门槛压低后,工程师的价值不再主要由记住多少代码决定。更重要的是:能否识别值得解决的问题,理解用户真正需要什么,并把模糊需求转化成可运行、可验证、可以长期维护的软件。

这也意味着,新人可以更早面对过去往往到资深阶段才会出现的问题:功能是否真的有用,数据是否支持判断,系统怎样应对失败,下一次变化会破坏什么。

学习编程的目标,正在从“独立敲完所有实现”扩展为“能够对一个真实系统作出判断并承担结果”。

每次合并 AI 生成的代码前,可以用三个问题检查自己是否也在成长:

  1. 我能否讲清这次改动的数据流?
  2. 我是否知道它最可能在哪里失败?
  3. 条件变化后,我能否独立判断修改范围?

如果三个问题都答不上来,得到的可能只是一次可运行结果。如果大部分能够回答,AI 才真正缩短了学习周期。

AI 越擅长写代码,学习编程就越不该停留在背语法。它更像是在训练一种能力:把模糊问题变成可运行、可验证,并且出错后仍然能够修复的系统。

原文:AI 越强越不能放弃学编程

Back to Blog

Related Posts

View All Posts »

AI SDK UI Stream 如何判断输出结束

text-end、finish-step、finish、HTTP Stream close 是四个不同层级的结束信号。把 text-end 当成回答结束,是 Chat UI 里最常见的流式状态误判。