AI越强越不能放弃学编程!斯坦福教授:别被“几分钟出Demo”骗走基本功,编程正在从背语法变成练判断

发布时间:2026/8/11 13:43:05
AI越强越不能放弃学编程!斯坦福教授:别被“几分钟出Demo”骗走基本功,编程正在从背语法变成练判断 “You should learn how to program.”Chris Piech你仍然应该学习编程。AI时代人们应不应该学习编程是一个很现实的问题。刚入门的人已经可以让Claude Code生成一套能运行的网页让Cursor读仓库、改文件、跑测试。过去需要学几个月才能做出的第一个作品现在可能一下午就能跑起来。既然代码可以直接生成为什么还要从变量、循环和函数学起斯坦福大学计算机科学教授Chris Piech在最近一期访谈里给出了一个很明确的答案要学。现在学编程更重要的是学会解决问题而不是只记住代码语法。备注Chris Piech是斯坦福大学计算机科学副教授斯坦福计算机科学本科、硕士和人工智能方向博士学位长期研究机器学习。他还是全球在线编程项目Code in Place的联合创办者已经和AI出现前后两代编程学习者打了多年交道。Chris已经连续6年在Code in Place这个在线编程课授课。这门在线编程课约有1.7万名学生和1000多名教师一个很有意思的变化是Cursor和Claude Code出现后课程报名人数差不多翻了一倍。大家没有因为AI会写代码就离开编程反倒来了更多人。Chris不拿就业前景劝学生。他在访谈里问了一个问题AI会写文章人还要不要学写作AI会算概率人还要不要学习推理如果答案仍然是“要”编程也一样。工具能放大一个人的能力前提是这个人有东西可供放大。以下为访谈内容我们进行了翻译与整理。AI替你写得越多五周后的Bug越难收拾Chris自己也大量使用AI编程。写出第一版已经不难他更关注那些暂时看不出来的错误。Chris Piech我经常用AI编程但我碰巧懂得不少编程和软件架构。如果没有这些知识AI会开始做出一些糟糕的决定。刚做完原型时我可能感觉不到。五周后等学生实际用起来奇怪的Bug就会出现。那时如果我看不懂架构也就没法帮他们解决问题。这很像现在的Vibe Coding。页面能打开接口能返回Demo演示也顺利于是大家默认任务已经完成。等到数据开始增长、多人同时使用或者第二个开发者来改需求藏在架构里的问题才一个个露出来。比如模型为了赶快实现功能可能绕过现有服务层直接访问数据库在三个地方各写一套权限判断或者给同一份业务状态起了不同名字。这些代码都能运行测试不完整时甚至一路绿灯。几周后再加功能开发者面对的是一套已经长歪的结构改正某一行代码根本解决不了。Chris担心的也是这件事如果代码一直由AI代写人会在什么时候失去那部分最值钱的架构判断语法正在贬值拆解问题开始涨价“AI is going to get really good at syntax.”Chris PiechAI会越来越擅长处理语法。Chris把学习编程分成两部分。一部分是语法怎样声明变量循环怎么写某个库该调用哪个函数。另一部分是解决问题怎样把一个大问题拆开数据应该怎样组织算法和业务规则怎样接在一起。模型正在快速代替第一部分。以后能不能背出每条命令分量会越来越轻。第二部分却躲不过去。假设需求只有一句“给订单增加超时关闭”。写出定时任务和状态更新并不难难的是继续往下问已经付款但回调延迟的订单怎么办关单消息重复消费会不会二次退款老版本客户端能否识别新状态任务执行失败后从哪里重试这些问题没有一个Prompt模板能替团队自动决定。以前很多初学者被语法卡住还没摸到解决问题这一层就放弃了。现在语法门槛降下来新人反而可以更早接触系统如何运转。不过有个条件不能只收下AI给出的结果还得追着它问清楚为什么这样拆。代码最好的地方是写错了马上露馅“You get immediate falsifiable feedback.”Chris Piech编程会立刻给你一个可以验证的反馈。这也是Chris坚持让人学习编程的原因。生活里的很多决定要几个月甚至几年才能看到结果。代码没有这么客气。条件写反了程序马上报错数据结构选得不合适性能测试很快就会拉响接口理解错了集成测试直接失败。编程把“我觉得这样可行”变成“运行一下看看”。提出假设、动手实现、读取失败、重新修改这个循环足够短一个下午就能做很多轮。Agent加入以后这套训练仍然成立。区别只是代码不一定由人逐行敲出来。开发者需要先写清验收标准再看模型的改动能不能通过测试、日志和真实数据的检查。如果整个过程只剩一句“帮我做完”这段反馈就被外包了。作品虽然出来了人并没有获得多少判断经验。别让Claude Code代写把它变成陪练主持人问Chris如果现在还是一名年轻开发者他会怎样学习。Chris先用Claude Code做很多原型然后要求它把完成项目所需的核心知识教给自己。原型只是练习材料每次动手都要把背后的概念补回来。一项任务可以这样跑先让Claude Code给出架构方案暂时不要改文件自己判断模块边界和数据流再允许它实现。代码生成后让它解释最重要的三个决定以及哪种输入最容易让程序失败。接着换一个需求先由自己判断会影响哪些文件再和Agent的计划对照。遇到看不懂的代码不要用“继续”把问题顶过去。让它缩小范围画出调用链补一条失败测试再由自己改掉其中一小段。这个动作看起来比全自动慢却能把项目经验留下来。Chris在访谈里还提到成为高产出工程师离不开实际投入的时间。他特意区分了“自己在创造”和“把任务交给Claude Code”。Agent可以参与创作却不能替人积累全部经验。计算器会乘法孩子依然要学乘法“Hard to skip the foundations.”Chris Piech基础很难跳过去。Chris用了一个简单的类比。计算器会做乘法已经很多年了学校仍然会教孩子乘法。需要调整的是学习重点背出13×7的答案没那么重要理解乘法代表什么依然重要。放到编程里道理差不多。开发者可以少花时间背API和命令参数变量、控制流、数据结构、函数边界这些概念却不能省。进入真实项目后还要知道一次请求怎样穿过服务状态保存在哪里错误由谁处理修改失败后怎样恢复。否则Agent生成的每一段代码都只能用“看起来没问题”来验收。一旦测试没覆盖到开发者很难判断问题藏在业务规则、并发、缓存还是数据库里。AI减少了记忆负担也让学习路径可以重新排布。先理解概念需要细节时再查先看清数据流需要实现时再让模型补语法。跳过机械记忆可以跳过理解不行。顶尖工程师不必记住所有代码访谈最后Chris重新描述了他眼里的顶尖工程师。这个人未必记得代码库里的每个函数更重要的能力是把现实中的问题转成应用、数据分析或者研究任务。AI把做出第一版产品的门槛压低了。Chris甚至认为一名18岁的学生和朋友组队也可能搭出一套很像样的代码库。新的难题随之出现什么问题值得解决用户究竟需要什么哪个功能能让事情向前推进。这些判断过去往往要到资深阶段才有机会练。现在新人也能借助Agent直接做产品早点面对用户、数据和失败。写代码依然要学学习目标已经从“独立敲完所有实现”扩展到“能把一个真实问题交付成可用的软件”。Chris给年轻人的建议很朴素去做东西做有人愿意使用、愿意喜欢的东西。作品一轮轮迭代编码能力和解决问题的能力也会一起长出来。写在最后不要把学习机会一键外包Chris并没有劝开发者远离AI。恰恰相反他自己经常用也鼓励年轻人多做原型。他提醒学生保持一种自觉使用AI的时候自己有没有一起成长这个问题可以放进每一次AI编程任务里。合并代码前问自己三件事我能不能讲清这次改动的数据流我知不知道它最可能在哪里失败需求换一个条件后我能不能独立判断修改范围三个问题都答不上来拿到的只是一次可运行结果。只要能答出其中大部分Agent就在帮你缩短练习周期。AI都会写代码了现在学习编程的回报早已超过掌握一门语言。你是在训练自己把一个模糊问题变成可运行、可验证、出了问题还能修的系统。Claude Code可以替你敲出第一版。五周后那个Bug为什么出现最后仍要有人看得懂。