从这里开始
Software Systems Atlas 不是一条要求所有人从头读到尾的线性课程。它是一张系统知识地图:初学者可以沿着明确的主线建立基础,有经验的读者可以直接查协议、算法、实现边界和工程取舍。
30 秒选择入口
| 你现在的情况 | 建议入口 | 先达到什么结果 |
|---|---|---|
| 没写过程序,也不熟悉终端 | 第零卷:开发者工坊 | 能使用终端、Git 和调试器运行一个项目 |
| 会基础语法,但知识零散 | 第一卷:编程之基 | 能独立完成带输入、数据结构、异常处理和文件 I/O 的小程序 |
| 在做后端开发,想补系统知识 | 后端工程师路径 | 串起 HTTP、数据库、测试、分布式和运维 |
| 想转系统、编译器或基础设施 | 系统程序员路径 | 建立 CPU、内存、并发、网络和编译的正式模型 |
| 想查某个具体主题 | 课程目录 | 按卷和章节直达内容 |
| 要评估培训或发布范围 | 产品就绪报告 | 看清内容深度差异和已知风险 |
初学者主线
第一次学习编程时,不要一开始就挑战分布式系统、编译器或模型训练。按下面的检查点推进,发现前置知识缺口就回到对应卷补齐。
- 开发工具。 完成 Vol 0 后,你应能在终端进入目录、用 Git 保存修改、在 IDE 中打断点,并按照 README 启动项目。
- 编程基础。 完成 Vol 1 的核心章节后,你应能解释变量、控制流、函数、集合、异常和文件 I/O,并写出一个有输入和输出的小程序。
- 第一个项目。 做一个范围有限的命令行或小型 Web 项目。验收标准是能运行、能测试、能说明目录结构和已知限制。
- 网络基础。 学习网络分层、Socket、TCP 和 HTTP,能够追踪一次请求从客户端到服务端的路径。
- SQL 与数据库。 学习 SQL、规范化、B+ 树、事务和隔离级别,能够解释一条查询怎样读取和修改数据。
- 后端工程。 再进入测试、API 设计、部署、缓存、消息和可观测性。此时可以沿后端工程师路径继续。
进度不以“读完多少页”衡量。能运行一个例子、解释观察结果、定位一次错误,才算越过当前检查点。
阅读规则
- 每卷首页会列出前置知识。看不懂术语时,先沿链接补前置,不要靠猜。
- 故事和比喻用于建立直觉;定义、代码、状态机和实验才是判断技术结论的依据。
- 标成
partial或pseudocode的代码不能直接运行。只有声明了环境和命令的runnable示例才承诺可执行。 - 不同章节的审校和样例验证进度并不一致。站点当前状态是
guarded,详见产品就绪报告。
全部课程卷
| 卷 | 名称 | 主要内容 |
|---|---|---|
| 0 | 开发者工坊 | 终端、Git、调试、包管理、Docker |
| 1 | 编程之基 | 语法、控制流、面向对象、集合、并发、I/O |
| 2 | 数据结构与算法 | 复杂度、线性结构、树、图、排序、动态规划 |
| 3 | 深入计算机系统 | 数据表示、CPU、内存、进程、并发、文件系统、性能 |
| 4 | 计算机网络 | 分层、Socket、TCP、HTTP、TLS、DNS、QUIC、调试 |
| 5 | 数据库与数据系统 | SQL、存储、查询、事务、并发控制、缓存与搜索 |
| 6 | 软件工程与设计模式 | 软件构造、测试、设计模式、架构、API、DDD |
| 7 | 分布式系统 | RPC、共识、存储、计算、SRE、IaC、Kubernetes、可观测性 |
| 8 | 安全与加密 | 密码学、身份认证、Web 安全、隐私和供应链安全 |
| 9 | 语言深度 | 类型系统、内存模型、并发模型、运行时和字节码 |
| 10 | 数学基础 | 离散数学、组合、概率、线性代数、微积分、信息论 |
| 11 | 编译原理与形式语言 | 自动机、文法、词法、语法、语义分析和代码生成 |
| 12 | 数据处理与数据科学 | 清洗、探索分析、统计推断、特征工程和治理 |
| 13 | AI 与机器学习 | 搜索、机器学习、深度学习、LLM、RAG 和 AI 系统模式 |
课程目录登记了 509 个编号课次。每个“章”可以包含若干短课、参考页和实验,例如 8.1 与 8.2 都属于第 8 章,不是重复章节。中英文边界一一对应,当前发布状态仍为 guarded,因为全量独立专家复核和所有运行环境下的示例执行尚未完成。
继续阅读
发现事实错误、失效链接或无法运行的示例时,可以使用页面底部的“在 GitHub 上编辑此页”提交修正。