build-your-own-x
全球最大【从零构建】编程知识库,228个硬核教程覆盖21个技术领域
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
全球最大【从零构建】编程知识库,228个硬核教程覆盖21个技术领域
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
图1:Codecrafters 项目 Banner — Build Your Own X 项目官方标识
想象一下:你想深入理解 Redis 的运作原理,面对网上堆积如山的文章和书籍,却总是停留在"会用"的层面——你能说清楚 Redis 的 AOF 和 RDB 持久化机制为什么这样设计吗?大多数人的答案是"不能"。这是因为我们一直在消费别人造好的轮子,却从未创造过轮子本身。
有一句话在程序员圈子里流传已久:What I cannot create, I do not understand(我不能创造的东西,我就不能真正理解)。这句话出自物理学家理查德-费曼,后来被引申到编程学习中。codecrafters-io/build-your-own-x 正是基于这一理念创建的项目——它汇集了 228 个高质量教程,手把手教程序员从零动手重建自己最喜爱的技术。
codecrafters-io/build-your-own-x 由编程教育平台 Codecrafters(https://codecrafters.io)发起并维护。Codecrafters 是一家专注于"从零构建"学习法的在线编程学校,其核心理念是:学习一项技术的最佳方式,不是读文档、不是看视频,而是亲手把它从零开始实现一遍。
项目创建于 2018 年 5 月,GitHub 地址为 codecrafters-io/build-your-own-x。它不是一个代码库,而是一个元知识库(meta-knowledge base)——本身几乎不包含代码,核心内容是一份精心维护的 Markdown 文档,聚合了互联网上分散的"从零构建"优质教程链接。项目以 MIT 协议开源,由 Codecrafters 团队和全球开发者社区共同维护,截至 2026 年 6 月已积累超过 518,380 个 Star,是 GitHub 上最受欢迎的编程学习项目之一。
让我们用一个生活化的比喻来理解这个项目的价值。
很多人会开车,但有多少人真正理解发动机的工作原理?知道为什么四冲程发动机要做功、压缩、排气、进气这四个步骤?知道火花塞的点火时机为什么如此精确?如果只是开车,你永远停在"会用"的层面。
但如果让你亲手组装一台发动机:从气缸、活塞、曲轴开始,画图纸、选材料、计算压缩比、调试点火时机——当你真正把一台能跑的发动机造出来之后,你对汽车工程的理解就完全不一样了。你会理解为什么发动机会产生爆震、为什么机油如此重要、为什么某些发动机设计先天就有缺陷。
编程也是一样。使用 Redis 的人很多,但亲手实现一个简易 Redis 的人很少——而后者对 Redis 的理解深度,是前者无法企及的。build-your-own-x 就是这样一个平台,它给你一份"造发动机"的图纸清单,告诉你该去哪里找到最好的教程,然后放手让你去实践。
项目的 README 文件是整个知识库的入口,按照"Build Your Own X"框架将所有教程分为 21 个技术领域。
| 领域 | 教程数 | 代表性教程 |
|---|---|---|
| Game(游戏) | 34 | Handmade Hero(C语言手把手开发游戏)、NES 汇编游戏编程 |
| Programming Language(编程语言) | 22 | mal - Make a Lisp(用任意语言实现 Lisp 方言)、Jonesforth(汇编实现 Forth) |
| Blockchain / Cryptocurrency | 21 | 用 Crystal 写 PoW 算法、用 Go 实现简易区块链 |
| Operating System(操作系统) | 19 | Writing a Tiny x86 Bootloader、Baking Pi(操作系统开发) |
| Neural Network(神经网络) | 16 | 从零实现手写数字识别、用 F# 构建神经网络 |
| Front-end Framework | 14 | DIY React JSX 渲染器、WTF is JSX |
| Database(数据库) | 13 | Let's Build a Simple Database(C语言)、Build Your Own Redis from Scratch(C++) |
| Emulator / Virtual Machine | 13 | Home-grown bytecode interpreters、虚拟机实现指南 |
| Bot(机器人) | 15 | Haskell 实现 IRC Bot、Node.js 构建 Facebook Messenger Bot |
| Command-Line Tool | 9 | Go 实现 Git 可视化工具、Go 构建 lolcat |
| 3D Renderer(3D渲染器) | 11 | C++ 光线追踪(Ray Tracing in One Weekend)、OpenGL 软件渲染 |
| Docker | 6 | C 语言 500 行实现 Linux 容器、Go 100 行实现容器 |
| BitTorrent Client | 5 | C# 从零构建 BitTorrent 客户端、Go 构建 BitTorrent |
| 其他 | — | 网络协议栈(4)、Git(7)、AR(6)等 |
教程覆盖的语言种类极为广泛,排名前五的分别是:
值得注意的是,Rust(10个)、Haskell(6个)、F#(3个)、Nim(2个)、Crystal(2个) 等非主流语言也占有相当比例,这意味着项目不仅仅是主流语言的练习场,也鼓励学习者探索不同编程范式——函数式编程、并发理论、类型系统等深层概念往往在非主流语言中体现得更为纯粹。
随着 LLM 热潮,项目中的 AI 相关教程尤为亮眼:
这些教程将 AI 技术从"黑箱调用"变成"透明理解",帮助开发者真正掌握 Prompt 工程、微调、向量检索背后的原理。
项目维护者制定了严格的投稿标准(见 ISSUE_TEMPLATE.md):只接受原创性的、步进式引导的教程,禁止以下内容:框架/库的使用指南(How to use React 不收,但 DIY React JSX Renderer 收);只是粘贴组合其他库的项目(必须有核心算法的原创实现);没有分步引导的简单 Demo。
这保证了整个知识库的质量下限——每一个链接都是经过人工审核的优质资源,而非泛滥的搜索结果聚合。
同一个技术领域,往往有多个不同难度梯度的教程。例如"3D 渲染器"领域:
无论你处于什么水平,都能找到适合当前阶段的教程。
项目本身是纯 Markdown 文件,不需要安装任何依赖。你只需要一个文本编辑器或 GitHub 网页,就可以浏览所有内容。教程链接指向的外部资源(GitHub 仓库、网站、PDF、视频)由原始作者负责维护,项目本身不承担维护负担——这使得这个知识库具有极强的可持续性。
已经工作 1-3 年的工程师,对某项技术"会用但不太懂",想要补齐原理层面的短板。例如:天天用 Docker,但不知道 namespace/cgroup 底层原理,可以看"Build Your Own Docker"教程;调用 GPT API 很熟练,但想理解 Transformer 架构,可以看"Build Your Own LLM"教程;每天写 SQL,但不了解 B+ 树和 WAL 机制,可以看"Build Your Own Database"教程。
计算机专业学生,想要通过实践巩固课堂所学的理论知识。光读书本上的操作系统概念,不如亲手实现一个 x86 bootloader 来得深刻。
最大的争议在于:"工作中又不需要从头写数据库,为什么要做这件事?" 这是一个正当的质疑。
实用主义者的观点是:时间有限,把精力放在业务相关技术上 ROI 更高。但支持者认为:理解底层原理能显著提升排查疑难 Bug 的能力——一个理解 B+ 树实现的工程师,在数据库出现性能问题时,往往比不理解的人更快定位根因。此外,"造轮子"过程中训练的系统性思维和代码架构能力,是可以被迁移到日常工作中的。
228 个教程来自不同作者,质量差异较大。部分教程可能已过时(如依赖老版本语言特性的代码),部分教程的讲解深度不足。项目团队虽然有投稿审核机制,但维护力量有限,无法对 228 个教程逐一保持更新。
与 Codecrafters 的付费课程不同,GitHub 这个开源版本只是教程链接的聚合,没有代码评测、没有自动反馈。如果你写出来的代码有 Bug,没有平台帮你验证。Codecrafters 平台的付费版本提供了实时代码评测环境,但免费的开源版本需要读者自行保证代码正确性。
考虑到项目的创建时间(2018年),其 AI/ML 相关教程的比例偏低。虽然近年来补充了 LLM、Diffusion、RAG 等内容,但相比游戏(34个)、编程语言(22个)等传统领域,AI 领域的教程数量(3个)仍有较大扩展空间。
codecrafters-io/build-your-own-x 的成功,反映了编程教育领域的一个深层趋势变化。
过去十年,在线编程教育的主流模式是快速上手模式:几周内学完 Python、React、Django,目标是快速找到工作。这种模式在短期内有效,但它培养的是"API 调用者"而非"问题解决者"。当遇到前所未见的问题时,仅靠背 API 的人会束手无策,而真正理解底层原理的人能够快速推理出解决方案。
"从零构建"学习法正在成为弥补这一短板的最佳路径。2023-2025 年,GitHub 上涌现了大量"Build Your Own X"类型的项目——从 build-your-own-x,到 build-your-own-git,到 build-your-own-db,到 build-your-own-llm——每一个细分领域都有人在做"从零实现"的教育内容。
这一趋势背后有两个驱动力:
从这个角度看,build-your-own-x 不仅仅是一个学习资源索引,它代表了一种学习态度:不满足于做技术的消费者,而要成为技术的创造者。当你亲手造出一个能跑的 Redis,哪怕它只有 10% 的功能,你对"数据库"这个概念的理解,已经和以前完全不同了。
项目速览