AI 时代,计算机专业学生该怎么学?
一、48 小时学完一门课:一个 MIT 研究生的真实案例
最近推特上一个帖子被疯传,讲的是一位 MIT 研究生如何将一个学期的学习压缩进 48 小时。

很多人一开始以为这只是又一个标题党。但当细节被还原出来后,越看越觉得这个方法可能真的直击了学习的本质。
故事是这样的。
这位 MIT 研究生需要通过一门自己从未学过的学科的资格考试。他用了一个工具——Google 的 NotebookLM,但他的用法和大多数人完全不同。
他上传的不是一本教材。
而是 6 本教科书、15 篇研究论文,以及他能找到的所有课程讲稿。
然后他只问了 NotebookLM 一个问题:
"这个领域里,所有专家都共享的 5 个核心思维模型是什么?"
不是"帮我总结一下"。不是"解释一下这个主题"。
而是——思维模型。那种通常需要教授花很多年才慢慢形成的东西。
紧接着,他问了第二个问题:
"现在告诉我,这个领域里专家们在哪 3 个地方存在根本分歧?每一方最强的论点是什么?"
仅仅 20 分钟,他就拿到了一张整个领域的智识地图:哪些是公认的共识,哪些是至今仍在争论的前沿问题,哪些是尚未有定论的开放难题。
大多数学生花一整个学期,可能都还没搞清楚一个领域到底在争什么。他用 20 分钟就看到了全貌。
然后他做了第三件事。
"请生成 10 个问题,这些问题要能区分一个真正理解这个学科的人,和一个只是背了很多事实的人。"
接下来他花了大量时间逐一作答,边答边查原始资料。这是整个方法中最耗时、也最关键的环节。每答错一道题,他不是看完答案就翻过去,而是继续追问:
"告诉我为什么这里错了,我漏掉了什么。"
不断回答,不断被纠正,不断暴露理解中的漏洞,不断修补。
到了第 48 个小时,他已经能和自己的导师就这个领域进行正常的学术讨论,而不至于被当场"打爆"。
真正改变的不是工具。
是问题。
大多数人把 NotebookLM 当成一个高级荧光笔——标重点、做摘要、导出笔记。但这位学生把它当成了一个读过这个领域几乎所有文献的私人导师。
一个学期和 48 小时之间的差距,不在于内容的多少。
而在于你知不知道该问什么问题。
二、这个案例给我的启发
看完这个案例之后,我反复在想一件事:他到底做对了什么?
表面上看,是三个好问题。但往深一层想,他真正做到的是一件更本质的事情:
他把"理解"和"熟悉"这两件事拆开了,然后用完全不同的策略分别对待。
这是我从这个案例中获得的最大洞见。
"理解"是快的,"熟悉"是慢的
我们平时说的"学会",其实混杂了两种完全不同的东西:
- 理解:掌握一个领域的逻辑框架、核心模型、关键争论。知道它在讲什么,知道什么重要什么不重要。
- 熟悉:在大量接触和反复练习之后形成的直觉、手感、模式识别能力。
理解可以很快。一个聪明人听一遍好的解释,可能就能抓住一个学科的骨架。
熟悉一定很慢。它需要时间、需要重复、需要在不同场景下反复遇到同样的东西。
但我们的教育体系从来没有区分过这两者。一个学期的课程,可能只有几个小时是在帮你"理解",剩下的时间全部是在帮你"熟悉"——反复听讲、反复做题、反复复习。
这就是为什么传统学习要花一个学期。不是因为"理解"需要那么久,而是因为"熟悉"需要那么久。
他做对的第一件事:极速压缩"理解"
问共识、问争议——这两步的本质是跳过所有细枝末节,直接抓住一个领域最底层的逻辑结构。
这就像去一个陌生城市,不是先背每条街的名字,而是先看一眼地图,知道东南西北、知道主干道在哪、知道核心区域是什么。有了这个全局视角,后面无论你走到哪里都不会迷路。
他做对的第二件事:用苏格拉底追问加速"熟悉"
这是很多人忽略的部分。
如果他只做了前两步——问共识、问争议——那他得到的只是一个漂亮的知识框架,但不是真正的掌握。
真正让他在 48 小时后能和导师正面交锋的,是第三步:让 AI 反复追问、反复纠错、反复挑战。
正常的学习反馈循环是这样的:学了 → 以为自己懂了 → 考试或实践中翻车 → 发现不懂 → 再学。这个循环可能几周才转一圈。
但用 AI 做苏格拉底追问之后,这个循环变成了:回答 → 被指出错误 → 当场修正 → 再回答 → 再被指出更深层的漏洞。几分钟就转一圈。
他用高密度的问答,把原本需要几周甚至几个月才能积累的反馈,压缩到了几个小时之内。
他做对的第三件事:主动暴露无知
大多数人学习的本能是保护自己——挑自己会的做,跳过不会的,避免暴露自己的无知。
但这位学生反其道而行:他主动让 AI 暴露自己的漏洞。每答错一题就追问"我到底错在哪里"。
这很痛苦,但这恰恰是学习真正发生的时刻。认知科学早就证明了:当你自信满满地给出一个答案,然后发现自己错了——这个瞬间产生的"认知冲突",是记忆形成最强烈的时刻。
真正的学习不是"看懂",而是"被打脸"。
所以这套方法的本质是什么?
把它拆到最底层,其实就三件事:
- 用"共识+争议"极速搭建知识骨架——压缩"理解"所需的时间
- 用苏格拉底追问制造高密度反馈循环——加速"熟悉"的积累
- 主动暴露无知并即时修正——让学习发生在最有效的认知冲突中
这不是什么魔法,也不是什么 AI 时代才有的新发明。它的底层原理——主动回忆、即时反馈、间隔重复——认知科学已经研究了几十年。
AI 做的只是一件事:把这些原理的执行成本降到了几乎为零。
以前你想要一个能随时追问你、随时纠正你、还读过整个领域所有文献的私人导师,你需要花几十万读一个好大学。
现在你只需要一个 AI 工具和一套好的提问策略。
三、迁移到计算机专业:为什么这套方法特别适用?
原案例没有说清楚那位 MIT 学生学的是哪门课。但这不重要。重要的是:这套方法的底层逻辑是通用的,而且在计算机专业上可能比大多数学科更加适用。
为什么?
因为 CS 几乎所有核心课程都是"先抽象,再实现"
回想一下你学过或即将学的 CS 课程:
- 操作系统:先理解进程、线程、调度、内存模型 → 再写实验
- 计算机网络:先理解分层、协议、拥塞控制 → 再写 socket 程序
- 数据库:先理解索引、事务、并发控制 → 再做系统实现
- 编译原理:先理解词法、语法、语义分析 → 再写编译器
- 分布式系统:先理解一致性、复制、容错 → 再做服务设计
每一门课都有同一个结构:先掌握一套抽象模型,再把这个模型投射到具体的代码和系统中。
这些课最大的难点从来不是"代码量大",而是抽象层次高。
这恰恰就是 48 小时法最擅长解决的问题。它能帮你在极短时间内搭起一门课的理论骨架——核心模型是什么、关键权衡在哪里、哪些概念是一切的支点。有了这个骨架,你后面做实验、写项目的效率会完全不同。
但要说清楚:这套方法适用于哪部分学习
计算机专业的学习大致可以分为两个阶段:
阶段一:建立理论认知
理解核心概念、掌握思维模型、知道关键权衡、能够回答"为什么"。
这部分,48 小时法可以直接适用,而且效率远超传统听讲。原因前面已经说过:主动回忆+即时反馈的学习效率,是被动听讲的数倍。
阶段二:实践与验证
写代码、做实验、做项目、调试、测试。
这部分不能跳过,但做法可以进化。
传统的做法是从头手写所有代码。但在 AI 时代,更高效的方式可能是:你先把核心逻辑想清楚,让 AI 生成代码,然后你去 review、去测试、去追问每一个设计决策背后的原因。
这不是偷懒。恰恰相反——review 代码比写代码对认知参与的要求更高。写代码时你可能只关注"能跑就行",但 review 时你必须理解每一行逻辑、必须思考边界条件、必须判断实现方案是否最优。
而且很多学生手写代码通过了测试就结束了,从不做复盘。代码提交了,但经验没有沉淀。
真正完整的学习闭环应该是:理论速通 → 实践验证 → 苏格拉底追问 → 认知复盘。
前两步建立能力,后两步确保你不会陷入"以为自己懂了其实没懂"的陷阱。
四、以 CS61A 为例:一个可直接操作的工作流
说了这么多方法论,接下来用一门具体的课来演示怎么落地。
我选的是 UC Berkeley 的 CS61A: Structure and Interpretation of Computer Programs。

选它的原因很简单:这门课被公认为北美本科阶段最好的计算机入门课之一。 它不教你某种语言的语法,而是教你"如何像计算机科学家一样思考"——抽象、递归、数据结构、面向对象、解释器、声明式编程,一门课涵盖了 CS 最核心的思维方式。课程资料完全公开,全世界的学生都可以自学。
下面是完整的工作流。
阶段零:准备资料(30 分钟)
去 CS61A 的课程官网(cs61a.org),把以下资料收集齐:
- 教材:Composing Programs(composingprograms.com),这是整门课的核心文本
- Lecture slides:所有讲义
- Discussion worksheets:讨论课的练习题
- Lab 和 Project 说明文档
- 历年 Midterm 和 Final 试卷(含答案)
把这些资料上传到 NotebookLM(或者分批贴进 Claude / ChatGPT 的长文本对话中)。
优先级:教材 > 试卷 > Discussion > Lecture slides > Lab/Project 文档。
阶段一:理论速通(4-6 小时)
第一步:看到整张地图
基于我上传的 CS61A 课程资料,请回答:
- 这门课的核心主线是什么?它从头到尾在解决一个什么根本问题?
- 课程分为哪几个大的模块?每个模块解决什么核心问题?
- 模块之间的逻辑关系是什么?为什么要按这个顺序教?
这一步完成后,你脑子里应该有一张清晰的全景图:这门课从函数式抽象讲起,经过数据抽象和面向对象,最终到达解释器和声明式编程。整条主线贯穿的是一个问题——如何管理程序的复杂性。
第二步:挖出核心思维模型
这门课里,所有内容都建立在哪些核心思维模型之上? 请列出 5-7 个最重要的。对于每一个:
- 用一句话说清楚它是什么
- 它在课程中反复出现在哪些地方
- 如果不理解它,会在哪些地方卡住
你会得到类似"抽象"、"环境模型"、"递归思维"、"数据即程序"、"求值规则"这样的核心模型。
对于每个不太理解的模型,立刻追问。比如:
请详细解释 CS61A 中的环境模型(Environment Model)。 用一个具体的代码例子,说明 frame 是怎么创建的、变量是怎么查找的。 当涉及高阶函数和闭包时,环境模型会发生什么变化? 学生在这个概念上最常犯的错误是什么?
第三步:标记雷区
在 CS61A 的学习中,学生最容易混淆的 5 组概念是什么? 对于每一组,它们的核心区别是什么?有没有一个判断标准可以立刻区分它们? 这门课中有没有看似简单但实际非常容易理解错的概念?
这一步的目的是提前知道哪里有坑,避免后面掉进去还不自知。
第四步:分模块苏格拉底追问
从第一个模块开始,逐个深入。
现在我们深入学习"函数式抽象"这个模块。 请你扮演 CS61A 的资深 TA,一次只问我一个问题。 从基础开始,逐步深入。 如果我答对了,继续问更难的。 如果我答错了,告诉我错在哪、正确的思路是什么,然后换一个角度再考同样的知识点,直到我真正理解。
每个模块进行 30-60 分钟的追问。模块推进顺序:
- 函数式抽象 + 环境模型(最重要,多花时间)
- 递归与树递归
- 数据抽象与序列操作
- 面向对象编程
- Scheme 与解释器
- SQL 与声明式编程
阶段二:真题检验(4-6 小时)
理论速通之后,用历年试卷来检验你到底掌握了多少。
把一份 Midterm 试卷发给 AI:
这是 CS61A 的一份期中试卷。请一次给我一道题,等我作答。 我答完后请评分,指出错误,并解释正确思路。 如果我做对了,也请告诉我有没有更优雅的解法。
关键:先自己认真做,写出完整答案,然后再让 AI 评判。
"觉得自己会"和"真的能写对"之间的差距,就是在这一步暴露的。
对于每道做错的题:
这道题我错了。请告诉我:
- 我的思路哪里偏了?
- 正确的思路第一步应该想什么?
- 这道题考察的核心概念是什么?
- 请再出一道考察相同概念但形式不同的题,我再做一次。
一直做到你能稳定做对同类型的题为止。
阶段三:项目实践(20-30 小时)
CS61A 有四个核心项目,每一个都经过精心设计,不要跳过:
- Hog:练习控制流与高阶函数
- Cats:练习字符串处理与递归
- Ants:练习面向对象编程
- Scheme Interpreter:整门课的集大成——你要亲手实现一个编程语言的解释器
每个项目的工作流:
1. 先理解项目全貌
这是 CS61A 某某项目的说明文档。请帮我梳理: 这个项目的整体目标是什么? 它分为哪几个阶段?每个阶段实现什么? 最难的部分是什么?为什么难?
2. 每个函数先自己想清楚逻辑
不要直接写代码。先把思路讲出来:
我要实现 scheme_eval 函数。根据我的理解,它的逻辑是:
- 如果是自求值表达式,直接返回
- 如果是符号,在环境中查找
- 如果是调用表达式,先 eval operator 再 eval operands 然后 apply
- 如果是特殊形式,走特殊逻辑
请评估我的思路是否完整,有没有遗漏?
3. 核心函数自己写,辅助函数可以让 AI 生成后 review
对于项目的核心逻辑(比如 Scheme Interpreter 中的 eval 和 apply),建议自己手写。这些函数是项目的灵魂,手写的过程会迫使你把抽象概念变成具体实现。
写完后让 AI review:
这是我写的代码。请从逻辑正确性、边界条件、代码风格三个方面给出反馈。
对于辅助性的函数,可以让 AI 生成初版,然后你逐行审查,对每个不理解的地方追问。
4. 自己设计测试
请给我 5 个测试 case,先只给输入,我来预测输出。
如果预测错了,说明你对逻辑的理解还有漏洞——回到苏格拉底追问。
5. 项目完成后做认知复盘
这个项目真正教会我的 3 个核心概念是什么? 我在实现过程中最容易犯的错误模式是什么? 学到的思维方式可以迁移到哪些其他场景?
阶段四:期末冲刺 + 查漏补缺(4-6 小时)
请你扮演 CS61A 的出题教授,从所有内容中挑出 15 个最重要的知识点,逐一向我提问。难度从中等到困难。一次一题,等我作答后再继续。
然后拿一份 Final 试卷限时模拟。做完后分析错题、针对性强化薄弱环节。
时间总览
| 阶段 | 内容 | 预计时间 |
|---|---|---|
| 阶段零 | 准备资料 | 0.5 小时 |
| 阶段一 | 理论速通 + 苏格拉底追问 | 4-6 小时 |
| 阶段二 | 真题检验 + 错题深挖 | 4-6 小时 |
| 阶段三 | Lab + Project 实践 | 20-30 小时 |
| 阶段四 | 期末冲刺 + 查漏补缺 | 4-6 小时 |
| 合计 | 33-49 小时 |
如果每天投入 4-5 小时,大约 一到两周 可以完成整门课的学习。
几个特别提醒
环境图一定要自己画。 CS61A 最经典的考法就是 Environment Diagram。光看懂不够,必须自己动手。可以用 PythonTutor(pythontutor.com)对照验证。
递归题必须自己想。 先自己想 10 分钟,哪怕想不出来也要写出目前的思路,然后让 AI 给提示而不是给答案。直接看答案你会觉得"原来如此",但换一道你照样不会。
Scheme Interpreter 不要跳过。 这个项目是整门课的压轴。做完它你会对"程序是如何被执行的"有质的理解。很多人觉得难就绕过去了,但这恰恰是最值得投入时间的地方。
五、总结
回到最开始那个 MIT 的案例。
那位学生真正厉害的地方,不是他用了什么 AI 工具,而是他想明白了一件事:
学习中真正耗时的不是"理解",而是"熟悉"。而传统教育从不区分这两者,所以把所有时间一锅炖了。
他做的事情很简单:用共识和争议快速搭起骨架,用苏格拉底追问高密度地暴露和修正认知漏洞,然后把节省下来的时间投入到真正需要时间的地方。
对于计算机专业学生来说,这套方法的价值可能比其他学科更大。因为 CS 的每一门课都有清晰的"抽象层→实现层"结构,理论部分天然适合被快速压缩,而省下来的时间可以全部投入到实践中——做项目、写代码、审查代码、调试、测试、复盘。
最后一句话:
AI 时代学计算机,不是少思考,而是把低价值的重复劳动交给 AI,把所有的认知资源集中在真正重要的事情上——理解结构、暴露盲区、验证认知、积累直觉。
选一门你想攻克的课程,准备好资料,试一次这套方法。
你可能会发现,自己比想象中学得更快、更深。