
前几天整理 GitHub 收藏夹的时候,发现一件让我有点脸红的事。
在我 Star 列表里排名最高的项目,不是 React,不是 Next.js,也不是什么明星框架,而是一个叫 build-your-own-x 的仓库。315k Star,GitHub 历史排名前几。而我 Star 了它快两年,说实话,一个都没真正动手实现过。
更让我惊讶的是,这个仓库几乎没有代码。它主要就是一堆 Markdown 文件、链接和分类目录。
一个"教你造轮子"的项目,自己却不造轮子。这个反差让我很好奇,忍不住想搞清楚它为什么能火成这样。
费曼那句话,为什么击中了所有程序员
build-your-own-x 的 README 第一段引用了费曼的一句话:
"What I cannot create, I do not understand."
用人话说就是:你只有亲手实现过,才算真正理解。费曼说这话的时候想的是物理学,但放在软件工程里反而更精准------因为编程可能是唯一一个"你以为你懂了,但让你从零写一个出来就傻眼"的领域。
这句话为什么能引起这么大共鸣?我觉得是因为它精准地戳中了现代程序员的一个集体痛点。想想我们日常开发在干什么:调 SDK、拼 API、用框架、写胶水代码。很多人会用 Redis,会配 Kafka,会用 Git 做版本管理,会用 Docker 打包部署。但如果你问他 Redis 的跳表是怎么实现的,Git 的内容寻址存储原理是什么,Docker 的 namespace 隔离机制具体怎么工作------大部分人的回答可能是沉默。
这不是能力问题,是现代软件工程的结构性结果。框架和工具越来越好用,我们离底层越来越远。
build-your-own-x 提供的是一种完全不同的学习路径。它不是教你"怎么调用 Redis API",而是教你"自己实现一个 Redis"。从"我会用"到"我实现过",这一步跨越非常巨大。
Star 爆炸背后的三重心理
我后来想了想,这个项目之所以能拿到 315k Star,核心是它同时满足了三种完全不同的心理需求。
第一种是收藏型。 "以后一定学。"这种心理太真实了。看到 "Build Your Own Redis"、"Build Your Own Compiler"、"Build Your Own Neural Network" 这些标题,你的第一反应不是"我现在就学",而是"这个太牛了,先收藏"。它就像一个技术版的 Wikipedia,或者程序员版的"武功秘籍目录",你知道它有价值,所以先 Star,哪怕可能永远不会真的打开。
第二种是身份认同型。 Star 这个项目,某种程度上是在表达:"我是追求底层理解的人。"这非常符合 Hacker 文化、系统工程师、极客群体的身份认同。它会让你觉得,自己和那些只会调 API 的程序员不一样。
第三种是社交货币型。 "我自己实现过 Git"------这句话在任何技术场合说出来,分量都完全不同。从"使用者"到"造轮子的人",这是技术身份的质变。这种内容天然适合在 Twitter、Reddit、Hacker News 上传播,因为它有反差感、挑战感,还有一种微妙的炫耀感。
三个心理机制叠加在一起,它的传播效率几乎是指数级的。
但这里有个讽刺的地方:315k Star 背后,真正动手实现过哪怕一个项目的人,恐怕不到 1%。这不奇怪------"Build Your Own Redis"听起来很酷,但真要坐下来写几百行代码去实现一个键值存储、处理网络协议、搞定持久化,大多数人会在第一个周末就放弃。所以 build-your-own-x 的真正价值不是让你把所有项目都实现一遍,而是它提供了一种"随时可以出发"的可能性。你不需要 315k 人都真的去造轮子,只要有一小部分人被激发了,这个生态就在自我生长。
最聪明的地方:几乎没有代码
这可能是 build-your-own-x 最反直觉的地方。一个以"动手造轮子"为核心的项目,自己几乎不包含任何代码。它做的事情很简单:发现优秀的教程,收录进来,分好类。
但这恰恰是它最聪明的设计。因为没有复杂代码库,它不需要修复 Bug,不需要处理 CI/CD,不需要维护向后兼容性。它只需要不断收录优秀的教程资源。这导致社区贡献的门槛极低------任何人都能提一个 PR,加一个教程链接、修一个过期的 URL、增加一个分类。长尾贡献者非常多,社区参与感极强。
换句话说,它把"开源维护"这件事做到了最轻量,却把"知识聚合"这件事做到了极致。
这种模式还有一个隐藏优势:它理论上没有边界。任何新技术都可以变成 "Build Your Own XXX"------Git、Browser、Database、AI Agent。技术变化越快,这个仓库反而越有价值。它永远不会过时。
AI 时代,它反而更重要了
build-your-own-x 最近几年的持续增长,有一个容易被忽视的背景:AI 时代带来的程序员焦虑。
自从 ChatGPT 出现后,大量程序员开始思考一个问题:"AI 会不会替代我?"尤其是那些日常工作就是 CRUD、调 API、写胶水代码的工程师,焦虑感尤为明显。在这种背景下,"理解底层原理"突然变成了一种安全感、一种护城河、一种技术自尊。大家开始意识到,AI 能帮你调 API,但 AI 替不了你理解一个系统从零到一的构建过程。
所以你会看到,最近 build-your-own-llm、build-your-own-agent、build-your-own-transformer 这类内容越来越火。后来 CodeCrafters 甚至把这个理念商业化了------他们不是给你视频课,而是给你真实系统挑战。你写代码,它自动测试、自动校验、模拟真实协议。本质上把源码学习、系统设计、实战融合在了一起,代表了下一代工程教育的方向。有兴趣可以去 codecrafters.io 体验一下。
写在最后
build-your-own-x 真正厉害的地方,不是它收录了多少教程,而是它重新定义了一种学习方式:不是看书、看视频、看文档,而是直接把系统实现一遍。
如果你看完这篇文章有点心动,但不知道从哪个开始,我的建议是:挑一个你每天在用、但完全不知道内部原理的东西。比如 Git------你可能每天都在 commit、push、pull,但你知道 Git 的底层其实是一个内容寻址文件系统吗?说人话就是,它不是按文件名存东西,而是按内容本身生成一个唯一 ID。这个设计决定了 Git 为什么那么快、为什么几乎不会丢数据。Build Your Own Git 大概是最适合入门的项目之一,因为你对它的行为已经非常熟悉,实现过程中的每一步都能和你的使用经验对应上。
费曼说得对:你不能创造的,就不算真正理解。
在 AI 能帮你写代码的时代,这种从第一性原理出发、亲手重建系统的能力,可能是最不容易被淘汰的。我也该打开自己 Star 了两年都没动过的那个仓库了。