ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

CS 自学路线:4 条主线、400+ 小时,一份能落地的计算机系统学习规划

CS 自学路线:4 条主线、400+ 小时,一份能落地的计算机系统学习规划

CS 自学路线:4 条主线、400+ 小时,一份能落地的计算机系统学习规划

【免费下载链接】cs-self-learning计算机自学指南项目地址: https://gitcode.com/GitHub_Trending/cs/cs-self-learning

开源项目cs-self-learning(计算机自学指南)把名校开源课程整理成一张完整的 CS 自学路线,每门课都标注大学、难度星数、预计学时与资源清单,直接解决课那么多,选哪门、按什么顺序学、投入多少时间的问题。本文给出这条 CS 自学路线的 4 条主线:每门课的投入量、动手项目和过关标准都写清楚了。

🗺️ 先定位:25 个方向、100+ 门课的一张地图

仓库把内容组织成25 个方向分支(编程入门、计算机系统基础、操作系统、计算机网络、数据库、机器学习等),每门课页面开头都有难度星数和预计学时。两份入口文档:

  • CS学习规划.md:作者三年自学经验的提炼,标注每门课的先修关系与学习理由
  • 使用指南.md:把读者分成三类,各配一套方案

不必通读——先在下一节找到自己的类型,再走对应路线。

🎯 三类读者,三套 CS 自学计划

  • 在职转码(会写代码、基础有洞、时间碎):先读 使用指南 的"删繁就简"章,里面列出11 门核心课,入门课直接跳过,以 CSAPP 为主线。
  • 在校低年级:从 CS学习规划.md 的"必学工具"和"课程地图"两章读起,对照先修要求逐课查缺;先用 MIT-Missing-Semester 把 Git、Shell、Vim 学起来。
  • 兴趣自学者(基础扎实、想深耕某方向):看 使用指南 的"心有所属"一节;同一主题有多校版本——如操作系统分支含 4 所学校的课程——可互相印证。

📈 四条主线:从 30 小时 Python 入门到 100 小时 TCP 栈

4 条主线合计400+ 小时。同一时间只主攻一条线,其余课程只用来交叉印证同一个知识点。

阶段一:30-40 小时 CS50P,跑通 Python

  • 入口:CS50P,Harvard,无先修、难度 2 星
  • 实践:课程网站 lab,覆盖变量、列表、函数与 Pythonic 写法
  • 过关线:独立写出能运行的程序,连续通过 2-3 个 lab,能用一句话说清列表推导式的作用;反例:会背语法却写不出完整脚本,就别进下一阶段。

阶段二:150 小时 CSAPP 精读,做完 3 个 Project

  • 入口:CSAPP,CMU,难度 5 星,先修:数据结构与 C 语言
  • 投入:150 小时,按每周 8-10 小时,一个学期(约 15 周)过完
  • 实践:11 个 Project(Data Lab、Bomb Lab、Cache Lab、Malloc Lab 等),框架代码全部开源
  • 过关线:独立做完前 3 个 Project,每个都能一句话说清"它解决什么问题";文档明确提醒:不要借鉴第三方代码。

阶段三:150 小时在 xv6 上做操作系统,MIT 6.S081

  • 入口:MIT 6.S081,150 小时,5 星,先修:体系结构 + 扎实 C 语言 + RISC-V 汇编
  • 实践:11 个 lab在教学操作系统 xv6 上逐步加新机制,配套完善测试框架
  • 过关线:独立做完 lab,能徒手画出内核系统调用路径;只会讲进程线程概念、讲不出 xv6 里怎么实现的,回去读源码。

阶段四:100 小时自己实现 TCP,CS144

  • 入口:CS144,Stanford,5 星,C++,100 小时,每周 6-7 小时一个学期
  • 实践:8 个 Project(checkpoint 0-7)搭出完整 TCP/IP 栈:可靠字节流 → 自实现 TCP → ARP → IP 路由器 → 端到端中继
  • 过关线:你的 TCP 能与工业级 TCP 互通,能讲清三次握手;只"浅尝辄止"写完 8 个 checkpoint 就算错过精华,框架代码必须逐行读。

可选分支:数据库与离散数学补全底座

  • CMU 15-445:100 小时,4 星,C++;在教学数据库 bustub 上完成5 个 Project + 5 个 Homework,实现缓存池、B+ 树索引、算子与优化器、并发控制;过关线:在 bustub-shell 里跑通一条查询,验证自己写的部件。
  • UCB CS70:60 小时,3 星,无先修;理论模块都配算法实例(RSA、哈希表、稳定匹配),可与阶段二并行;过关线:拿到实际问题能选对图论或概率工具。

怎么算学会了:两个验收测试

别等考试,两条都过才算这门课过关:

  1. 合上文档讲给外行听。虚拟内存、B+ 树索引,讲不清的地方就是没学透。反例:只会罗列"cache miss""上下文切换"术语,讲不出"为什么这么设计",不算学会。
  2. 卡住后限时 2 小时独立 debug。不搜答案,只靠讲义、源码和报错信息走通。反例:报错贴进搜索引擎,搜出解法自己复述却讲不明白——那是抄,不是学。

⚠️ 三个最容易浪费时间的事,以及改法

  1. 多线并行:操作系统、网络、数据库同时开,三门全停在开头。改正:同一时间只主攻一条线,其余分支只用来交叉印证同一个知识点。
  2. 只看不做:视频全刷完,lab 一个没碰。改正:每看 1 小时视频,配至少 2 小时 lab;lab 做不动就回去重看对应讲义。
  3. 跳过实验直接抄答案:CSAPP、CS144 的 Project 答案网上唾手可得。改正:先写下自己的错误思路和推理过程,卡超过 2 小时再查,看完必须自己重写一遍。

CS 自学路线速查表

阶段课程投入量难度实践形式
入门CS50P30-40 小时2 星课程网站 lab
系统CSAPP150 小时 / 一学期5 星11 个 Project + 教材精读
操作系统MIT 6.S081150 小时 / 一学期5 星xv6 上 11 个 lab
网络CS144100 小时 / 一学期5 星8 个 Project 搭 TCP/IP
数据库CMU 15-445100 小时 / 一学期4 星bustub 上 5 个 Project + 5 个 Homework
数学CS7060 小时3 星课程网站作业,理论配算法实例

🚀 今天就启动:10 分钟开始第一个 lab

最小一步只有两个动作:拿到仓库,打开第一门课,做第一个 lab。

git clone https://gitcode.com/GitHub_Trending/cs/cs-self-learning

然后打开 docs/编程入门/Python/CS50P.md,按里面的资源清单进课程网站,7 天内完成第一个 lab。每季度回看一次 CS学习规划.md,按实际掌握情况调整下一个方向——自学路线是活的,常调整才扛得住长期投入。

【免费下载链接】cs-self-learning计算机自学指南项目地址: https://gitcode.com/GitHub_Trending/cs/cs-self-learning

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进