斯坦福教授:别被“几分钟出Demo”骗
2026-08-07 04:25:38 · chineseheadlinenews.com · 来源: 51CTO技术栈
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会算概率,人还要不要学习推理?如果答案仍然是“要”,编程也一样。
工具能放大一个人的能力,前提是这个人有东西可供放大。
以下为访谈内容,我们进行了翻译与整理。
Chris Piech谈为什么仍要学习编程
AI替你写得越多,五周后的Bug越难收拾
Chris自己也大量使用AI编程。写出第一版已经不难,他更关注那些暂时看不出来的错误。
Chris Piech:我经常用AI编程,但我碰巧懂得不少编程和软件架构。如果没有这些知识,AI会开始做出一些糟糕的决定。
刚做完原型时,我可能感觉不到。五周后,等学生实际用起来,奇怪的Bug就会出现。那时如果我看不懂架构,也就没法帮他们解决问题。
这很像现在的Vibe Coding。
页面能打开,接口能返回,Demo演示也顺利,于是大家默认任务已经完成。等到数据开始增长、多人同时使用,或者第二个开发者来改需求,藏在架构里的问题才一个个露出来。
比如模型为了赶快实现功能,可能绕过现有服务层直接访问数据库,在三个地方各写一套权限判断,或者给同一份业务状态起了不同名字。
这些代码都能运行,测试不完整时甚至一路绿灯。几周后再加功能,开发者面对的是一套已经长歪的结构,改正某一行代码根本解决不了。
Chris担心的也是这件事:如果代码一直由AI代写,人会在什么时候失去那部分最值钱的架构判断?
AI做出的架构决定可能在五周后才暴露问题
语法正在贬值,拆解问题开始涨价
“AI is going to get really good at syntax.”
Chris Piech:AI会越来越擅长处理语法。
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可以参与创作,却不能替人积累全部经验。
Chris Piech分享自己会怎样使用Claude Code学习
计算器会乘法,孩子依然要学乘法
“Hard to skip the foundations.”
Chris Piech:基础很难跳过去。
Chris用了一个简单的类比。计算器会做乘法已经很多年了,学校仍然会教孩子乘法。需要调整的是学习重点:背出13×7的答案没那么重要,理解乘法代表什么依然重要。
放到编程里,道理差不多。
开发者可以少花时间背API和命令参数,变量、控制流、数据结构、函数边界这些概念却不能省。进入真实项目后,还要知道一次请求怎样穿过服务,状态保存在哪里,错误由谁处理,修改失败后怎样恢复。
否则,Agent生成的每一段代码都只能用“看起来没问题”来验收。一旦测试没覆盖到,开发者很难判断问题藏在业务规则、并发、缓存还是数据库里。
AI减少了记忆负担,也让学习路径可以重新排布。先理解概念,需要细节时再查;先看清数据流,需要实现时再让模型补语法。跳过机械记忆可以,跳过理解不行。
Chris Piech用计算器解释为什么基础不能跳过
顶尖工程师不必记住所有代码
访谈最后,Chris重新描述了他眼里的顶尖工程师。
这个人未必记得代码库里的每个函数,更重要的能力,是把现实中的问题转成应用、数据分析或者研究任务。
AI把做出第一版产品的门槛压低了。
Chris甚至认为,一名18岁的学生和朋友组队,也可能搭出一套很像样的代码库。新的难题随之出现:什么问题值得解决,用户究竟需要什么,哪个功能能让事情向前推进。
这些判断过去往往要到资深阶段才有机会练。现在新人也能借助Agent直接做产品,早点面对用户、数据和失败。写代码依然要学,学习目标已经从“独立敲完所有实现”,扩展到“能把一个真实问题交付成可用的软件”。
Chris给年轻人的建议很朴素:去做东西,做有人愿意使用、愿意喜欢的东西。作品一轮轮迭代,编码能力和解决问题的能力也会一起长出来。
Chris Piech谈AI时代顶尖工程师的能力
写在最后:不要把学习机会一键外包
Chris并没有劝开发者远离AI。恰恰相反,他自己经常用,也鼓励年轻人多做原型。
他提醒学生保持一种自觉:使用AI的时候,自己有没有一起成长?
这个问题可以放进每一次AI编程任务里。合并代码前,问自己三件事:我能不能讲清这次改动的数据流?我知不知道它最可能在哪里失败?需求换一个条件后,我能不能独立判断修改范围?
三个问题都答不上来,拿到的只是一次可运行结果。只要能答出其中大部分,Agent就在帮你缩短练习周期。
AI都会写代码了,现在学习编程的回报早已超过掌握一门语言。你是在训练自己把一个模糊问题,变成可运行、可验证、出了问题还能修的系统。
Claude Code可以替你敲出第一版。五周后那个Bug为什么出现,最后仍要有人看得懂。