build-your-own-x 深度教學手冊
從零實作世界知名系統的權威 curated list —— 50 萬 stars 的學習路徑入口。
§1. 定位與一句話介紹
codecrafters-io/build-your-own-x 是一份高品質、社群維護的 awesome-list 風格教程索引,主題明確:「親手從零實作一個你每天在用的技術」。它不是框架、不是工具,而是一份「學習路徑地圖」—— 把散落在 blog post、GitHub repo、線上書籍、YouTube playlist 中的「step-by-step from scratch」教學依技術類別整理成 30+ 大類,共數百個外部教程連結。
repo 本身只有一個 README.md(504 行)和一個 ISSUE_TEMPLATE.md,但這份 README 已經是「程式設計師通識教育」級別的學習資源 ── Feynman 名言「What I cannot create, I do not understand」就是這個 repo 的核心精神。
為什麼是 50 萬 stars?
- 跨語言、跨領域(OS / DB / Compiler / NN / Game / Browser …)
- 嚴格的提交準則:必須是「從零實作 well-known 系統」的教學,禁止框架/library 用法、glue tutorial、CRUD demo
- CC0-1.0 授權(公共領域),可任意翻譯、整合、衍生
- 由 CodeCrafters Inc.(付費實作課程平台)維護,質量把關穩定
它不是什麼
- 不是 framework / library 的入門教學
- 不是「30 天學 X 語言」型速成
- 不是 leetcode-style 演算法練習
- 不提供作業 / 評分 / 證照
§2. 怎麼用(使用流程)
build-your-own-x 本質上是「閱讀 → 選擇 → 跳轉外部教程」的索引,使用流程簡單但需要一點策略。
2.1 標準使用流程
- 打開 README:直接看 GitHub 線上版(不需要 clone)
- 目錄索引(README 第 11-40 行):30+ 類別錨點,先跳到感興趣的類別
- 挑教程:每個類別下列 N 個教程,每筆格式為
**語言**: _標題_(語言粗體在前) - 跟做:點外部連結,按該教程作者的步驟實作
- 延伸:完成後可比較同類別其他語言實作(例:用 Python 寫完 Database 後,看 C++ 版差異)
2.2 建議的「進入策略」(給沒方向的學習者)
| 你的程度 | 建議入口 |
|---|---|
| 大學生 / junior dev | Shell / Git / Command-Line Tool(範圍小、可短期完成) |
| 想補底層 | Memory Allocator / Network Stack / Operating System |
| 對 ML/AI 有興趣 | Neural Network / AI Model(從 micrograd 風格教程入手) |
| 想做面試作品 | Database / Web Server / Programming Language(業界 relevance 高) |
| 純好奇 | 3D Renderer / Voxel Engine / Physics Engine(視覺成果直接) |
2.3 篩選教程的小技巧
- 語言對應:先用 Ctrl-F 搜尋你熟的語言(例:
**Python**),收斂候選 - 看連結 host:
github.com多為含 source code 的長篇教程;blog / personal site 則為文章型 - 看出版時間:點進去看作者最後更新日期,太舊(>10 年)可能技術已過時
- 看是否分章:好的 byox-style 教程通常是 multi-part series(part 1, 2, 3 …),單篇文章往往深度不夠
§3. 架構與類別地圖
整個 repo 結構極簡 ── 一個 README 就是全部 ── 但其「資訊架構」(30+ 類別 × 多語言實作)值得用心智圖梳理。
3.1 檔案層級結構
1build-your-own-x/
2├── README.md # 唯一內容主體(504 行)
3├── ISSUE_TEMPLATE.md # PR / issue 提交模板
4├── codecrafters-banner.png # 贊助方 banner
5└── .gitattributes # 語言統計排除規則
3.2 內容類別心智圖(精選 8 大主軸)
mindmap root((Build Your Own X
30+ Categories)) 系統底層 Operating System Memory Allocator Emulator / VM Processor 網路與分散式 Network Stack Web Server Web Browser BitTorrent Client Distributed Systems 資料與引擎 Database Search Engine Regex Engine Template Engine 語言與工具 Programming Language Shell Git Command-Line Tool Docker AI 與圖形 Neural Network AI Model Visual Recognition 3D Renderer Voxel Engine Physics Engine 互動與遊戲 Game Augmented Reality Bot Web 與前端 Front-end Framework Text Editor
3.3 類別下的「語言 × 教程」矩陣(節選)
| 類別 | 主流語言 | 代表教程風格 |
|---|---|---|
| Database | C / Go / Rust / Python | SQLite-like、key-value store、B-Tree from scratch |
| Operating System | C / C++ / Rust | 啟動 boot → kernel → process → fs,多為長篇 series |
| Git | Python / Ruby / Haskell | 重實作 add/commit/log,理解 object storage |
| Programming Language | OCaml / Haskell / Rust / Python | Lexer → Parser → AST → Interpreter / VM / Compiler |
| Neural Network | Python / C++ | micrograd / autograd / 反向傳播手寫 |
| Web Server | Go / Node / Python / Rust | TCP → HTTP/1.1 parser → routing → static file |
3.4 內容流向
1Reader 開 README
2 │
3 ▼
4目錄錨點清單(30+ 類別)── 1 跳
5 │
6 ▼
7類別 section(### 標題 + bullet list)── 線性掃描
8 │
9 ▼
10單筆教程(外部 URL)── 離開 byox repo
11 │
12 ▼
13作者教程平台(GitHub repo / blog / 線上書)── 實際學習場所
關鍵洞察:byox 是「目錄」而非「內容」,真正的學習發生在外部連結。但這個目錄的策展品質本身就是巨大價值。
§4. Helper / 維運機制(README-only repo)
這個 repo 沒有 source code、沒有 CI、沒有 Dockerfile、沒有 Makefile。它只有兩個維運元素:ISSUE_TEMPLATE.md 和社群貢獻流程。
4.1 ISSUE_TEMPLATE.md 結構
提交新教程時,PR / issue 必須包含以下欄位:
- Main programming language(max 1)—— 強制單一主要語言
- Tutorial title(原文標題)
- Tutorial URL
- Category(從預定義的 26 個 checkbox 類別選 1)
模板開頭的指導語特別強調:
Please submit only programming tutorials that build something interesting from scratch; no frameworks, libraries, guides for frameworks/libraries or tutorials that glue just other libraries together.
這道篩選門檻是 byox 跟「一般 awesome-list」最大的差別。
4.2 內容維護模式
從近期 commits 觀察(最後 5 筆全是 2026-02-21):
- 修壞掉的連結(PR #1398, #1403:影片下架、連結失效)
- 修正錯誤的 URL(PR #1567:Reddit bot 教程位置改動)
- 加新教程(PR #1543:SlowTorch 加入 Neural Network 類)
維護成本:低。沒有版本號、沒有 release tag、無需 build。Push 即是發佈。
4.3 質量把關
- 由 CodeCrafters Inc. 維護者人工審 PR
- 開放 issue 讓社群 review pending submissions(README 末段 “Help us review” 段落)
- 反向例:若有人提交「How to use React Router」這種 library guide,會被退件
§5. 應用場景
build-your-own-x 適用於至少四種場景,每種有不同的最佳實踐。
5.1 深度學習路徑(自學者)
- 目標:補齊計算機科學「親手做過」的洞穴
- 節奏:每 2-4 週做一個小專案(例:4 週做完一個簡化版 Git)
- 產出:自己的 GitHub repo + blog post 記錄學習過程
- 重點:不要追求「完美實作」,追求「我懂了關鍵概念」
5.2 面試 portfolio(求職者)
- 目標:展示「我能從零做出有複雜度的系統」
- 節奏:挑 1-2 個有 wow factor 的(例:自製資料庫、自製 NN framework)
- 產出:放在 GitHub README 突出位置 + 1 份技術 blog
- 重點:面試官會問實作細節(B-Tree split 怎麼做、autograd 怎麼推導),要能口頭講清楚
5.3 教學素材(教師 / mentor)
- 目標:給學生「能跟得上、能改寫」的範例
- 節奏:學期前選 4-6 個對應課程主題的教程
- 產出:課程附讀清單 + 改編成 lab assignment
- 重點:byox 是 CC0,可以重寫、翻譯、整合進自己的課程材料
5.4 跨語言對照(資深開發者)
- 目標:在熟悉的領域學新語言
- 節奏:選你已懂的領域(例:你會用 Python 寫 NN),找該領域的 Rust / OCaml / Haskell 教程
- 產出:對該新語言慣用法的深度理解
- 重點:類比學習比從 hello world 快很多
§6. 資安與授權
6.1 Repo 本體:🟢 GREEN(極低風險)
| 檢查項 | 結果 |
|---|---|
| 是否包含可執行程式碼 | ❌ 否(純 markdown) |
| 是否有 CI / workflows | ❌ 否(無 .github/workflows/) |
| 是否有 Dockerfile / Makefile | ❌ 否 |
| 是否內嵌 token / secret / api key | ❌ 否(grep 全文無相關字串) |
| 是否拉取 submodule | ❌ 否 |
→ 結論:repo 本體沒有任何攻擊面,clone 下來唯一風險就是占硬碟 1.2MB。
6.2 外部教程連結:⚠️ 中等注意
byox 是「連結 hub」,真正的程式碼在數百個外部來源(GitHub repo / 個人 blog / 線上書)。風險來自:
- 連結腐爛(link rot):作者刪 repo / domain expire → 404 或被搶註成釣魚站
- 外部 repo 可能藏惡意 code:若教程是 GitHub repo,clone 時等於跑陌生人的程式
- 個人 blog 可能掛廣告 / malware:少數舊 personal site 維護不力
建議:點連結前快速檢視 URL host(github.com 的官方帳號比 xxx.github.io 更可信),clone 別人 repo 前掃一眼 package.json / setup.py 是否有可疑 postinstall script。
6.3 授權
- License:CC0-1.0(Creative Commons Public Domain Dedication)
- 白話翻譯:完全放棄著作權,任何人可自由複製、改作、商用,不需署名
- 意義:你可以把 byox 整個翻成繁中、塞進公司內訓教材、用來訓練 AI,全部合法
§7. FAQ
Q1:我該從哪個類別開始? A:看你目前最弱的領域 + 最有興趣的領域之交集。沒方向就選「Shell」或「Git」── 兩者範圍小、有清晰終點、做完成就感強。
Q2:教程通常要花多久? A:差異大。Shell tutorial 約 4-8 小時可完成 toy version;Operating System 從 boot loader 到 file system 可能花 3-6 個月。建議第一次選 ≤ 1 週能完成的。
Q3:byox 適合完全新手嗎? A:不適合。預設你已熟悉至少一種程式語言(會寫 200 行以上程式、懂遞迴、會用 git)。完全新手建議先做 The Odin Project / freeCodeCamp / Harvard CS50。
Q4:跟 codecrafters.io 是什麼關係? A:byox 由 CodeCrafters Inc. 維護,codecrafters.io 是該公司的付費實作課程平台(提供 Redis / SQLite / DNS / Docker 等實作的自動評分系統)。byox 是免費 OSS 入口,codecrafters.io 是進階付費版。沒有強迫推銷,README 只在最上方有一個 banner。
Q5:教程裡的連結掛了怎麼辦? A:開 issue / PR 修正即可(README 第 497 行寫明 contribute 流程)。也可用 archive.org Wayback Machine 找快照。
Q6:可以提交我自己寫的教程嗎? A:可以,但要符合 ISSUE_TEMPLATE 的標準:(a) 從零實作 (b) 主題是 well-known 技術 (c) 有 step-by-step guided path (d) 不能只是 glue libraries together。
Q7:教程語言能不能是繁體中文? A:技術上可以提交(README 沒有禁止),但實務上絕大多數教程是英文。若你寫了高質量繁中教程,可以試提 PR(成功率取決於審閱者意願)。
§8. 進階主題
8.1 List 是如何被策展的
從 commit history 和 ISSUE_TEMPLATE 觀察,策展三道閘門:
- 主題閘門:必須是「well-known 系統」(不收冷門技術 / 個人專案)
- 方法閘門:必須是 from-scratch(不收 framework usage)
- 教學深度閘門:必須有 guided path(不收純 code dump)
這三道閘門讓 byox 在「awesome-list 泛濫」的時代維持高訊噪比。
8.2 跨語言矩陣分析(粗略統計)
從 README 中各類別出現的 **語言**: 標籤統計,主流分佈:
- C / C++:系統類最大宗(OS、Memory、Network Stack)
- Python:教學類最廣(Database、NN、Bot、Web)
- Rust:新潮系統類(DB、Network、Shell)
- JavaScript / TypeScript:前端類 + 玩具型(Front-end、Game)
- Go:分散式 + 雲原生類(Docker、Web Server)
- Haskell / OCaml:Programming Language 類佔比高(compiler 教學偏 functional)
→ 想學某種語言的「拿手領域」,可從這個分佈反推。
8.3 byox 與 Project-Based Learning(pbl)的差別
- byox:強調 from scratch 重造輪子,主題深度大、時間長
- pbl(
practical-tutorials/project-based-learning):強調 build a real product,主題實用、時間短 - 兩者互補:byox 修底層,pbl 修工程感
8.4 教程「壽命」現象
部分早期教程(2015-2017)的程式碼樣本已不能在 2026 環境直接跑(Python 2 / 老版本 Node / 不存在的 lib)。這時可:
- 看作者 GitHub 是否有 maintained 的 mirror branch
- 改用同類別較新教程
- 自己 fork 修一遍 ── 這本身就是好練習
§9. 與本專案的整合建議
build-your-own-x 與 AI Knowledge Template 體系有兩種高價值整合方式。
9.1 與 paper-tutorial 結合(N 篇 paper + byox 教程 → 整合教學)
實例情境:你想搞懂「memory layer for LLM」這個主題。
paper-search:撈 3-5 篇相關 paper(MemGPT、Letta、A-Mem 等)- 從 byox 的「Database」/「AI Model」類別挑 1-2 個相關 from-scratch 教程
- 把兩者餵給
paper-tutorial:skill → 產出整合教學 HTML - 跨「學術理論 + 工程實作」雙軸的完整學習地圖
9.2 與 gh-tutorial-qd 結合(針對單一教程 repo 做深度解析)
實例:byox 中某筆 **Rust**: _Writing a Database in Rust_ 連到一個 GitHub repo。
- 直接
gh-tutorial-qd: <該 repo URL>跑深度教學工作流 - 產出 gh-save md + 詳細 tutorial md + 雙語 HTML(paged + plain)
- 把單一 byox 連結升級成「公司內部教材」級別
9.3 與 paper-qa-lite 結合(local RAG)
把多個 byox 衍生的教程下載 → 用 docling 轉 md → 丟進 paper-qa-lite RAG cache → 對「我該怎麼設計 B-Tree split」這類細節做跨教程問答。
9.4 與 graphify 結合
若你真的完整實作了某個 byox 專案,把成品 repo 丟給 graphify init . → 產出自家程式碼的 knowledge graph,未來面試 / 帶新人時可快速複習。
§10. 重點摘要(Top 10 take-aways)
- 本質:byox 是 awesome-list 風格的「from scratch 教程索引」,README 即全部內容
- 規模:30+ 技術類別、數百個外部教程、50 萬 stars、CC0 授權
- 核心精神:Feynman 的 “What I cannot create, I do not understand”
- 嚴格的篩選標準:from scratch + well-known + guided path + 非 glue library
- 零維運成本:無 CI、無 Dockerfile、無 source code,純連結維護
- 資安:repo 本體 🟢,外部教程連結需自行 vet
- 適用對象:已會寫程式的中階開發者;新手請先補基礎
- 進入策略:從你最弱+最有興趣的交集挑類別,第一個專案選能在 ≤ 1 週完成的
- 整合潛力:可與 paper-tutorial / gh-tutorial-qd / paper-qa-lite / graphify 串成完整學習工作流
- 不要做的事:不要試圖「全部做完」── 30+ 類別每個都做完要花數年,挑 3-5 個你真正關心的領域深入即可
§11. 進一步閱讀
同類資源
practical-tutorials/project-based-learning— 姊妹專案,偏「做一個真產品」(vs byox 偏「重造輪子」)sindresorhus/awesome— awesome-list 的總目錄,可橫向比較EbookFoundation/free-programming-books— 免費電子書索引(理論深度補強)
付費延伸(與 byox 同公司)
- codecrafters.io — byox 維護者經營的付費實作課程平台,提供 Redis / SQLite / DNS / Docker / Git / HTTP server 等專案的自動評分。優勢:有 test suite、進度追蹤、社群討論
推薦的「入門級」具體教程(從 byox 中精選)
- Database:cstack — Let’s Build a Simple Database(C,13 章,SQLite-like)
- Programming Language:Crafting Interpreters(Robert Nystrom,全書免費線上閱讀,業界最受推薦的編譯器教學)
- Git:Write yourself a Git!(Python,~600 行重實作 Git)
- Neural Network:micrograd by Andrej Karpathy(autograd from scratch,~150 行)
- Web Server:Build Your Own Web Server From Scratch In Node.JS(HTTP/1.1 親手刻)
本專案內部相關文件
.claude/skills/gh-tutorial-qd/SKILL.md— 本工作流的設計文件.claude/skills/paper-tutorial/SKILL.md— 整合 paper + repo 的進階工作流CLAUDE.md§「15 個 Layer」 — 完整體系定位
生成資訊:本文由 gh-tutorial-qd 工作流自動產生於 2026-05-22,基於 codecrafters-io/build-your-own-x repo state at commit 294aef8。內容適用 CC0-1.0。
Comments