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 標準使用流程

  1. 打開 README:直接看 GitHub 線上版(不需要 clone)
  2. 目錄索引(README 第 11-40 行):30+ 類別錨點,先跳到感興趣的類別
  3. 挑教程:每個類別下列 N 個教程,每筆格式為 **語言**: _標題_(語言粗體在前)
  4. 跟做:點外部連結,按該教程作者的步驟實作
  5. 延伸:完成後可比較同類別其他語言實作(例:用 Python 寫完 Database 後,看 C++ 版差異)

2.2 建議的「進入策略」(給沒方向的學習者)

你的程度建議入口
大學生 / junior devShell / 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**),收斂候選
  • 看連結 hostgithub.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 類別下的「語言 × 教程」矩陣(節選)

類別主流語言代表教程風格
DatabaseC / Go / Rust / PythonSQLite-like、key-value store、B-Tree from scratch
Operating SystemC / C++ / Rust啟動 boot → kernel → process → fs,多為長篇 series
GitPython / Ruby / Haskell重實作 add/commit/log,理解 object storage
Programming LanguageOCaml / Haskell / Rust / PythonLexer → Parser → AST → Interpreter / VM / Compiler
Neural NetworkPython / C++micrograd / autograd / 反向傳播手寫
Web ServerGo / Node / Python / RustTCP → HTTP/1.1 parser → routing → static file

3.4 內容流向

 1Reader 開 README
 2 3 4目錄錨點清單(30+ 類別)── 1 跳
 5 6 7類別 section(### 標題 + bullet list)── 線性掃描
 8 910單筆教程(外部 URL)── 離開 byox repo
111213作者教程平台(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 / 線上書)。風險來自:

  1. 連結腐爛(link rot):作者刪 repo / domain expire → 404 或被搶註成釣魚站
  2. 外部 repo 可能藏惡意 code:若教程是 GitHub repo,clone 時等於跑陌生人的程式
  3. 個人 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 觀察,策展三道閘門:

  1. 主題閘門:必須是「well-known 系統」(不收冷門技術 / 個人專案)
  2. 方法閘門:必須是 from-scratch(不收 framework usage)
  3. 教學深度閘門:必須有 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 重造輪子,主題深度大、時間長
  • pblpractical-tutorials/project-based-learning):強調 build a real product,主題實用、時間短
  • 兩者互補:byox 修底層,pbl 修工程感

8.4 教程「壽命」現象

部分早期教程(2015-2017)的程式碼樣本已不能在 2026 環境直接跑(Python 2 / 老版本 Node / 不存在的 lib)。這時可:

  1. 看作者 GitHub 是否有 maintained 的 mirror branch
  2. 改用同類別較新教程
  3. 自己 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)

  1. 本質:byox 是 awesome-list 風格的「from scratch 教程索引」,README 即全部內容
  2. 規模:30+ 技術類別、數百個外部教程、50 萬 stars、CC0 授權
  3. 核心精神:Feynman 的 “What I cannot create, I do not understand”
  4. 嚴格的篩選標準:from scratch + well-known + guided path + 非 glue library
  5. 零維運成本:無 CI、無 Dockerfile、無 source code,純連結維護
  6. 資安:repo 本體 🟢,外部教程連結需自行 vet
  7. 適用對象:已會寫程式的中階開發者;新手請先補基礎
  8. 進入策略:從你最弱+最有興趣的交集挑類別,第一個專案選能在 ≤ 1 週完成的
  9. 整合潛力:可與 paper-tutorial / gh-tutorial-qd / paper-qa-lite / graphify 串成完整學習工作流
  10. 不要做的事:不要試圖「全部做完」── 30+ 類別每個都做完要花數年,挑 3-5 個你真正關心的領域深入即可

§11. 進一步閱讀

同類資源

付費延伸(與 byox 同公司)

  • codecrafters.io — byox 維護者經營的付費實作課程平台,提供 Redis / SQLite / DNS / Docker / Git / HTTP server 等專案的自動評分。優勢:有 test suite、進度追蹤、社群討論

推薦的「入門級」具體教程(從 byox 中精選)

  1. Databasecstack — Let’s Build a Simple Database(C,13 章,SQLite-like)
  2. Programming LanguageCrafting Interpreters(Robert Nystrom,全書免費線上閱讀,業界最受推薦的編譯器教學)
  3. GitWrite yourself a Git!(Python,~600 行重實作 Git)
  4. Neural Networkmicrograd by Andrej Karpathy(autograd from scratch,~150 行)
  5. Web ServerBuild 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。