一条实用的 CS 自学路线:从 30 小时 Python 到 150 小时系统底层
【免费下载链接】cs-self-learning计算机自学指南项目地址: https://gitcode.com/GitHub_Trending/cs/cs-self-learning
cs-self-learning 仓库把 MIT、CMU、Stanford 等名校的开源 CS 课程按方向整理成一张 CS 自学路线地图,每门课都标了难度、预计学时和资源链接。它面向 CS 自学者,回答"CS 课程怎么选、按什么顺序学"这两个问题。读完本文,你能直接定下首读文档、投入时长和过关标准。
🧭 选课之前,先回答 3 个自问
- 你现在能独立写出能跑的代码吗?
- 你的时间是大块的还是碎片的?
- 你要不要深耕某个方向?
答案决定入口,对号取走:
- 如果你会写代码、感觉基础有洞、时间碎片化:入口就是 使用指南 的"删繁就简"章,里面列了 10 门核心课清单;你的第一步动作是把 CSAPP 定为唯一主攻线,按每周可支配的时间倒排计划。
- 如果你是在校低年级、不想被动跟课表:入口就是 CS学习规划;你的第一步动作是读"必学工具"和"课程地图"两章,逐门对照先修要求,把缺的知识点标记出来。
- 如果你基础已扎实、想深耕一个方向:入口就是 使用指南 的"心有所属"一节;你的第一步动作是打开目录里对应分支,横向对照 2-3 所不同学校的同类课程。
🗺️ 大学课程地图速查表
| 方向 | 首选入口 | 建议周期 | 实践形式 | 适合谁 |
|---|---|---|---|---|
| 编程入门 | CS50P | 30-40 小时 | 课程网站 lab | 零编程基础 |
| 系统基础 | CSAPP | 150 小时 / 15 周 | 11 个 Project + 教材精读 | 有数据结构与 C 基础 |
| 操作系统 | MIT 6.S081 | 150 小时 / 一学期 | xv6 上 11 个 lab | 已学过 CSAPP |
| 计算机网络 | CS144 | 100 小时 / 一学期 | 8 个 Project 搭 TCP/IP 协议栈 | 有系统基础与 C++ |
| 数据库 | CMU 15-445 | 100 小时 / 一学期 | bustub 上 5 个 Project + 5 个 Homework | 已学过 CSAPP |
| 数学基础 | CS70 | 60 小时 | 课程网站作业,理论配算法实例 | 需要补数学 |
同一时间只推进一条线,其余分支只做交叉印证,不新开战线。
🚀 三条主推路线三步走:CS50P → CSAPP → CS144
三个阶段递进,过上一关再进下一关。
第一步:先上路,30 小时跑通 CS50P 的前 3 个 lab
- 从哪进:打开 CS50P,进课程网站的 lab 列表,从第一个 lab 做起。
- 花多久:全程 30-40 小时,无先修要求,难度两星;前 3 个 lab 每个 3-5 小时,一周内可完成。
- 做什么:做课程网站的 lab,覆盖变量、列表、函数与 Pythonic 写法。
- 怎么算过:独立写出能运行的 Python 程序,连续通过 2-3 个 lab,并用一句话讲清列表推导式的作用。
第二步:啃硬骨头,CSAPP 150 小时怎么排
- 从哪进:打开 CSAPP,逐页读教材,同时进 labs 页下载开源的 lab 代码框架。
- 花多久:全程 150 小时,难度五星,先修要求是数据结构与 C;按每周 8-10 小时排,约 15 周(一个学期)过完。
- 做什么:按顺序做 11 个 Project:Data Lab、Bomb Lab、Cache Lab、Malloc Lab 等。
- 怎么算过:独立做完前 3 个 Project,并能讲清每个 Project 在解决什么问题。文档明确提醒:不要借鉴任何第三方代码。
第三步:搭体系,CS144 Project 实践搭出 TCP/IP 协议栈
- 从哪进:打开 CS144,从 checkpoint 0 开始自己写 TCP。
- 花多久:全程 100 小时,难度五星,语言是 C++;每周 6-7 小时,一个学期过完。
- 做什么:8 个 Project(checkpoint 0-7),从可靠字节流到自实现 TCP,再到 ARP、IP 路由器,最后做端到端中继通信。
- 怎么算过:你的 TCP 实现能与其他工业级 TCP 互通,并能讲清三次握手流程。只"浅尝辄止"过完 8 个 checkpoint 就算错过精华,务必逐行读框架代码。
✅ 检验是否学会:2 个自测法
- 合上文档讲给外行听。挑虚拟内存、B+ 树索引这类概念,讲不清的地方就是没学透的地方,回对应的 lab 补。没学会的表现:只会罗列"cache miss""上下文切换"这类术语,被追问"为什么这么设计"时答不上来。
- 卡住后限时独立 debug。先给自己 2 小时不搜答案,只用手头讲义、源码和报错信息走通。没学会的表现:把报错贴进搜索引擎得到解法,自己复述一遍却讲不明白——那是抄,不是学。
🕳️ 走弯路的三种方式
- 多线并行。典型表现:操作系统、网络、数据库同时开,三门都停在开头。改正:同一时间只推进一条线,其余分支只用来交叉印证同一个知识点。
- 只看不做。典型表现:视频全刷完,lab 一个没碰。改正:每看 1 小时视频,配至少 2 小时 lab;lab 做不动就回去重看对应讲义。
- 跳过实验抄答案。典型表现:CSAPP、CS144 的 Project 答案网上唾手可得,照抄交差。改正:先看答案前写下自己的错误思路和推理过程,卡超过 2 小时再查,且看完必须自己重写一遍。
📋 首周行动清单
- 打开 CS50P 文档,完成第一个 lab
- 在日历上标一个"季度回看"节点
- 克隆仓库,总索引是 CS学习规划(docs/CS学习规划.md),每季度回看一次,按掌握情况调整下一个方向:
git clone https://gitcode.com/GitHub_Trending/cs/cs-self-learning
【免费下载链接】cs-self-learning计算机自学指南项目地址: https://gitcode.com/GitHub_Trending/cs/cs-self-learning
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考