一、先说结论
488,000 个 star。
GitHub 上没有哪个技术学习类仓库的星标数能接近这个数字。它长期占据 GitHub Trending 榜单首位,在 Hacker News 被讨论过不下二十次,几乎每隔几个月就有人重新”发现”它然后引爆一波转发。
我第一次看到这个仓库是 2024 年底,当时的第一反应是:这不就是一个 Markdown 文件收集了一堆链接吗?
我错了。
用了将近一年之后,我愿意说这是我见过的最诚实、最有价值的程序员学习资源之一。但它也有明显的局限性,有些局限性随着 AI 工具的普及变得更加突出。
这篇文章是我真实使用一年的完整记录。
一、这是什么项目,一分钟说清楚
build-your-own-x 是一个由 CodeCrafters, Inc. 维护的开源仓库,核心内容就是一份精心策划的教程清单——教你从零手写各种你每天都在用的技术。
项目以费曼的一句话为题眼:
What I cannot create, I do not understand.
——理查德·费曼
目录涵盖 30+ 个技术领域:
- 3D 渲染器、AI 模型、BitTorrent 客户端
- 区块链、数据库、Docker、模拟器
- 前端框架、游戏、Git、内存分配器
- 网络协议栈、神经网络、操作系统
- 物理引擎、处理器、编程语言、正则引擎
- 搜索引擎、Shell、文本编辑器
- Web 浏览器、Web 服务器……
每个分类下都有按编程语言分组的教程链接,语言覆盖从 C/C++ 到 Python、JavaScript、Go、Rust、Haskell,甚至 Nim、Crystal。
二、我实际用了什么,体验是什么
2.1 从”手写 Git”开始
我用的第一个教程是 Build Git — Learn Git(JavaScript 版),以及配合的 Python 版 ugit。
选择从 Git 开始的原因很简单:Git 是我每天都在用的工具,但 .git 文件夹里到底装了什么,我一直说不清楚。
两个星期之后,我把 commit、branch、merge 的底层结构全部手写了一遍。收获不是”我能用 Python 写一个 Git”——而是此后再遇到 rebase conflict、detached HEAD、reflog 这类问题,脑子里会自动浮现出那些 blob/tree/commit 对象的关系图,处理起来快了很多。
这就是 BYOX 最核心的价值:不是给你一个可以用的东西,而是给你一个更清晰的内部地图。
2.2 手写数据库(最硬的一次)
之后我尝试了 Build Your Own Redis from Scratch(C++ 版)和 Let’s Build a Simple Database(C 语言版,SQLite 仿写)。
这次难度陡增了好几个量级。C 语言版的 SQLite 教程一共 15 章,我卡在第 5 章关于 B 树实现的章节足足三天,中间产生了好几次”这不是我该做的事情”的念头。
但正是这次挣扎让我对以下内容的理解从”知道”变成了”明白”:
- 为什么数据库写入要先写 WAL(Write-Ahead Log)
- B 树的节点分裂是怎么一回事
- 为什么索引会占额外磁盘空间,以及为什么不该乱建索引
做完之后半个月,我在工作中优化了一个慢查询,从 13 秒降到了 0.4 秒。那次我知道我找对方向了,不是因为碰运气,而是因为我看得见问题所在。
2.3 手写神经网络(AI 从业者必做)
作为一个长期关注大模型的人,这部分我格外认真。
推荐的资源是 Andrej Karpathy 的 Neural Networks: Zero to Hero 系列(归在 Python/神经网络下),以及 SlowTorch(从零实现 PyTorch 自动微分引擎)。
Karpathy 的系列是我见过把反向传播讲得最清楚的教学内容。在那之前,我能用 PyTorch 写 Transformer,但如果有人问我”为什么 loss.backward() 能更新参数”,我其实说不利索。
做完这个系列之后,我在看 LLM 的技术报告时,理解深度明显不一样了——那些关于 gradient clipping、learning rate schedule、attention 计算复杂度的讨论,开始有了更具体的物理感。
2.4 手写操作系统(我放弃了一半)
诚实说:我在 OS 这个分类上彻底失败了。
我尝试了 Writing an OS in Rust 和 The little book about OS development,撑了两周,在 memory mapping 和 interrupt handler 的部分彻底卡住,选择了放弃。
这个体验本身也是有价值的:它让我清楚地知道自己的知识边界在哪里。OS 开发需要汇编基础、计算机体系结构基础、以及相当强的调试耐心,三样我都不够。这不是项目的问题,是我准备不足。
三、项目内容的客观评价
优点
策划质量极高。 这不是随便收集链接的 awesome-list。每个收录的教程都经过筛选,步骤清晰、有实际产出、不是纯理论。拿数据库一节来说,同样是”手写数据库”,C 版和 Go 版选择的是不同侧重点的教程,有互补关系。
覆盖广度令人叹服。 30+ 个技术大类,300+ 个链接,涵盖从嵌入式(Game Boy 模拟器)到分布式(Kafka-like 系统),几乎没有明显的遗漏。
语言选择丰富且务实。 对于每个技术,主流语言基本都有对应教程,Rust 的覆盖尤其完整,这对想学 Rust 又需要实质项目的开发者非常友好。
与 CodeCrafters 平台协同。 仓库背后有 CodeCrafters 这个付费平台(提供真实测试用例、自动化验证的交互式版本),仓库本身免费,平台是可选的进阶。两者配合比较自然。
局限性
中文资料几乎为零。 所有教程都是英文,且相当一部分需要具备一定的英文技术阅读能力。
质量参差不齐。 虽然整体策划质量高,但具体到某些小众分类(比如 Voxel Engine、Augmented Reality),教程的步骤细化程度明显不如主流分类。
无结构、无进度追踪。 它就是一个 Markdown 文件,没有学习路径规划,没有完成标记,没有难度排序。如何选择、如何安排顺序完全靠自己。
部分教程已经老旧。 有一些链接最后更新是 2015-2017 年,技术细节(比如特定语言版本)可能已经不准确。这在静态 Markdown 仓库里很难系统性维护。
新手劝退风险高。 仓库名叫”Build Your Own X”,新手容易低估难度直接上手,然后在第一个报错面前放弃。它的受众其实是已经有编程基础的中级开发者。
四、AI 时代,这个项目的价值变了吗?
这是我认为最值得认真讨论的一个问题。
一种声音说:BYOX 过时了。 ChatGPT、Claude 可以一句话生成一个 Redis 客户端,何必自己造轮子?
另一种声音说:BYOX 比以前更重要。 在人人都能让 AI 生成代码的时代,能真正理解这些代码、审查这些代码、在它出错时知道为什么出错的工程师,才是真正稀缺的。
我的观点:两种说法都有道理,但方向不同。
AI 确实降低了”产出可运行代码”的门槛,BYOX 里的初级项目(手写 Web 服务器、手写 Git 基础)在这个维度上被部分替代了——你可以让 AI 给你生成,然后读懂它。
但 BYOX 最深层的价值从来不是”产出代码”,而是”通过痛苦的实现过程,在大脑里建立对某个系统的直觉模型”。这件事 AI 还没办法帮你代劳——它可以告诉你答案,但没办法替你经历那个”卡住三天最终想通了”的时刻。
更重要的是:BYOX + AI 的组合,学习效率比以前高多了。卡住的时候问 Claude,它能精准解释你卡在的那个具体问题,然后你继续动手。这比以前独自啃文档、发 Stack Overflow、等回复的方式快了不止一个数量级。
结论:AI 没有让 BYOX 过时,但改变了最优的使用方式。
五、我的使用建议
怎么选第一个项目
不要选”最想做的”,要选”最能形成闭环的”。
我见过很多人一上来就选 OS 或者编程语言,然后卡在第一周放弃,之后再也没打开过这个仓库。
建议按这个顺序考虑:
- 从 Git 或 Web Server 入门——步骤细、语言选择多、产出明确
- 第二个项目选你工作中天天用但不懂原理的东西(数据库、Redis、框架)
- 等你有了两个成功经验,再挑战 OS 或编程语言
和 AI 工具的最佳配合方式
不要让 AI 帮你写实现代码。
用 AI 做这些事情:
- 遇到报错,让 AI 解释错误的含义(而不是直接给你改好的代码)
- 实现完一个模块,让 AI 给你的代码做 code review,指出概念上的缺陷
- 读完一个章节,用自己的话向 AI 解释你理解的内容,让它指出你的漏洞
- 实现了某个功能,问 AI “真实的 Redis/SQLite 是怎么处理这个问题的,和我的实现有什么区别”
这套流程下来,学习深度比单独做高很多。
关于”做完”这件事
BYOX 没有终点,不存在”做完”。
我的建议是:每次选一个项目,给自己定一个”最小完成标准”(比如”能跑通核心功能的80%“),达到之后就可以收手。完美主义在这类学习项目里是最大的敌人。
六、最终打分
| 评分维度 | 得分 | 说明 |
|---|---|---|
| 内容质量 | 9.0 | 策划水准极高,几乎每个链接都经过人工筛选 |
| 覆盖广度 | 9.5 | 30+ 技术类别,几乎没有重要遗漏 |
| 学习深度 | 8.2 | 做完真的有深度,但需要主动投入 |
| 新手友好度 | 5.5 | 对完全没有基础的人不太友好,有被劝退的风险 |
| 维护活跃度 | 7.2 | 整体稳定,但部分老旧链接没有及时清理 |
| 社区生态 | 8.8 | 488k star 本身就是一种背书,社区讨论活跃 |
| 综合评分 | 8.4 / 10 | 开发者书签必收,值得长期使用 |
七、一句话总结
它不会让你成为大师,但会让你在那些关键时刻——面试、线上排查、技术决策——比其他人多一层看穿问题的能力。
在一个到处都是”AI帮我写的”代码的时代,这层能力比以前更值钱,不是更廉价
文中所有学习体验为个人真实经历,不代表适用于所有人。