斯坦福CS146S换了新大纲,被删掉的那几讲比新加的更有信息量
本文目录
- CS146S现在到底是什么状态?
- 新旧两版大纲之间,被删掉的是什么?
- “软件工厂”这个词该怎么理解
- 这个信号对自学者意味着什么
- 三条新主题在中文世界的对应资源
- 作业仓库为什么八个多月没动了?
- 顺手给一套判断课程材料新鲜度的动作
- 哪几讲值得花时间,哪几讲可以快进?
- 第2讲那个作业为什么值得单独喊一声
- 上下文工程那一讲为什么ROI最高?
- 那个对照实验,一个下午就能跑完
- 第4讲那条自主度光谱,比任何工具都活得久
- 安全那两讲里,有一组数字被传错了
- 原文里还有几组更值得看的数字
- 它到底告诉了我们什么
- 怎么在自己仓库上测出当下的数
- 自学该走两周速通还是六周完整?
- 三种最常见的放弃姿势
- 自学者反而占的一个便宜
- Final Project占总评八成,自学者拿什么替代
- 2026年该用什么工具做这些练习?
- 这门课对不写代码的人有用吗?
- 三条能直接搬走的原则
- 这份手册的边界在哪儿?
- 常见问题解答
- 斯坦福CS146S 2026年还开吗?
- CS146S的课程材料是免费的吗,国内能访问吗?
- CS146S的作业仓库还能用吗?
- 只有一个周末,CS146S该学哪一讲?
- Semgrep用编码Agent找漏洞那组数据到底是多少?
- 没用过编码Agent,能直接学这门课吗?
- 自学怎么替代占八成分数的期末项目?
- 权威参考资料
摘要:斯坦福CS146S(The Modern Software Developer)已经在官网挂出新一期的课程描述,核心主题换成了MCP、agent skills、规格驱动开发、循环工程和软件工厂。而2025年秋那版大纲里的“现代终端”“一句话建应用”不见了。被删掉的那几讲,比新加的更有信息量——删的全是产品名,留的全是工程判断。另一个自学者必须知道的事实:作业仓库有3819颗星,但最后一次代码推送停在2025年11月10日,也就是说大纲已经换代、作业还是上一版的。下面给出逐讲取舍、两条自学路线、Final Project的替代方案,以及一处被广泛传错的安全实测数据。
先把最常被搜索的三件事在开头答完。
第一,这门课是真的。斯坦福CS146S,课程名The Modern Software Developer,讲师Mihail Eric,3学分,2025年秋首开,斯坦福课程公告里有独立条目。
第二,材料基本免费。官网、幻灯片、阅读清单、8周作业代码全部公开,唯一拿不到的是嘉宾演讲的完整录像。
第三,别按顺序啃。这是本文最想说的一句——大学课表是为有学分、有截止日期、有成绩单的在校生设计的,不是为下班后挤时间的工程师设计的。任何超过六周的自学计划,都会悄悄变成一个已放弃的计划。
搜索答案给完了。接下来是摘要给不了的东西:这门课在2026年自己改了什么,改动背后的行业信号,以及一份逐讲的取舍判断。
CS146S现在到底是什么状态?
这一节的信息在网上流传的版本大多已经过期,所以我直接去了一手源。
课程官网目前挂着的是新一期的课程描述,不再是2025年秋那版。页面上的确定信息:
- 学分:3学分
- 先修:CS111/CS161等价的编程经验,推荐修过CS221或CS229
- 形式:每周讲座 + 动手编码课 + 业界嘉宾演讲 + 期末项目
- 教室:420-041,讲师答疑时间周五12:00到12:30
- 助教:两个位置目前都还是待定
助教还没定这条挺有意思——它说明筹备还在进行中,嘉宾阵容和具体周次安排大概率会再变。所以如果你打算跟新一期,别现在就把整个学期的计划排死。
那份公开的先修要求也值得认真对待。这门课默认你有CS111级别的编程底子加基本工具经验。如果你从来没有用编码Agent真正交付过一个东西,冷启动硬啃这门课是收藏夹吃灰的标准路径。先补一周上手型入门,再进场。
新旧两版大纲之间,被删掉的是什么?
这是我认为整件事里最值钱的一段观察。
2025年秋那版的十讲结构,大致是这么排的:大语言模型与提示词 → Agent解剖与MCP → 上下文工程 → Agent协作模式 → 现代终端 → 测试与安全 → 代码审查 → 一句话建应用 → 部署后运维 → 软件工程的未来。
而官网现在的课程描述,点名的核心主题是这五个:MCP、agent skills、规格驱动开发、循环工程、软件工厂。学习目标写的是:设计Agent驱动的工作流、把工具和技能组合成可靠的开发系统、用软件工厂的原则更快更大规模地构建和演进软件。
两版并排看,加进来的东西很显眼。但更有信息量的是被拿掉的:
| 2025秋版的主题 | 在新描述里的处境 | 我的读法 |
|---|---|---|
| 现代终端(Warp等) | 消失 | 产品评测型内容,保质期以月计 |
| 一句话建应用(v0、Lovable等) | 消失 | 同上,且这类产品一年换三次定价 |
| 提示词工程 | 不再单列 | 被吸收进上下文与规格这两个更大的框架 |
| Agent解剖与MCP | 保留并前置 | 协议层的东西被证明是耐久的 |
| 上下文工程 | 保留 | 课程里最不容易过时的一讲 |
| 测试、安全、代码审查 | 并入“可靠的开发系统” | 从独立议题变成系统属性 |
| — | 新增:规格驱动开发 | 把需求翻译成可执行规格,成了独立能力 |
| — | 新增:循环工程 | 人机分工从“怎么下指令”移到“怎么设计迭代循环” |
| — | 新增:软件工厂 | 从单人产出转向流水线产出 |
把这张表读透,能得到一条比任何课程笔记都有用的原语:一门课两版大纲之间被删掉的东西,比被加进来的东西更有信息量。
加进来的东西可能只是追热点,删掉的东西一定是有人认真判断过“这个不值得占用十分之一个学期”。而这次删掉的两讲,恰好都是绑在具体产品上的内容。
“软件工厂”这个词该怎么理解
三个新主题里,软件工厂最容易被当成噱头,但它其实是整套变化的落点。
前面两个——规格驱动、循环工程——解决的都是“怎么让一次交付更可靠”。软件工厂问的是下一个问题:当一次交付已经可靠了,怎么让第二次、第十次交付不用重新组织一遍?
换成做独立站的语言就很好懂。你用Agent做出了第一个落地页,这是手工业;你把选题、生成、审查、上线这几步固定成一条能重复跑的线,每次只换输入,这才是工厂。差别不在单次产出的质量,在于第二次要不要重新想一遍流程。
保哥这两年做内容管线的体会是,绝大多数人卡在从手工业到工厂那一步,而不是卡在第一次做不出来。第一次做出来靠的是热情,做成流水线靠的是把每一步的输入输出定义清楚——那是纯粹的工程活,一点都不性感,但省下来的时间是成倍的。课程把它列成核心主题,说明这个判断已经不只是从业者的经验之谈了。
这个信号对自学者意味着什么
它直接决定了你该把时间花在哪儿。工具名的保质期以月计,工程判断的保质期以年计。2025年秋那版材料里,会过时的部分恰好就是新版删掉的那部分;两个核心模块讲的上下文失效模式、自主度检查点、安全审查闸门,从那时到现在一个都没变。
所以“2025年秋的材料是不是已经过时了”这个高频疑虑,答案是:过时的部分正好是你本来就该跳过的部分。
三条新主题在中文世界的对应资源
新增的三个主题里,有两个我已经单独拆过,可以直接当作课程之外的补充读物。
规格驱动开发那条腿,最成熟的落地形态是OpenSpec这类工具。我在Claude Code、OpenSpec、Superpowers三件套是刚需还是过度工程里做过一次比较刻薄的评估——结论是这套方法在多人协作和长周期项目上确实值,但单人小项目用它是纯负担。课程把它列成核心主题,说明学界的判断偏向前者。
循环工程那条腿更新,讲的是把人机分工从“怎么把这一轮指令写好”上移到“怎么设计一个能自己跑、又能被人叫停的循环”。给Agent装上刹车之后那张跑了一整夜的账单才真正消失那篇里讲了护栏的具体形态——迭代上限、上下文轮换阈值、掉沟检测的三个触发器。这些东西以前属于“老手的经验”,现在被写进了大学课表。
至于MCP和agent skills这对,课程把它们并列在第一句,本身就是个态度。这两者的关系在2026年上半年被吵得很凶,我在MCP、Skills、Hooks三大扩展机制怎么选里逐条对过官方文档——简单说,它们解决的不是同一层问题,把它们当竞品对比是提错了问题。
作业仓库为什么八个多月没动了?
这一条是我在准备这篇时顺手查出来的,但它的实用价值可能是全文最高的一条。
作业代码仓库的公开数据是这样的:
- 3819颗星、925个fork,热度确实很高
- 创建于2025年8月7日,最后一次代码推送是2025年11月10日
- Python项目,用Conda加Poetry管理,官方说明写的是Python 3.12
- 开着31个未关闭的issue
- 没有LICENSE文件
- 仓库描述里明确写着这是2025年秋那一期的作业
三个结论:
一,大纲和作业已经对不上了。课程描述换成了MCP、skills、规格驱动、循环工程、软件工厂,而作业还停在上一版的八周结构。你照着仓库跑,跑的是旧课。这不影响作业本身的价值(下面会说哪几个作业依然值得做),但你得知道自己在做的是什么。
二,没有LICENSE不等于随便用。公开可读和可再分发是两回事。缺少许可证的默认状态是“保留所有权利”,个人学习没问题,把它当成公司内训材料分发、或者把代码抄进商业项目,就得先问一句。这一点在源自大学的开源材料里非常常见,也非常容易被忽略。
三,31个未关闭的issue加上八个多月零推送,说明维护是停滞的。遇到环境问题别指望有人回你,Python 3.12加Poetry这套依赖,隔了大半年很可能已经装不动了。做心理准备:把环境跑起来这件事本身,可能就要吃掉你第一个晚上。
顺手给一套判断课程材料新鲜度的动作
这套动作对任何一份挂在GitHub上的教学材料都适用,花不到三分钟:
- 看最后一次推送时间,不是看星数。星数只反映它曾经火过,推送时间反映它现在还活着没有。一份三年前的高星仓库和一份上个月更新的低星仓库,后者对你更有用。
- 看未关闭issue里最新几条在问什么。如果全是“装不上依赖”,说明环境已经烂了;如果是内容层面的讨论,说明还有人在认真用。
- 看有没有LICENSE。决定你能用到什么程度。
- 把仓库描述和课程官网当前的描述对一遍。这一步最容易被跳过,也最容易发现问题——本文最重要的那个发现就是这么来的。
第四步值得单独强调。课程官网、作业仓库、社交媒体的宣传,这三处经常处在不同的时间线上,而大多数人只看其中一处就下结论。把它们对一遍,通常能省掉后面一整周的白工。
哪几讲值得花时间,哪几讲可以快进?
下面这张表是我最希望有人在开始之前递给我的。星级是我的判断,不是斯坦福的,理由在后面展开。
| 讲次 | 主题 | 判断 | 性价比最高的练习 | 2026年用什么工具做 |
|---|---|---|---|---|
| 1 | 大模型与提示词 | ★★☆ 必要地基,别恋战 | 同一提示词跑10次,量化输出方差 | 任意前沿模型API |
| 2 | Agent解剖与MCP | ★★★ 全课最该动手的作业 | 徒手写一个MCP服务端,不用框架不用脚手架 | MCP官方SDK |
| 3 | 上下文工程 | ★★★ ROI最高的一讲 | 写一页设计文档喂给Agent,和裸提示词跑同一任务做对照 | 项目规则文件 |
| 4 | Agent协作模式 | ★★★ 从写代码到管Agent的分水岭 | 用带检查点的方式指挥Agent交付一个真实功能 | 计划模式 |
| 5 | 现代终端 | ★☆☆ 终端老手直接跳(新版已删) | 不必做 | — |
| 6 | 测试与安全 | ★★★ 玩具和产品之间的闸门 | 对自己的仓库跑安全扫描,人工数真假阳性 | 静态扫描器加Agent复审 |
| 7 | 代码审查 | ★★☆ 和第6讲捆着学 | 对抗式审查一个AI写的PR,找出它自己没发现的3个问题 | 第二个Agent当评审 |
| 8 | 一句话建应用 | ★★☆ 好玩,但课在“差距”上(新版已删) | 生成一个应用,然后列出所有不能上生产的理由 | 任意应用生成器 |
| 9 | 部署后运维 | ★★☆ 读就行,除非运维是本职 | 用“Agent值班”的视角读SRE导论 | 纯阅读周 |
| 10 | 软件工程的未来 | ★☆☆ 播客级内容,通勤听 | 不必做 | — |
先看星级的分布形状。价值集中在第2到第4讲和第6到第7讲,也就是课程的中段;两头——开头的入门铺垫、结尾的趋势畅想——恰恰是自学者热情耗尽的地方,也恰恰是最可压缩的部分。
这个形状和新版大纲的改动方向是一致的:中段被保留和扩写,两头被删或者被压。两个独立来源指向同一个判断,这比任何单方面的推荐都可信。
第2讲那个作业为什么值得单独喊一声
徒手写一个MCP服务端——不套模板,也不让Agent帮你搭脚手架——是给Agent祛魅最快的路径。
亲手写完工具列表握手、亲眼看着模型(有时是错误地)决定调用你的哪个工具之后,整个Agent生态就不神秘了。协议本身的官方入门文档并不长,一个晚上足够走完。
这个作业最大的副产品是它会永久改变你写工具描述的方式。在服务端那一侧亲眼确认过之后,你会开始把每一条description都当提示词来写——因为它就是提示词。这件事读一百篇文章都不如自己写一遍。
上下文工程那一讲为什么ROI最高?
只精读一讲的话,选这讲。它是“从编码Agent拿到稳定输出的人”和“每次都在抽奖的人”之间的分界线。
这一讲的阅读清单至今仍是这个主题下最好的一份选材,尤其是Drew Breunig那篇长上下文失效模式——它给你经历过却叫不出名字的故障逐个命了名。四种,各有各的相貌:
- 污染:一个幻觉或错误进了上下文,之后被反复引用。症状是你纠正过的东西卷土重来。
- 分心:上下文长到模型过度关注历史,反而忽略了训练里学到的东西。症状是它开始机械重复前面的模式。
- 混淆:上下文里多余的信息被模型拿去生成了低质量回答。症状是输出里混进了另一个模块的约定。
- 冲突:新累积进来的信息或工具,和已有内容互相矛盾。症状是在两个方案之间反复横跳。
能把这四种分开,你就有了一套诊断语言。没有诊断语言的时候,所有故障看起来都是“它今天有点笨”,而你唯一的动作就是重开一轮。
那个对照实验,一个下午就能跑完
配套练习强烈建议照做:从积压需求里挑一个真实功能,写一页设计文档(约束、非目标、相关文件、业务规则),让同一个Agent把任务跑两遍——一遍带文档,一遍裸提示词,然后diff两次输出。
这个实验的典型结果是:裸提示词那版会凭空发明一个数据模型,和两层目录之外的既有模型直接冲突;带文档那版不会。一个下午,这门课的中心论点就摆在你自己的终端里,不需要相信任何人。
如果你做完之后想往下挖,上下文工程的减法实战那篇是这一讲的延伸——里面有可复现的基准数字、四种失效模式的现场排查顺序,以及一套先卸载再摘要的阈值打法。课程讲的是这门学科存在,那篇讲的是它在2026年长成了什么样。
第4讲那条自主度光谱,比任何工具都活得久
第4讲的耐久内容只有一样:自主度光谱。它回答的是全行业都在绕圈的问题——给Agent多大自主权、检查点设在哪。
光谱给的答案不复杂:简单任务放手跑,中等任务能省八成时间但要人工收尾,复杂任务必须分段审查。真正难的不是记住这三档,而是判断手上这个任务属于哪一档。
我用下来最好使的判据是问一句:如果它做错了,我要花多久才能发现?五分钟内能发现的(跑不起来、测试红了),放手;要到下个迭代才发现的(数据写歪了、边界条件漏了),分段审查。这个判据比“任务复不复杂”准得多,因为复杂度是关于任务的,而可发现性是关于你的系统的——后者才是决定风险的那个变量。
这一讲的作业是全程指挥Agent、而不是亲手敲代码地交付一个完整项目,正好接在第3讲写的设计文档后面。两个作业是连着的,别拆开做。
安全那两讲里,有一组数字被传错了
第6和第7讲当一个整体学,它们合起来是全课最清醒的部分。而它们的核心阅读材料里,有一组数字在中文和英文世界都被反复传错,错得还挺严重。
流传的版本是:“Semgrep用编码Agent扫11个大型开源项目,Claude Code找出了46个真实漏洞,但误报率86%。”
翻Semgrep那篇原始实测会发现,46这个数字的含义完全不是这样:
Claude Code报告了46个漏洞,真阳性率14%、误报率86%。作为对照,Codex报告了21个,真阳性率18%、误报率82%。
也就是说,46是它报出来的条数,不是真实漏洞数。按14%的真阳性率算,真正成立的大约只有6条。原始说法把结论抬高了七倍多。
原文里还有几组更值得看的数字
被传丢的部分反而更有用:
- 两个Agent合计产出400多条安全发现,由Semgrep的安全研究团队逐条人工复核,其中约20个是高危漏洞。
- Claude Code最擅长的是越权访问(IDOR)类问题,真阳性率22%。
- 它最不擅长的是跨文件跨函数的污点追踪:SQL注入真阳性率只有5%,XSS只有16%。
- 实测用的是Claude Code v1.0.32配Sonnet 4、Codex v0.2.0配o4-mini——都是2025年的版本。
最后那条尤其重要。拿一年前的版本得出的结论,今天照抄是危险的;但反过来,说“现在的模型肯定好多了”同样没有证据。正确的姿势是把这组数字当成量级参考,然后在你自己的仓库上跑一遍拿到当下的数。
它到底告诉了我们什么
剥掉被夸大的部分,这组数据的真实含义反而更清晰,而且更有指导性:AI安全审查真实到值得用,又不可靠到绝不能当唯一闸门。
那个5%和16%的分布尤其值得琢磨。模型擅长的是单点能看出来的问题(越权访问基本上看一个接口就够了),不擅长的是要串起好几个文件才能确认的问题(污点从入口流到危险函数)。而后者恰恰是电商站最高发的那一类——用户提交的评论、问答、富文本,每一个都是跨越了好几层才落到渲染或者查询上。
把这一讲落到实处,我在Claude Code安全实战里写过一整套可执行的配置:权限白名单、密钥外置、用生命周期钩子做硬闸。课程讲的是为什么,那篇讲的是怎么配。
怎么在自己仓库上测出当下的数
转述的百分比不值得信,你自己跑出来的值得。整个流程半天能走完:
- 挑一个你写过、但已经放了几周的仓库。放几周很关键——刚写完的代码你还记得所有假设,会不自觉地帮它辩护。
- 先跑一遍传统静态扫描器,把结果存下来当基线。不要先跑Agent,否则你的判断会被它的叙述带走。
- 再让Agent做一遍审查,要求它每条给出文件、行号和触发路径。没有触发路径的发现一律先标灰——这是筛掉大部分误报最省力的一道闸。
- 人工逐条判真假,记下总数和真阳性数。这一步不能外包,也不能跳。
- 按类型分组统计。你会发现自己的分布和公开实测未必一致,因为它取决于你的代码风格和技术栈。
第五步往往是最有价值的。公开实测告诉你这个工具的平均能力,只有你自己的数据能告诉你它在你的代码上是什么能力——而后者才是你要用来做决策的那个数。跑一次,你对“AI安全审查靠不靠谱”这个问题的答案就从别人的转述变成了自己的结论。
自学该走两周速通还是六周完整?
在校生用十周,是因为学期就是十周。你没有学期约束,也没有让慢节奏对学生生效的那两样东西——外部截止日期和成绩单。
所以路线只给两条,用一个问题分流:你用编码Agent交付过真实的东西吗?
| — | 两周速通 | 六周完整 |
|---|---|---|
| 适合谁 | 已经每周指挥Agent干活 | 还没用Agent交付过真实的东西 |
| 前置 | 无 | 先花约1周跟上手型入门 |
| 第1到2讲 | 只扫阅读材料,半天 | 阅读加MCP服务端作业,3到4天 |
| 核心闭环 | 第3讲到第4讲到第6/7讲,三个连续练习块 | 同样三块,摊开到几周 |
| 项目 | 一个真实仓库,两个专注的周末 | 相同 |
| 后三讲 | 按兴趣选,可不做 | 选修一讲 |
核心闭环那一行是不许跳的:第3讲写设计文档做对照实验(一个晚上)→ 第4讲带检查点交付一个真实功能(两到三个晚上)→ 第6和7讲对自己的仓库做扫描加对抗式审查(一个晚上)。其余全部可选。
如果分流问题的答案是“还没有”,那就先别碰CS146S。先补那一周入门,再走六周路线进场。想找一条已经本土化过的上手路径,用Vibe Coding做SEO工具的8步实战是我为完全没交付过东西的人写的,做完一个能跑的小工具再回来,体感完全不同。
三种最常见的放弃姿势
路线本身不难,难的是走完。见过的放弃姿势基本是这三种,每一种都有对应的拆解办法:
第一种:从第1讲开始按顺序读,读到第3讲热情耗尽。这是最普遍的一种,因为前两讲的内容对有经验的人来说是复习,而复习是最消耗意志力的活动——你既学不到东西,又觉得跳过不踏实。办法很简单:直接从第3讲开始,把第1到2讲当成需要时再回头查的参考。
第二种:卡在环境上。作业仓库停更了大半年,依赖装不上是大概率事件。这时候人会误以为是自己的问题,然后花一个晚上和Poetry搏斗,第二天就不想打开电脑了。办法是:如果30分钟装不上,直接放弃跑官方作业,用你自己的项目做同样的练习。练习的价值在动作本身,不在那份代码。
第三种:只做输入不做输出。读完所有材料、收藏所有链接,然后什么都没变。这一种最隐蔽,因为过程中的感受一直很好。判据是:如果你这周没有产出一段自己跑过的diff,那这周你没在学这门课。
三种放弃姿势有个共同点——它们都发生在“动手”之前。课程设计者把八成分数压在期末项目上,本身就是对这件事的预判。
自学者反而占的一个便宜
在校生必须按当期指定的工具选型走,因为作业要对着规格评分。你可以自由替换——第4讲用你真实在用的Agent跑,第6讲的扫描直接指向你自己的代码库。
只要替换是有意识的,自学版CS146S比学分版更贴近你的工作。这也是为什么前面那条“作业仓库停更了”其实没那么致命:你本来就不该照着评分标准做作业,你该照着自己的项目做。
Final Project占总评八成,自学者拿什么替代
一门课把分数排成期末项目八成、周作业一成半、课堂参与半成,等于明说它不相信“读”能产生这项能力。
这个设计我完全同意,所以话也说直白:十讲全读完但什么都没做,你没上过这门课,你只是读了一篇关于它的长文。
替代方案要和真项目同构——用一个仓库把整条管线走通。规格是这样的:
- 挑一个你真心希望它存在的东西。自学里稀缺的是动力,不是信息。这一条比后面四条加起来都重要。
- 生成任何代码之前先写设计文档:约束、非目标、相关文件、业务规则。对应第3讲。
- 用带显式检查点的方式指挥Agent构建,而不是一口气收下一个巨型diff。对应第4讲。
- 宣布完成之前先过闸门:安全扫描加对抗式Agent审查,修掉真问题。对应第6到7讲。
- 部署到带最低限度日志的环境。对应第8到9讲,降低深度即可。
整套流程两个专注的周末装得下。它把这门课从词汇表变成肌肉记忆,还会留给你任何阅读都给不了的东西:一份“我的Agent工作流在哪一步断掉”的具体记忆——你真正的学习发生在那里。
保哥自己做这个替代项目的时候选的是一个拖了很久没做的内部看板。第四步那道闸门当场就打了脸:对抗式审查扫出11条,3条是真的,其中一处未校验的重定向就在我记得当时“审过”的代码里。任何阅读材料的教育效果,都比不上发现自己亲手批准过的漏洞。
2026年该用什么工具做这些练习?
课程材料里的工具选型有一部分是2025年秋的快照,直接照抄会踩到已经变了的东西。给一份替换建议:
| 练习 | 课程原设定 | 2026年的做法 | 注意什么 |
|---|---|---|---|
| 提示词方差实验 | 任意前沿模型API | 不变 | 跑10次是下限,schema漂移经常要更多样本才看得出 |
| 徒手写MCP服务端 | MCP官方SDK | 不变,但用最新版SDK | 包名和传输方式在2026年上半年有过调整,别抄老教程 |
| 上下文对照实验 | 项目规则文件 | 不变 | 规则文件要短,长了会稀释你想验证的那条 |
| 带检查点交付功能 | 计划模式 | 加上循环护栏 | 迭代上限和掉沟检测,新版大纲把这块单列成了循环工程 |
| 安全扫描 | 静态扫描器加Agent复审 | 不变,但自己数真假阳性 | 别信任何转述的误报率,用你自己仓库的数 |
| 对抗式代码审查 | 第二个Agent当评审 | 换独立上下文的子代理 | 同一个窗口里自审等于自己给自己打分 |
最后一行值得多说一句。让同一个Agent在同一个会话里审查自己刚写的代码,它会带着写代码时的全部假设去审——那些假设恰恰是漏洞的来源。换一个独立上下文的子代理,是最低成本的“换个人看”。
想把整条工具链摸清楚再动手的,Claude Code从安装到工作流的完整指南是一条更省事的路径,它讲的是主线骨架;CS146S讲的是骨架背后的判断依据。两个一起看,比只看其中一个划算得多。
这门课对不写代码的人有用吗?
这个问题问的人不少,值得单独答一段,因为答案是“有用,但要换一种读法”。
做SEO、做独立站运营、做内容的人,大多不会去徒手写MCP服务端,也不会关心Poetry怎么装。但这门课的中段——上下文工程、自主度光谱、审查闸门——讲的其实不是编程,是怎么和一个不太可靠但很能干的协作者一起干活。这件事和写不写代码没关系。
三条能直接搬走的原则
第一,先写规格再动手,这条在内容生产上比在编程上更成立。让Agent写一篇文章,直接给标题和裸提示词,它会给你一篇看起来很像那么回事、但每一段都是安全废话的东西。先写一页约束(读者是谁、不写什么、必须包含哪几个事实、语气边界),产出质量的差别是量级的。这就是第3讲那个对照实验,只是把代码换成了文章。
第二,检查点比自主度重要。自主度光谱那一讲的核心不是“该给多大权限”,而是“检查点设在哪”。批量改100篇文章的时候,正确的形状不是一口气跑完再看,而是跑3篇停下来验一次——因为前3篇里出现的系统性偏差,会在后97篇里原样复制。
第三,输出必须过闸门,而且闸门不能是它自己。第6到7讲讲的是安全扫描和对抗式审查,换到内容场景就是事实核查和第二双眼睛。让同一个Agent检查自己刚写的东西,它会带着写作时的全部假设去检查——那些假设恰恰是错误的来源。
这三条合起来,其实就是把软件工程里已经验证过几十年的东西,搬到一个新的协作对象身上。课程真正教的不是工具,是分工。而分工这件事,在哪个行业都通用。
这份手册的边界在哪儿?
三个诚实的限定,说清楚比藏着好。
第一,逐讲判断基于2025年秋的公开材料。新一期的具体周次安排、嘉宾阵容和作业还没公布。以往的模式看,工具选型那几讲大概率会换,两个核心模块大概率原样保留——但这是推测,不是事实。
第二,作业仓库的状态会变。我核对时它停在2025年11月10日、31个未关issue、无LICENSE。新学期开始前后很可能会有一次大更新,值得在开工前自己去看一眼最新推送时间。这类会过期的事实,最好养成核对而不是引用的习惯。
第三,这份手册刻意用深度换导航。每个核心讲值得的篇幅都远超“一句判断加一个练习”。用这一页决定把时间花在哪儿,用课程材料本身去把时间花掉。做AI相关的自养工具是同一个道理——我在Vibe Coding重塑SEO工作流那篇里反复强调过,工具清单救不了你,跑通一遍才行。
常见问题解答
斯坦福CS146S 2026年还开吗?
课程官网目前挂着新一期的课程描述,教室420-041、讲师答疑周五12:00到12:30这些信息都已经列出,两个助教位置还是待定状态。课程描述本身已经换代,核心主题变成了MCP、agent skills、规格驱动开发、循环工程和软件工厂。因为筹备还在进行中,具体的周次安排和嘉宾阵容大概率还会调整,别现在就把整个学期的计划排死。
CS146S的课程材料是免费的吗,国内能访问吗?
官网、幻灯片、阅读清单和8周作业代码全部公开免费,官网和GitHub都能直接打开。拿不到的是嘉宾演讲的完整录像,散见于视频平台,需要自己解决网络条件。需要注意的是作业仓库没有LICENSE文件,缺少许可证的默认状态是保留所有权利——个人学习没问题,但当成公司内训材料分发或者把代码抄进商业项目之前,最好先确认一下。
CS146S的作业仓库还能用吗?
能用,但要有心理准备。仓库有3819颗星、925个fork,热度很高;可是最后一次代码推送停在2025年11月10日,至今八个多月零提交,还开着31个未关闭的issue。它对应的是2025年秋那一版的八周结构,而课程描述已经换代,所以大纲和作业目前是对不上的。依赖用Conda加Poetry管理、Python 3.12,隔了大半年很可能已经装不动,把环境跑起来本身可能就要吃掉一个晚上。
只有一个周末,CS146S该学哪一讲?
第3讲上下文工程,并且必须做配套实验,不能只读。具体做法:从积压需求里挑一个真实功能,写一页设计文档(约束、非目标、相关文件、业务规则),让同一个Agent把任务跑两遍,一遍带文档一遍裸提示词,然后diff两次输出。典型结果是裸提示词那版会凭空发明一个和既有代码冲突的数据模型。一个下午,这门课的中心论点就摆在你自己的终端里。
Semgrep用编码Agent找漏洞那组数据到底是多少?
流传最广的说法“Claude Code找出46个真实漏洞、误报率86%”是把结论抬高了七倍多。原文说的是Claude Code报告了46个漏洞,真阳性率14%、误报率86%,也就是真正成立的大约6条;Codex报告21个,真阳性率18%。两者合计400多条发现,人工复核后约20个是高危。分类型看,Claude Code在越权访问上真阳性率22%,但在需要跨文件跨函数污点追踪的类型上很弱——SQL注入只有5%、XSS只有16%。测试用的是2025年的版本。
没用过编码Agent,能直接学这门课吗?
不建议。官网写明的先修是CS111或CS161等价的编程经验,推荐修过CS221或CS229,课程默认你已经有基本的工具经验。如果你从来没有用编码Agent真正交付过一个东西,冷启动硬啃是收藏夹吃灰的标准路径。正确顺序是先花大约一周跟一个上手型入门,做出一个能跑的小东西,再走六周完整路线进场。
自学怎么替代占八成分数的期末项目?
用一个真实仓库把整条管线走通,五步:挑一个你真心希望它存在的东西;生成任何代码之前先写设计文档,包含约束、非目标、相关文件和业务规则;用带显式检查点的方式指挥Agent构建,而不是一口气收下巨型diff;宣布完成之前先过闸门,做安全扫描加对抗式Agent审查并修掉真问题;最后部署到一个带最低限度日志的环境。两个专注的周末装得下,它会留给你一份“我的工作流在哪一步断掉”的具体记忆。
权威参考资料
本文标题:《斯坦福CS146S换了新大纲,被删掉的那几讲比新加的更有信息量》
本文链接:https://zhangwenbao.com/stanford-cs146s-self-study-2026.html
版权声明:本文原创,转载与引用请注明作者与原文链接。许可协议: CC BY 4.0