从这里开始
先选一个你现在想解决的问题:运行第一个程序,补齐后端基础,或查清一条协议。按下面的入口找到相关内容,不必从头读完十四卷。
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 上编辑此页”提出修改;GitHub 会引导你通过分支或拉取请求提交。