登录 注册

build-your-own-x (从零开始造轮子)

去点 Star
教育与学习 awesome-listfreeprogrammingtutorial-codetutorial-exercisestutorials
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 字符)
[![Banner](https://codecrafters.io/images/new-ccgithub-banner.png)](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 章节有说明。