Skip to content

计算机科学学习资源地图 ​

这是一份面向中文学习者的计算机科学资源清单,优先收录具备在线文档、源码、实验、自动评测或可复现实验的项目。它不试图替代教材,而是帮助你找到“读完之后可以动手做什么”的下一站。

资源大致分为三类:

  • 课程实验:适合按章节推进,通常有作业、测试和验收要求。
  • 开源教程:适合自学,内容持续更新,但需要自己安排节奏。
  • 工程项目:直接阅读真实系统或教学系统的源码,适合完成基础课程后深入。

先看这张路线图 ​

目标起点进阶项目主要产出
算法基础OI Wiki洛谷 / Codeforces 题库题解、模板和复杂度分析
计算机系统NJU 计算机系统基础NEMU / PA模拟器、运行时和系统实验
操作系统rCore TutorialChCore Lab可运行的教学内核
网络清华 TCP Lab清华 Router LabTCP 协议栈、软件路由器
数据库清华数据库实验MiniOB / TinyKV存储、查询、事务和分布式 KV
编译器北大 Minic中科大编译原理从 SysY 到 RISC-V 的编译器
计算机组成清华 COD Lab一生一芯CPU、SoC、RTL 和仿真
软件工程清华软件工程文档Git4Edu / CI/CD 项目Git、测试、协作和部署流水线

算法与数据结构 ​

首选资源 ​

  • OI Wiki:覆盖数据结构、图论、动态规划、字符串、数学、计算几何和竞赛工具;学习路线适合从基础开始安排顺序。
  • labuladong 算法教程:偏面试和题型框架,适合在掌握基本数据结构后集中训练。
  • 洛谷:题库和社区,适合把 OI Wiki 中的知识转化为可验证的代码。

学习方式 ​

先理解数据结构和算法的正确性、复杂度与适用条件,再使用题库验证;不要把刷题模板当成算法理论本身。

计算机系统基础与 CSAPP ​

推荐顺序:C 语言 → 汇编与链接 → NEMU/PA → 组成原理 → 操作系统。

操作系统 ​

推荐顺序:rCore 或 uCore → ChCore → Linux 内核子系统。

计算机网络 ​

推荐顺序:协议分层 → TCP Lab → Router Lab → P4 / DPDK / eBPF。

数据库系统 ​

  • 清华数据库系统概论实验:从页式文件、缓存、记录、B+ 树到 SQL 解析和查询优化,逐步实现单用户关系数据库。
  • HuaDB 数据库内核课程实验:覆盖页面存储、缓存、故障恢复、查询解析、查询优化和查询处理。
  • OceanBase MiniOB:包含 LSM-Tree、查询引擎、事务引擎和性能测试,适合高年级本科生或初学数据库内核者。
  • PingCAP Talent Plan:覆盖 Rust/Go、分布式系统、分布式数据库和开源协作。
  • TinyKV 课程:从单机 KV、Raft 到分布式事务,适合进入数据库 infra。

推荐顺序:SQL 与关系模型 → MiniOB/HuaDB → TinyKV → TiKV/TiDB 源码。

编译原理 ​

推荐顺序:形式语言 → Minic → LLVM IR → LLVM Pass / 后端。

计算机组成原理与体系结构 ​

推荐顺序:数字逻辑 → 单周期 CPU → 流水线 → Cache/存储层次 → SoC。

软件工程与工程实践 ​

这个方向通常不是“实现一个内核”,而是把需求、设计、编码、测试、评审和部署组织成可重复的工程流程。

推荐顺序:Git/GitLab → 单元测试 → CI/CD → Docker → Kubernetes → 开源协作。

分布式系统与云计算 ​

推荐顺序:网络与 OS → RPC/一致性 → Raft → KV/事务 → 云原生系统。

网络安全 ​

  • CTF Wiki:覆盖 Web、Pwn、Reverse、Crypto、Misc、取证等方向。
  • CTF All in One:从二进制、ELF、Linux 安全机制到常见 CTF 方向。
  • CUC CTF Wiki:适合入门和配合题目练习。

安全实验只应在 CTF、靶场或明确授权的环境中进行。

计算机图形学 ​

  • GAMES 在线课程平台:集中收录 GAMES101、GAMES102、GAMES103、GAMES104 等课程,以及课件、视频和作业。
  • GAMES101 官方主页:从光栅化、几何表示、光线传播到动画与模拟,适合系统入门现代图形学。

推荐顺序:线性代数/几何 → GAMES101 → GAMES102/103 → 实时渲染或离线渲染。

机器学习与深度学习 ​

  • 动手学深度学习:数学、公式、图示、代码和 Jupyter 实验结合,适合建立机器学习和深度学习基础。
  • GAMES 课程平台:除图形学外,也可作为视觉、动画和几何方向的公开课程入口。

如果目标是 AI Infra,建议不要只学模型 API,而是继续补齐 组成原理 → OS → 网络 → 分布式系统 → GPU/并行计算。

编程语言与系统编程 ​

  • Rust 程序设计语言:中文 Rust 学习路线,适合在 rCore、ChCore 或 TinyKV 前补齐语言基础。
  • The Rust Programming Language:官方英文语言参考;中文学习可配合 Rust 语言圣经 使用。
  • 编程语言理论、形式化方法和类型系统的中文开源实验资源相对分散;建议先从编译器、Rust 类型系统或 Lean/Coq 的官方文档进入。

建议的计算机专业主线 ​

如果目标是底层系统或 AI Infra,可以按下面的顺序推进:

  1. C/C++、Git、Linux、数据结构与算法。
  2. CSAPP/NJU 计算机系统基础和 NEMU/PA。
  3. 计算机组成原理:CPU、Cache、内存和 I/O。
  4. 操作系统:rCore、uCore 或 ChCore。
  5. 计算机网络:TCP、路由器、P4/eBPF。
  6. 数据库:MiniOB/HuaDB,再到 TinyKV/TiKV。
  7. 编译原理:Minic、LLVM 和编译优化。
  8. 软件工程:测试、CI/CD、容器、代码评审和开源协作。

这条路线的关键不是把所有课程都“看完”,而是每个阶段至少留下一个能运行、能测试、能解释设计取舍的项目。

使用与维护说明 ​

  • 外部课程、代码和文档的版权归原作者或课程方所有;本页只做学习导航。
  • 课程网址、版本和作业要求可能变化,开始学习前以项目官方页面为准。
  • 本页适合作为网站中的资源索引;个人笔记、实验记录和复现结果应放在对应专题目录下。
  • 建议为每个长期学习项目保留:README、运行环境、实验记录、测试结果和参考资料链接。

最后更新:2026-08-18

资料来源归原作者与课程方所有 · 笔记内容持续校订