你打开 Build Your Own X 的 GitHub 清单,看到一百多个「自己实现 Redis、编译器、操作系统」的教程,第一反应往往是:新手到底该从哪个项目开始?这种卡住很正常——这份清单是自助餐,不是课表。第一步选错,很可能在搞懂哈希表之前就想放弃。
本文给你一份适合新手的 Build Your Own X 学习路线:分阶段的项目顺序、每阶段合理时间预算,以及七步行动计划,帮你完成第一个项目而不 burnout。数据与经验截至 2026-08-03。
快答:新手推荐项目顺序
| 阶段 | Build Your Own X 项目 | 为何这个顺序 | 参考周期 |
|---|---|---|---|
| 1 — 基础 | Git · 命令行工具 · JSON 解析器 | 版本控制与解析贯穿后续所有项目 | 2–4 周 |
| 2 — Web 核心 | HTTP 服务器 · 短链 · 静态站点生成器 | 学 socket、路由、文件 I/O,暂不上编译原理 | 3–6 周 |
| 3 — 数据层 | 类 SQLite · Redis · KV 存储 | 持久化与缓存,才能做真后端 | 4–8 周 |
| 4 — 语言工具 | 正则引擎 · 解释器 · 模板引擎 | 循序渐进学解析,再碰完整编译器 | 6–10 周 |
| 5 — 系统 | Docker · 容器 · Shell · Git 深入 | 理解日常开发环境如何运作 | 8–12 周 |
| 6 — 进阶 | 编译器 · 玩具 OS · 区块链 | 1–4 阶段扎实后再考虑 | 每个 12 周+ |
1. Build Your Own X 是什么——不是什么
Build Your Own X 是教程与挑战的精选列表:自己实现 Redis、Docker、Git、编译器等。它不是带先修课要求的单一课程。把它当图书馆,本文是推荐阅读顺序。
目标不是替代生产软件,而是用玩具版 Redis 理解淘汰策略、用迷你 Git 理解对象存储。面试官更在意你能否讲清实现时的权衡,而非克隆了哪个仓库。
适合谁
- 已会一门语言,能写 CRUD 级别应用
- 每周能投入 5–10 小时
- 想要深度,而非又一个框架速成
- 卡住时愿意读 RFC 和源码
若还在选AI 编程工具,建议先手动完成一个小 BYOX 项目,再用 AI 重构测试,而不是跳过学习闭环。
2. 阶段 1:基础(第 1–4 周)
即便教程看起来「太简单」也要从这里开始。跳过基础直接上 Kubernetes,往往死在 YAML 里还不懂进程模型。
| 项目 | 收获 | 完成标准 |
|---|---|---|
| 迷你 Git | 对象存储、哈希、树、提交 | 能 init、add、commit、log |
| JSON 解析器 | 递归、词法、错误信息 | 字符串 ↔ AST 往返 |
| CLI 工具 | stdin/stdout、参数、退出码 | 他人能从 PATH 运行 |
时间:有动力的新手约 15–25 小时完成迷你 Git。超过 40 小时还在第一课,检查是否在过度设计——按教程阶段走,别追求 GitHub 功能对齐。
构建环境要稳定。笔记本休眠会浪费测试时间;常驻的Mac 开发服务器(本机 mini 或云主机)能让集成测试保持温热。
3. 阶段 2–3:Web 与数据(第 5–12 周)
阶段 2 — Web 核心
- HTTP 服务器 — TCP、请求解析、状态码与头
- 短链服务 — 路由 + 存储
- 静态站点生成器 — 模板 + 目录遍历
阶段 3 — 数据层
| 项目 | 解锁概念 | 面试价值 |
|---|---|---|
| 类 SQLite | 页、B 树、WAL | 用实例解释索引为何加速 |
| Redis | 事件循环、RESP、TTL | 缓存、会话、发布订阅 |
| 迷你搜索引擎 | 倒排索引、分词 | 全文检索权衡 |
我们辅导的一位初级后端用六个周末用 Go 实现 Redis,回公司后把 API 延迟降了 30%——因为她认出了多余往返。路线在教程之外同样值钱。
4. 阶段 4–6:语言、容器与「困难模式」
阶段 4 — 语言工具
顺序:正则 → 树遍历解释器 → 模板引擎 → 子集编译器。
阶段 5 — 系统
Docker/容器 在 操作系统 之前。容器一周能懂 namespace;玩具 OS 是一学期。Shell 在中间——fork、exec、管道让 entrypoint 一目了然。
阶段 6 — 进阶(职业分支可选)
- 完整编译器 — PLT、静态分析、LLVM 方向
- 玩具 OS — 嵌入式/系统岗
- 区块链/P2P — 有明确兴趣再选,多数应用开发非必需
fork。Windows 用户请用 WSL2 或远程 Linux/Mac 构建机,别一边学 Redis 内部一边和平台较劲。5. 六个扼杀动力的错误
- 从 OS/K8s 开始 — 先要有进程与网络心智模型
- 同时开多个项目 — 完成一阶段再开下一个
- 跳过教程测试 — 测试即范围边界
- 追求生产级功能 — 玩具 Redis 不需要集群模式
- 不写笔记 — 每项目一份「设计决策」文档
- 忽视构建环境 — 慢机器掩盖 flaky 测试;阶段 3+ 建议专用开发机
6. 首个 Build Your Own X 项目:七步计划
- 选一个项目 — 阶段 1 的迷你 Git 或 HTTP 服务器
- 本周预留 6 小时 — 两次各 3 小时
- Fork 教程仓库 — 先读 stage 0 不写代码
- 只完成 stage 1 — 别看 stage 5 答案
- 写 200 字复盘 — 哪里卡、哪里顿悟
- 画一张架构/数据流图 — 发给同伴或发博客
- 同阶段排第二个项目 — 再进入阶段 2
环境搞不定?见帮助中心的 SSH 与远程开发,或几分钟开通云 Mac做稳定 Unix 构建。
常见问题
要按 GitHub 列表顺序做吗?
不要——列表大致按字母排,不是教学顺序。用本文分阶段路线。
用什么语言?
你会的就行。Go/Rust 教程多;Python 适合解析器;C 适合 Redis/SQLite 类教程。
必须用 Codecrafters 吗?
不必,很多条目是免费博客系列。Codecrafters 测试定义完成度,要结构可付费。
和计算机学位什么关系?
互补:学位常证明理论,BYOX 让你亲手实现。
能用 AI 吗?
可以,在自己尝试之后。用 AI 解释错误、评审设计,别直接贴 stage 答案。
总结:把 Build Your Own X 当多年课表
Build Your Own X 学习路线不是短跑。基础 → Web → 数据 → 语言 → 系统,是让新手持续交付并讲清权衡的顺序。本月完成阶段 1;再决定是否上编译器方向。
构建变重或需要 macOS/Linux 环境时,云 Mac减少摩擦,把时间花在 Redis 协议而非笔记本降频上。下一步:选一个阶段 1 项目,本周排期,今晚跑 stage 1。