Stars★ 558.1k
Forks⑂ 52.2k
主语言Markdown
分类学习资源
作者codecrafters-io
LicenseCC0-1.0

预览

详细介绍

Build Your Own X 是由开发者 Daniel Stefanovic 于 2016–2017 年发起、现由 CodeCrafters, Inc. 持续维护的开源“从零构建”教程索引,核心定位是“一份被 50 多万人收藏的‘造轮子’地图——它不含一行可执行代码,只做一件事:把散落在互联网各处的‘从零实现某技术’教程,筛选、分类、整理成一条你可以直接走进去的动手路径”。它不满足于做又一份 awesome-list 式的链接罗列,而是将27–31 个技术类别、290–359 篇人工验证的 step-by-step 教程整合于一份纯粹的 Markdown README 中,全部配有按“你要建造的东西”而非编程语言分类的浏览逻辑、跨语言(C/C++/Rust/Python/Go/JavaScript/Java 等)的教程覆盖,以及 CC0 1.0 公共领域贡献协议。

一、Build Your Own X 是什么

Build Your Own X 采用“建造驱动索引 + 人工筛选验证 + 零代码 Markdown”三位一体的组织方式,通过 GitHub 完全开源发布,采用 CC0 1.0 协议——在法律允许的最大范围内放弃所有版权及相关权利。项目由 Daniel Stefanovic 于约 2016–2017 年发起,后由 CodeCrafters, Inc. 接手维护,社区贡献者超过 130 人。截至 2026 年,GitHub Star 数在 46.8 万至 55.6 万区间浮动,长期位居 GitHub 全站 Star 前列。

它的运作机制与市面上所有“编程课程平台”或“awesome-list”都有本质区别。打开仓库,你不会看到任何 .py、.rs 或 .c 文件——整个仓库的核心就是一个约 2000 行的 README.md,按技术类别分门别类地列出数百条外部链接。但这份索引的价值恰恰在于筛选:互联网上“从零写一个 X”的教程数量庞大,质量参差不齐;BYOX 由维护者和社区贡献者人工验证每一条收录的教程,确保它步骤清晰、有实际产出、不是纯理论空谈。有长期使用者评价:“这不是随便收集链接的 awesome-list。每个收录的教程都经过筛选,步骤清晰、有实际产出。”

二、Build Your Own X 能做什么

筛选与验证——把“该从哪篇教程开始”从试错负担变成结构化清单(筛) ——不是“再丢一堆链接让你自己挑”,而是“已经替你挑过一遍”。README 收录的每一个条目都指向一篇具体的、可执行的从零构建教程,而不是泛泛的技术介绍或 API 文档。这种“人工过滤”的设计,让学习者省去了在搜索引擎和论坛之间反复试错的时间。

建造驱动的分类逻辑——按“你想造什么”而不是“你用什么语言”组织(建) ——不是“先学完一门语言再学框架”,而是“想造一个数据库,进去挑一篇”。README 完全按你要建造的东西分类:基础设施类(操作系统、数据库、Docker、Web 服务器、搜索引擎、网络协议栈)、开发工具类(Git、Shell、文本编辑器、命令行工具、模板引擎)、编程语言类(编译器、解释器、Lisp、正则引擎)、应用层类(区块链、BitTorrent 客户端、游戏引擎、3D 渲染器、神经网络)、前沿领域(从零实现大语言模型、扩散模型、RAG 系统)。这种“建造驱动”的逻辑与程序员天然的学习路径对齐——大多数人不是按课程大纲线性学习,而是“想造一个东西然后边学边造”。

跨语言的教程覆盖——用你熟悉的武器库拆解任何技术(跨) ——不是“强行绑定一个语言栈”,而是“每个类别下面,C、Python、Go、Rust、JavaScript 的教程混在一起排”。你不需要为了这个仓库去学一门新语言——想用 Rust 写操作系统、用 C 写数据库、用 Python 写 3D 渲染器、用 Go 写 BitTorrent 客户端,都有对应的教程可选。教程覆盖的语言包括 C/C++、Rust、Python、Go、JavaScript、Java、Haskell、Ruby,以及 Nim、Crystal 等。

一份“从用到造”的认知转变邀请(造) ——不是“看懂了视频就等于掌握了”,而是“你自己造一遍,就全明白了”。仓库 README 最显眼的位置印着物理学家理查德·费曼的名言:“What I cannot create, I do not understand.”(凡我不能创造的,我就不能理解。) 这句名言是整个项目唯一的方法论宣言。一位持续使用一年的开发者记录了手写 Git 的体验:“两个星期之后,我把 commit、branch、merge 的底层结构全部手写了一遍。收获不是‘我能用 Python 写一个 Git’——而是此后再遇到 rebase conflict、detached HEAD、reflog 这类问题,脑子里会自动浮现出那些 blob/tree/commit 对象的关系图。”手写数据库时卡在 B 树实现三天,但完成之后,“为什么数据库写入要先写 WAL”“B 树的节点分裂是怎么一回事”从“知道”变成了“明白”。

三、Build Your Own X 适合谁用

想深入理解某个技术原理的中高级开发者——写了很多年业务代码,只会调现成库,一问底层原理就卡壳。BYOX 提供了一条“选一个你用过但不懂的技术 → 选你熟悉的语言 → 预留 10–20 小时完整时间块 → 从零造一遍”的清晰路径。

想提升系统设计能力的工程师——系统设计面试考的是“为什么选它、放弃了什么”,而“造过”的人对取舍的理解来自亲手调试,而非背诵定义。手写一个简化版 Redis 之后,再看真实 Redis 的源码,“很多设计决策突然变得‘显而易见’”。

想给简历增加“从零实现”项目的求职者——一个亲手构建的简化版数据库、操作系统或编译器,比十个 CRUD 项目更能展示对计算机系统的真实掌控力。

自学者与转行者——没有计算机学位,但希望用“建造”的方式建立对底层系统的直觉。BYOX 不要求你先修完一门课再看另一门,而是让你从“想造什么”直接切入。

技术团队负责人与教育者——需要为团队或学生提供一份“深度理解技术”的实践清单。BYOX 的人工筛选机制让它比随机搜索的教程列表更可靠,可以作为内部技术成长计划的参考目录。

需要注意的是它不适合谁:纯新手需要先“会用”再“学造”;想快速解决生产问题的人应直接看官方文档;追求代码可运行在生产环境的人需要明白——这些是学习用的简化版实现,不是生产级代码。

四、Build Your Own X 的应用场景是什么

“用过但不懂”的技术深挖场景——你用 Redis 存了三年缓存,但说不清 RESP 协议怎么解析、内存怎么组织、持久化为什么先写 WAL。选一篇 Build Your Own Redis from Scratch,用 C 或 Rust 实现一个简化版键值存储,理解 GET/SET 背后发生了什么。用 Docker 跑了几百个容器,但说不清容器和虚拟机的本质区别,选 Build Your Own Container 从零实现一个。

系统设计能力“从背到懂”的实战场景——系统设计面试的瓶颈往往不是不知道“分片”这个词,而是说不清分片带来的代价。从零实现一个带 B+ 树索引的简单数据库,你会亲手遭遇“节点分裂时数据怎么搬”“WAL 为什么必须先写日志再写数据页”——这些问题在面试中被问到时,你给出的答案来自调试经验,而非记忆。

编程语言与编译器的“拆黑盒”场景——每天写 Python、JavaScript,但对“解释器怎么把文本变成 AST、AST 怎么变成字节码、垃圾回收器怎么判断对象死活”只有模糊印象。BYOX 收录了从 Lisp 解释器到完整编译器、从正则引擎到垃圾回收器的多语言教程,让你亲手拆开语言的黑盒。

前沿领域(LLM / 扩散模型 / RAG)的低成本动手场景——不是等一门昂贵的课程,而是跟着索引里收录的教程,从零实现一个简化的大语言模型、扩散模型或 RAG 系统,理解注意力机制、去噪过程和检索增强的工程细节。

技术团队内部“造轮子”学习小组场景——团队选一个共同的“建造目标”(比如一起从零实现一个简易 Git 或 Docker),每周固定时间推进教程章节,在组内讨论卡点和设计决策。BYOX 的跨语言覆盖让每个成员可以用自己最熟悉的语言参与同一个技术主题。

五、Build Your Own X 为什么值得关注

从“信息过载”到“人工筛选过的结构”的认知升维。互联网上“从零写 X”的教程数量庞大,但质量参差不齐——有的只是代码片段,有的跳到一半开始讲无关内容,有的甚至无法运行。BYOX 的核心价值不是“收集”,而是筛选:由维护者和社区人工验证每一条收录的教程,确保它步骤清晰、有实际产出、不是纯理论空谈。对于一个想深入理解技术原理的开发者来说,这层过滤省去的是数小时甚至数天的试错成本。

“建造驱动”而非“课程驱动”的学习路径对齐。大多数编程教育是“课程驱动”的:先修完这门语言课,再看那门框架课。BYOX 是建造驱动的:你想造一个数据库,就直接进入 Database 分类;你想造一个操作系统,就直接进入 Operating System 分类。这种逻辑与程序员真实的学习冲动是对齐的——“大多数人不是先学完一门语言再学框架再学项目,而是想造一个东西然后边学边造”。BYOX 不要求你先“准备好”,它让你从“想造什么”直接开始。

50 万+ Stars 的社区验证——GitHub 全站 Star 数最高的仓库之一。BYOX 的 Star 数在 46.8 万到 55.6 万区间,长期位居 GitHub 全站 Star 前列。在 GitHub 上没有哪个技术学习类仓库的星标数能接近这个数字。一个没有一行可执行代码的仓库获得这种量级的认可,本身就是对“从零构建是理解技术的最佳方式”这一理念的集体投票。

“最诚实的编程资源”——不假装自己是速成课。有评测将 BYOX 概括为“GitHub 上最诚实的编程资源之一。不是因为它内容多深,而是因为它不骗你”。它不承诺“7 天精通”,不提供“就业保障”,不把简化版实现包装成生产级代码。它只是告诉你:想真正理解一个东西,就去造一个。这种诚实,在充斥着营销话术的技术教育领域,本身就是一种稀缺品质。

CC0 1.0——公共领域贡献,没有任何使用限制。BYOX 采用 CC0 1.0 协议,在法律允许的最大范围内放弃所有版权及相关权利。这意味着你可以自由复制、修改、分发、甚至用于商业目的,无需署名、无需许可。对于一个教程索引来说,这种“零摩擦”的许可边界,让它的内容可以最大程度地流动和再利用。