build-your-own-x (从零开始造轮子)
561,827
Stars
52,566
Forks
6,816
Watchers
696
Open Issues
未知
许可证
Markdown
语言
2018-05-09
创建时间
2026-11-08
最近更新
项目能做什么
精选优质教程合集,带你从零手写 Git、Docker、数据库等常用技术,通过动手造轮子吃透底层原理、进阶编程水平。
来源:基于仓库元数据
· 内容以仓库实际 README 为准
使用说明 查看原始 README 原仓库文档
项目简介
codecrafters-io/build-your-own-x 是一个在 GitHub 上极受欢迎的开源学习资源清单。正如物理学家理查德·费曼所说:“What I cannot create, I do not understand”(凡我不能创造的,我就没有真正理解)。该项目汇总了一系列高质量的实践教程,带你从零开始(From Scratch)亲手实现各种经典的计算机底层技术和工具。
核心功能
该仓库系统化地分类整理了跨语言、动手造轮子的精选教程,涵盖的技术领域包括但不限于:
- 人工智能与分布式:
AI Model:大语言模型(LLM)、扩散模型(Diffusion Models)、文档检索增强(RAG)Distributed Systems:手写类似 Kafka 的分布式系统- 底层架构与系统:
Operating System、Docker、Processor、Emulator / Virtual Machine、Memory Allocator、Network Stack- 开发与基础工具:
Git、Database、Shell、Text Editor、Programming Language(编程语言/编译器)、Regex Engine、Command-Line Tool- 图形与游戏引擎:
3D Renderer(光线追踪、光栅化等)、Physics Engine、Voxel Engine、Augmented Reality- 网络与 Web 技术:
Web Server、Web Browser、BitTorrent Client、Blockchain / Cryptocurrency
每个领域都提供了不同编程语言(如 C++、Python、Go、Java、C#、JavaScript 等)的步骤式教程指引。
适合谁用
- 想弄懂底层黑盒原理,不满足于只当“API 调用工程师”的开发者。
- 寻找计算机体系结构、编译原理、操作系统、图形学等硬核练手项目的学生和自学者。
- 想要通过动手实践精进某一门编程语言的中高级程序员。
安装步骤
此部分原文未说明,请查看原仓库。
说明:本项目是一个经过精心整理的技术教程合集清单(Curated List),本身不包含需要安装执行的代码。开发者无需安装任何依赖,直接点击 README 中对应技术领域的教程链接,即可跳转到具体的教程网页或对应项目的源码仓库开始学习。
配置说明
此部分原文未说明,请查看原仓库。
常见问题
此部分原文未说明,请查看原仓库。
原始 README 摘录(英文原文,节选前 3000 字符)
[](https://codecrafters.io/github-banner) ## Build your own <insert-technology-here> This repository is a compilation of well-written, step-by-step guides for re-creating our favorite technologies from scratch. > *What I cannot create, I do not understand — Richard Feynman.* It's a great way to learn. * [3D Renderer](#build-your-own-3d-renderer) * [AI Model](#build-your-own-ai-model) * [Augmented Reality](#build-your-own-augmented-reality) * [BitTorrent Client](#build-your-own-bittorrent-client) * [Blockchain / Cryptocurrency](#build-your-own-blockchain--cryptocurrency) * [Bot](#build-your-own-bot) * [Command-Line Tool](#build-your-own-command-line-tool) * [Database](#build-your-own-database) * [Docker](#build-your-own-docker) * [Emulator / Virtual Machine](#build-your-own-emulator--virtual-machine) * [Front-end Framework / Library](#build-your-own-front-end-framework--library) * [Game](#build-your-own-game) * [Git](#build-your-own-git) * [Memory Allocator](#build-your-own-memory-allocator) * [Network Stack](#build-your-own-network-stack) * [Neural Network](#build-your-own-neural-network) * [Operating System](#build-your-own-operating-system) * [Physics Engine](#build-your-own-physics-engine) * [Processor](#build-your-own-processor) * [Programming Language](#build-your-own-programming-language) * [Regex Engine](#build-your-own-regex-engine) * [Search Engine](#build-your-own-search-engine) * [Shell](#build-your-own-shell) * [Template Engine](#build-your-own-template-engine) * [Text Editor](#build-your-own-text-editor) * [Visual Recognition System](#build-your-own-visual-recognition-system) * [Voxel Engine](#build-your-own-voxel-engine) * [Web Browser](#build-your-own-web-browser) * [Web Server](#build-your-own-web-server) * [Uncategorized](#uncategorized) ## Tutorials #### Build your own `Distributed Systems` * [**Java**: _Building Your Own Kafka-like System From Scratch: A Step-by-Step Guide_](https://github.com/buildthingsuseful/build-your-own-kafka) #### Build your own `3D Renderer` * [**C++**: _Introduction to Ray Tracing: a Simple Method for Creating 3D Images_](https://www.scratchapixel.com/lessons/3d-basic-rendering/introduction-to-ray-tracing/how-does-it-work) * [**C++**: _How OpenGL works: software rendering in 500 lines of code_](https://github.com/ssloy/tinyrenderer/wiki) * [**C++**: _Raycasting engine of Wolfenstein 3D_](http://lodev.org/cgtutor/raycasting.html) * [**C++**: _Physically Based Rendering:From Theory To Implementation_](http://www.pbr-book.org/) * [**C++**: _Ray Tracing in One Weekend_](https://raytracing.github.io/books/RayTracingInOneWeekend.html) * [**C++**: _Rasterization: a Practical Implementation_](https://www.scratchapixel.com/lessons/3d-basic-rendering/rasterization-practical-implementation/overview-rasterization-algorithm) * [**C# / TypeScript / JavaScript**: _Learning how to write a 3D soft engine from scratch in C#, TypeScript or J阅读完整原文
商业机会分析 规则生成(AI 未配置)
综合评分 55.4 分。该项目在“个人可实施性”维度得 35 分,“付费可能性”维度得 40.0 分,差异化空间 70.0 分(评分依据见评分卡)。
将 build-your-own-x 改造为垂直场景 SaaS
| 产品构想 | 保留核心能力,针对某一类用户(如某行业团队)做托管版,收取月费。 |
| 目标用户 | 有该需求的中小团队 / 独立站长 |
| 难度/周期 | 较高 · 2~4 周(MVP) |
| 收费模式 | 订阅制(如 ¥29~99/月) |
| 竞争风险 | 需验证付费意愿;注意许可证合规 |
| 依据 | 数据支持的判断:许可证与关键词显示存在商用与付费场景 |
面向细分需求的二次开发产品
| 产品构想 | 基于 build-your-own-x 的核心能力,聚焦一个更窄的场景(如某平台、某行业)做差异化。 |
| 目标用户 | 该细分场景用户 |
| 难度/周期 | 中 · 2~6 周 |
| 收费模式 | 买断制 / 订阅制 / 广告 |
| 竞争风险 | 细分需求规模需验证 |
| 依据 | AI 推测:基于项目主题标签的判断 |
以上为规则引擎基于仓库公开数据生成的参考结论,包含推测成分,不构成投资或创业承诺;配置 AI 后可获得更深入的分析。
报告会保存到 个人中心
竞品与相似项目 GitHub Search 真实检索
| 项目 | 中文简介 | Stars | 语言 |
|---|---|---|---|
| sindresorhus/awesome | 中文介绍暂未生成 😎 Awesome lists about all kinds of interesting topics [NOTE: |
535,332 | - |
| awesome-selfhosted/awesome-selfhosted | 中文介绍暂未生成 A list of Free Software network services and web application |
336,154 | - |
| vinta/awesome-python | 中文介绍暂未生成 The definitive list that answers "I want to do X in Python, |
334,098 | Python |
| trimstray/the-book-of-secret-knowledge | 中文介绍暂未生成 A collection of inspiring lists, manuals, cheatsheets, blogs |
257,742 | - |
| ossu/computer-science | 中文介绍暂未生成 🎓 Path to a free self-taught education in Computer Science! |
211,010 | HTML |
| avelino/awesome-go | 中文介绍暂未生成 A curated list of awesome Go frameworks, libraries and softw |
193,355 | Go |
以上为通过 GitHub 官方 Search API 检索的相似项目,功能差异与优劣势需进一步人工确认,配置 AI 后可生成对比分析。
项目优势与风险
| 技术成熟度 | 创建于 2018-05-09,近 30 天仍在推送 |
| 社区活跃 | Star 561,827 / Fork 52,566 / Issue 696(数据支持,可自行核实) |
| 许可证 | 未检测到(需人工确认) |
| 主要风险 | 上游项目方向可能变化;同赛道竞争者较多(见竞品表);热度与需求不完全等价 |
安装与使用
快速开始(以仓库 README 为准)
git clone https://github.com/codecrafters-io/build-your-own-x.git cd build-your-own-x # 请阅读仓库 README 获取确切安装步骤(依赖、配置、启动命令)
术语说明:Docker=应用容器(把程序和依赖打包运行);API Key=调用外部服务的密钥;Git Clone=把仓库代码下载到本地。常见错误:API Key 未配置 / 端口占用 / 数据库连接失败,多数项目在 README 的 Troubleshooting 章节有说明。