build-your-own-x:29 类从零手写教程,从「会用」到「会造」的完整指南
【免费下载链接】build-your-own-xMaster programming by recreating your favorite technologies from scratch.项目地址: https://gitcode.com/GitHub_Trending/bu/build-your-own-x
你用数据库多年,却说不出数据在磁盘上怎么存放;写前端页面没问题,框架一挂就不知道渲染管线在干什么。build-your-own-x 是一份从零手写(from scratch)教程精选清单,把 29 类常用技术从 Web Server 到操作系统整理成一步步「自己造一遍」的指南,每条教程都标注语言,按你的水平挑一条就能上手。
一句话价值:费曼说「我不能创造的,我就不理解」。这份清单就是把你从「会用」带到「理解」的那条路,零安装、打开就能挑。
30 秒看全貌:能力全景图
先不用背 29 个分类,下面这张表就是地图,30 秒建立坐标,后面按场景细看。
| 能力维度 | 代表功能 | 你的实际收益 |
|---|---|---|
| 入门热身 | Web Server、Shell、模板引擎、CLI 小工具 | 一小时内做出能跑的小成品,建立从零写起的肌肉记忆 |
| 核心内功 | 数据库、Git、编程语言、正则引擎 | 吃透每天在用的工具底层,技术评审敢接话 |
| 系统深水区 | 操作系统、Docker、网络栈、内存分配器 | 打到内核与网络层,不再只会背 API |
| AI 与图形 | 神经网络、AI 模型、3D 渲染器、视觉识别 | 反向传播、光线追踪动手实现,摆脱框架黑盒 |
| 多语言对照 | 同一主题有 C/Go/Rust/Python 等多个版本 | 按主力语言选,或换语言重做同一主题加深理解 |
| 研究趣味 | 区块链、模拟器、Web 浏览器、游戏 | 复刻经典项目,直接沉淀成作品集与面试素材 |
最小上手路径:三步跑通
这个项目是纯 Markdown 清单,没有安装、没有依赖、没有环境配置。所谓「跑起来」,就是能打开它、挑到一条教程。
- 克隆仓库:
git clone https://gitcode.com/GitHub_Trending/bu/build-your-own-x- 打开
README.md:整个清单就这一个文件,顶部是目录,下面按 29 个分类组织,每个分类内按语言列出多条教程。 - 挑一条赛道:在目录里找到和你当前水平匹配的方向,选你最熟语言的那一条,就是起点。
易错点:别想着按顺序把清单读完。这是「菜单」不是「课程」,挑一条系列跑顺,才算真正上手。
不克隆也行:直接打开 README.md
环境里没有 git 也没关系,仓库的README.md是纯静态文本,在任何代码托管页面的文件视图里直接打开就能读,无平台差异、无执行需求。
按语言快速筛选:怎么搜
清单里每条教程都带语言标签。克隆下来后按 Ctrl+F 搜**Rust**或**Go**,能立刻筛出该语言的全部教程。多语言选手用这招比翻目录快。
入门热身层:先能跑完的 5 条「从零手写」
新手最需要的是一条能跑完的系列:短、快、有产出,先证明「从零写」这件事对你可行。
- Web Server:最经典热身。从解析 HTTP 请求写到 Node.js / Python 的最小服务器,一天内跑完,还能真实响应请求。
- Shell:用 C 或 Rust 写自己的 shell,第一次真正理解进程派生和命令解析。
- 模板引擎:20 到 30 行代码写出能跑的模板引擎,全清单里「我做出了东西」反馈最快的一条。
- 文本编辑器:C 语言版
Build Your Own Text Editor带你逐章造一个终端编辑器,学完对 I/O 和缓冲区有体感。 - CLI 小工具:Go 写 cowsay、fortune 这类系列,体量大、完整度够,做完能在终端直接使。
任意一条跑完,就有资格进下一层。
核心内功层:每天在用的工具,底层原理
日常写 SQL、提 Git、用正则,但被问「底层在干什么」答不上来——这一层就是补这个欠账。
- 数据库:C 语言
Let's Build a Simple Database让你手写 B+ 树和磁盘页;Build Your Own Database in Go用 3000 行从 B+ 树走到 SQL。 - Git:Python 版
Write yourself a Git从对象存储讲到 commit,跑完你就知道.git目录里每个文件是干什么的。 - 正则引擎:JavaScript 40 行写一个正则引擎,或 Python 走完整 NFA/DFA 路线,做完之后
grep不再是黑盒。 - 编程语言:C 版
Build Your Own Lisp只有 1000 行,Java 版Crafting Interpreters更系统,从词法到解释器写完一遍,编译器从此不吓人。
这一层做完,你对每天在用的工具的理解比「会用」深一层。
系统深水区层:打破「不会往下钻」的墙
如果你一直在应用层开发、感觉撞到天花板,内核与网络层就是往下钻的方向。
- 操作系统:
Writing an OS in Rust从 bootloader 写到内核调度;C 语言How to create an OS from scratch逐行带过。 - Docker:100 行 Go 写一个容器,或 500 行 C 实现 Linux containers,namespaces 和 cgroups 从此不是名词。
- 网络栈:跟着
Let's code a TCP/IP stack手写以太网、ARP 到 TCP,之后再排查网络问题不会只靠猜。 - 内存分配器:C 的 malloc 教程加
Malloc is not magic,自己实现一次内存分配,「指针挪一挪」就再也不会翻车。
这层坡度最陡,建议先跑完核心内功层再进。
AI 与图形层:把两个黑盒打开看
你天天调的模型和渲染管线都是黑盒,这一层让你亲手把盒子拆开。
- 神经网络:从 11 行 Python 的神经网络起步,到
SlowTorch用纯 Python 重实现 PyTorch,难度自选。 - AI 模型:
LLMs-from-scratch一步步带写大模型;扩散模型、RAG 也有对应教程。 - 3D 渲染器:
Ray Tracing in One Weekend是经典入口;tinyrenderer用 500 行 C++ 讲透 OpenGL 软件渲染。 - 视觉识别:人脸识别流水线、车牌识别,Python 环境即可跑起来。
研究趣味层:做出「我做成过」的成品
内功之后需要一个能拿出手的东西,这一层的产出可以直接变成作品集和面试故事。
- 区块链:JavaScript 的 Naivecoin 不到 1500 行,Go 版 200 行写完一条完整链。
- BitTorrent 客户端:Go 版从 bencode 解析写到完整客户端,网络协议实战好素材。
- 模拟器:Game Boy 模拟器是练级圣地,指令集执行方式一遍就能吃透。
- Web 浏览器:Rust 版
Let's build a browser engine从零写浏览器布局引擎,前端后端通吃的人会很上头。 - 游戏:
Handmade Hero是长期更新的 C 语言游戏开发系列,另有俄罗斯方块复刻、Roguelike 教程可选。
进阶与隐藏层:老用户的 4 种用法
跑完一条系列之后,这份清单还能这样榨出更多价值。
- 跨语言对照:同一主题基本都有多语言版本。用 C 写完
Build Your Own Lisp再翻 Python 版的同名教程,语言间的设计取舍比任何书都清楚。 - 索引就在文件里:整个仓库只有
README.md和ISSUE_TEMPLATE.md两个文件。README.md按分类锚点组织,Ctrl+F 语言标签即出该语言全部教程,目录即索引。 - 贡献路径:新教程以 PR 方式接收,仓库里挂着待评审的提交队列,帮人 review 是低门槛参与方式;自己跑完一套教程写出来提 PR,也是正经贡献。
- 许可与边界:仓库以 CC0 发布,版权已放弃,可自由 fork 与摘抄;但各教程与其复刻的官方项目无隶属关系,示例代码只用于学习。
出问题别慌:6 个高频问题
- 分类太多挑不动?→ 1. 先看目录定方向 2. Ctrl+F 你的主力语言缩小范围 3. 从热身层的模板引擎、正则引擎这类短的入手。
- 教程中途卡住?→ 1. 回读上一节代码并亲手跑一遍 2. 先写一个更小的同类程序 3. 换一门你更熟的语言做同主题教程。
- 教程失效、链接挂了?→ 1. 搜同主题的后续篇或社区复刻 2. 换不同语言的同类教程对照 3. 找到可用替代后提 PR 更新清单。
- 不知道该选哪门语言?→ 1. 第一条选你会写的语言 2. 同一主题第二条换新语言 3. 准备转岗就直接选目标语言教程。
- 写一半弃坑了?→ 换 40 行以内、一个周末能完成的系列(20 行模板引擎、40 行正则引擎),先拿到「做完」的正反馈,再回长系列。
- 克隆太慢或失败?→ 用浅克隆
git clone --depth 1(仓库地址相同),或直接打开仓库文件视图读README.md,不克隆也能用。
安全边界与第一步
所有示例代码都是学习用途,别搬进生产环境;教程里涉及运行来路不明代码或网络程序的,放虚拟机或容器里折腾。仓库本身 CC0 授权,不收集任何数据、不带任何跟踪,纯粹是一份开源教程清单。
最小第一步:克隆仓库,打开README.md,挑 Web Server 或模板引擎的一条,写下你的头几行代码。
先写第一行为好——等那个 20 行模板引擎跑起来,你会回来感谢自己。
【免费下载链接】build-your-own-xMaster programming by recreating your favorite technologies from scratch.项目地址: https://gitcode.com/GitHub_Trending/bu/build-your-own-x
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考