你打开 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。