你打开一个 GitHub 仓库,20 万 Stars。你本能地以为里面藏着一套精妙的框架源码,或者一个能改变世界的算法库。翻了半天,一行可执行代码都没有。不是藏起来了,是真的没有。
这就是 ossu/computer-science。一张课程表,仅此而已。它不是脚手架,不是 CLI 工具,不是 AI Agent 运行时。它是一个精心编排的自由课程清单,把 MIT、哈佛、普林斯顿这些顶尖大学的计算机科学核心课程揉在一起,让你用大约两年时间,在互联网上读完一个本科 CS 学位的主体内容。
但别因为它”只是一张课程表”就低估它。在 GitHub 上,它被 20 万多人标了星,被 fork 了超过 2.5 万次,Discord 社区里每天有几千人在讨论同一门课的同一道习题。能让人持续投入两年的东西,一定不只是”整理得好”。
这篇文章想讲清楚一件事:这张课程表到底能不能替代一个 CS 学位,以及你必须为它付出什么代价。
这张课程表凭什么值 20 万 Star
先说这门”学位”的设计逻辑。OSSU 不是随便从网上收集一堆 MOOC 链接扔进 README 里,它按照 ACM 和 IEEE 联合制定的 CS 2013 课程指南来组织内容。这意味着你学的东西和正规大学里某个计算机系的学生在结构上是基本对齐的,只是去掉了通识课和体育课。课程被拆成四个阶段,每个阶段有明确的前置条件。下面这张图能帮你建立整体印象,后面会逐个拆开讲。

Intro CS 让你先试试水温,看自己到底喜不喜欢这个方向。Core CS 是主体,覆盖了编程、数学、系统、算法、安全、应用和伦理八个板块,相当于本科前三年的全部硬核内容。Advanced CS 是选修阶段,你可以根据兴趣选系统编程、安全、理论或者数学方向深入。最后的 Final Project 逼你把学到的所有东西拼成一个能拿出手的项目。
每个板块下面的课程都来自经过验证的在线资源。核心编程用的是加拿大 UBC 的 How to Code,核心算法用的是斯坦福的算法专项课,计算机系统走的是一条非常硬核的路线:从 Nand2Tetris 用逻辑门搭建计算机开始,再到 CMU 的 15-213 深入 x86-64 体系结构、内存层级和操作系统基础。这不是”看看视频就能过”的课程,CMU 那门课的教材 CS:APP 原价 160 美元,而且必须是美国版。
换个角度看,这张课程表最厉害的地方,不是它收录了什么,而是它明确排除了什么。OSSU 的维护者对课程质量有一套近乎偏执的标准:必须开放注册、必须定期开课、教学材料必须经过验证。这也是为什么你不会在上面看到任何”三小时学会 Python”或者”七天搞定机器学习”的内容。
但最打动我的不是课程质量本身。我翻了 GitHub Issue #727,一个 GitHub 用户 spamegg1 在 2020 年宣布完成了整个 OSSU 课程,整整花了两年,全职投入。他在帖子里说了一句让我停了很久的话:“计算机科学和编程,区别比你想象的大得多。我原本以为自己喜欢编程,后来才发现我真正喜欢的是计算机科学,尤其是算法。Core Theory 里 Kruskal 最小生成树算法配合路径压缩和按秩合并的并查集,运行时间分析涉及反阿克曼函数,美到我眼眶湿了。”
这就是这套课程的价值所在:它不会把你训练成一个能写 CRUD 的码农,它在试图给你一个完整的学科视野。但反过来讲,这也意味着 OSSU 不适合所有人。如果你只想快速上手一个框架然后找工作,这张课程表会把你逼疯。它的理论课比重不低,离散数学、算法分析、自动机理论这些东西,是必修课,不是选修课。不过说再多理论分析,都不如自己打开看看实际感受一下。
跑起来看看
先打个预防针:这不是一个你 git clone 下来就能跑的项目。整个仓库的结构一目了然,但”用”这个词在这里的定义跟你想的完全不一样。
computer-science/
├── README.md # 课程总览 + 全部课程链接
├── CURRICULAR_GUIDELINES.md # CS 2013 对齐标准
├── CONTRIBUTING.md # 课程增删的审核流程
├── HISTORY.md # 课程版本演进记录
├── FAQ.md # 常见问题
└── extras/
├── courses/ # 额外高质量但不符合课程标准的资源
└── readings/ # 推荐阅读书单和经典论文
你”使用”它的方式,就是 fork 这个仓库,然后在自己的副本里用勾选标记记录每一个完成的课程。没有注册系统,没有打卡平台,没有助教催你交作业。你自己决定什么时候开始,什么时候休息,什么时候放弃。
在 Discord 社区里流传着一句话:“speedrunning always takes longer”。急于求成的人往往最终花的时间更多,因为他们跳过了真正需要消化的部分。社区里最常见的节奏建议是每周 20 小时,两年走完。如果你有全职工作,这个时间可能翻倍。
有几点真实到扎心的体验,来自社区中完成者的复盘:Nand2Tetris 被大多数人称为”开窍时刻”。用最基本的 NAND 逻辑门一步步搭建出一台能跑俄罗斯方块的计算机,这种体验在传统的编程教学中几乎不会有。教材 CS:APP 必须买实体书,而且国际版和北美版内容不同,北美版是唯一完整的版本。课程之间的衔接并不总是平滑的,从 CS50 直接跳到斯坦福的算法专项,坡度相当陡。
如果你打算认真走一遍,有两件事要提前想清楚。你需要一个同伴,或者至少一个活跃的 Discord 频道来讨论问题。自学最大的敌人不是难度,是孤独。另外,完成时间很可能比你预估的长 50%。spamegg1 全职跑了两年,2024 年开始跟 OSSU 的博主 0x1eaf 一年只完成了四门核心课加半本离散数学教材。正常的生活节奏下,两年半到三年是一个更现实的预期。但时间只是成本的一部分,更关键的问题是:你到底是什么样的学习者?
什么时候跟,什么时候绕道
| 你是什么人 | 跟不跟 | 理由 |
|---|---|---|
| 非科班程序员,想补齐理论基础 | 跟 | 这是目前最结构化的免费路径 |
| 本科在读 CS 学生 | 挑着跟 | 补充学校没教好的课,不用全走 |
| 想转行做开发但时间紧迫 | 绕道 | 直接上 bootcamp 或者 The Odin Project 更快 |
| 已工作 5 年以上的工程师 | 挑着跟 | 补算法和系统课即可,编程课跳过 |
| 高中生想提前接触 CS | 跟 | 但需要先补完高中数学,特别是预备微积分 |
| 纯兴趣驱动,不打算靠这个找工作 | 跟 | 这是最好的”为知识而知识”的场景 |
不适用的情况也很明确:
-
如果你现在的目标是在三个月内找到一份前端开发的工作,OSSU 会严重拖慢你的进度。它的设计初衷是”完整的学科教育”,不是”职业技能速成”。你需要的是 FreeCodeCamp 或者 The Odin Project,而不是 OSSU。 -
如果你对理论过敏:Core Theory 板块要求你不只是”会用排序算法”,而是能分析 Kruskal 算法在并查集路径压缩优化下的时间复杂度,涉及反阿克曼函数。spamegg1 把这个称为两年中最美的体验,但同时也承认这对大多数人来说”不是必须的内容”。你如果不享受这种级别的理论推导,诚实面对自己就好,挑着上。
但不管你怎么选,一个项目的社区健康度是绕不开的参考维度。OSSU 在这方面的表现怎么样?
社区靠不靠谱
| 指标 | 数据 | 说明 |
|---|---|---|
| Stars | 约 20.5 万(截至 2026 年 6 月) | GitHub 全站 TOP 30,教育类项目第一 |
| Forks | 约 2.5 万 | 大量学习者在自己的 fork 中追踪进度 |
| 核心维护者 | 3 人 | Bus Factor 偏低,但项目本身不需要高频迭代 |
| Open Issues | 23 | 主要是课程替换讨论,非 Bug |
| 协议 | MIT | 无商业使用限制 |
| 最新 commit | 2026 年 6 月 26 日 | 持续活跃,最近更新主要是课程链接维护 |

Stars 数在非代码类项目中属于顶级。但这个数字的真正含义不是”这个项目有多好”,而是”有多少人对自学 CS 这件事感到焦虑”。20 万 Stars 的背后,是 20 万个觉得自己的教育不够、或者根本没有机会接受正规 CS 教育的人。
Discord 社区是 OSSU 真正活着的部分。每天都有学习者在不同的课程频道里讨论习题、分享笔记、互相鼓励。有人做完 Nand2Tetris 的 Project 5 后发帖子说”我终于搞懂了 CPU 怎么执行指令”,底下一排人回”兄弟我也是第 5 周才开窍的”。这种氛围在纯异步的 MOOC 平台上极难复现。
三个维护者对一个 20 万 Stars 的项目来说确实太少了。项目的贡献流程写得很清楚:
课程新增/替换审核流程:
1. 在 Issue 区发起讨论,说明拟替换的课程和理由
2. 与 CS 2013 课程指南对齐,标注覆盖的知识点
3. 验证课程是否开放注册、是否定期开课
4. 社区讨论达成共识(至少获得维护者之一批准)
5. 提交 PR,链接到讨论 Issue
这套机制保证了课程质量,但也意味着进展速度取决于维护者有没有时间看 Issue。2026 年最近的一次 commit 只是文档更新,课程本身已经进入了一个相对稳定的阶段。这既是好事,说明内容成熟了,也是隐忧,迭代动力在减弱。
聊完了社区,该说真话了。值不值得跟?我的判断比你可能预想的要复杂一些。
值不值得跟
先把话说在前头:这个项目我判断”值得跟”,但跟的前提比你想象的要苛刻。
OSSU 最被低估的价值不在课程本身,而在它解决了一个几乎所有自学者都绕不开的问题:当你面对互联网上无穷无尽的免费课程时,你怎么知道该先学哪个、后学哪个?你怎么判断一门课的质量?你怎么确认自己学得是否够深?OSSU 用一张经过社区几年打磨的课程表回答了这三个问题。它省掉的不是学费,是筛选成本。

但它有一个很少被正面讨论的硬伤:完成率极低。你看到的每一个完成者,spamegg1、0x1eaf 这些,都是幸存者偏差的样本。实际 fork 了仓库之后能完成 Core CS 阶段的人,比例远低于百分之一。这个数字我在 OSSU 的官方文档里找不到,但从 Discord 频道的活跃情况和 Issue 区零星出现的完成报告来看,是一个合理推断。
另一个容易踩的坑是时间估算。官方说”两年,每周 20 小时”,这个数字建立在你已经具备良好的自学能力、没有中断、所有课程都一次通过的前提下。spamegg1 全职跑了两年才完成,中间经历了两次情绪崩溃、两个家人去世和一次 GPU 烧毁。正常的生活节奏下,把预估时间乘以 1.5 是更现实的做法。
课程质量整体很高,但也有明显的短板。软件工程课缺乏真实的协作和代码审查体验,这是所有在线课程的通病,不是 OSSU 特有的问题。机器学习课用的是吴恩达的经典课程,内容扎实但偏传统,如果你想学 Transformer 架构或者多模态模型,OSSU 不会教你。另外课程之间的衔接不总是平滑的,有完成者提到从 CS50 跳到斯坦福算法课的时候”感觉上了一个台阶的高度差”。
如果你决定跟,记住三条原则:不要按顺序硬啃,从 Intro CS 选一门感兴趣的课开始,建立信心之后再进入 Core Programming。数学课和系统课交叉着上,不要连续两个学期全是理论。最危险的节点是 Core Theory 结束后、Advanced CS 开始前,这是大多数人放弃的时间窗口。提前给自己准备一个”奖励课程”,比如计算机图形学或者游戏开发选修课,作为撑过理论阶段之后的甜点。
还有一个很实际的问题:OSSU 完成后你到底能拿到什么?不是学位,不是证书。你的”毕业证明”是你 fork 仓库里那一片勾选标记,和你完成 Final Project 后在 GitHub 上多出来的那个仓库。它在招聘市场上不是学位的替代品,但如果你能把它变成一个真实的上线项目,它的说服力远大于 Coursera 的一张付费证书。说完了判断,如果你现在就想行动,下面是几条具体建议。
资源地址
| 资源 | 地址 |
|---|---|
| GitHub 仓库 | https://github.com/ossu/computer-science |
| 官方网站 | https://cs.ossu.dev |
| Discord 社区 | https://discord.gg/wuytwK5s9h |
| OSSU Thinkific | https://ossu.thinkific.com/courses/computer-science-v7 |
先从一门课开始
如果你不是 CS 科班出身但想试试这张课程表,别一上来就给自己定一个两年的计划。那种计划在第三周就会自然死亡。
先从 CS50 开始,或者直接从 Nand2Tetris 的第一部分开始。用三周时间判断自己是不是真的享受这个过程,而不是享受”告诉别人我在自学计算机科学”的感觉。如果你发现自己做 Nand2Tetris 的 Project 时停不下来,那就可以继续。如果你发现每次打开课程都需要心理建设,换一条路就好,没什么丢人的。
如果你已经在正规的 CS 项目里,把 OSSU 当成补充书单来用。学校的算法课讲得太快,去 OSSU 找斯坦福的那门课再过一遍。学校的操作系统课没有动手实验,去 OSSU 里找 OSTEP 把所有的 xv6 lab 都做一遍。它不是学校的替代品,是你自己配的一个”助教”。
说到底,OSSU 做的是一件很朴素的事:它把学习计算机科学的路径从”猜”变成了”选”。但它没办法替你去学。那 20 万 Stars 里,真正变成勾选标记的,可能不到千分之一。
