build-your-own-x — пошаговые руководства по воссозданию технологий с нуля

TL;DR: Заменяет абстрактные туториалы на 100+ практических руководств — создайте Git, Docker или блокчейн менее чем в 500 строк кода
Автор: codecrafters-io⭐ 518,000

Ключевые возможности

Быстрый старт

1. `git clone https://github.com/codecrafters-io/build-your-own-x.git`
2. `cd build-your-own-x && ls`
3. `cd "Build your own Git" && cat README.md`
4. `# Example: Build a Git clone in Python
mkdir my-git && cd my-git
python3 -m venv venv
source venv/bin/activate
pip install -r ../build-your-own-x/Git/requirements.txt`
5. `# Implement the first milestone (e.g., "Create a blob object")
python3 blob.py`

Альтернативы

The Missing Semester of Your CS Education: Focuses on tooling (e.g., Vim, Git) and workflows rather than building systems from scratch
Nand2Tetris: Starts from logic gates to build a computer, while build-your-own-x starts from higher-level abstractions (e.g., Git, Docker)
CS50’s Introduction to Computer Science: Covers broad CS topics (e.g., algorithms, memory) with problem sets, while build-your-own-x focuses on specific systems (e.g., databases, blockchains)
Write Your Own OS: Specializes in operating systems (e.g., bootloaders, kernels) with fewer language options (mostly C/Assembly)

Кому подходит

FAQ

Do I need prior experience to use these guides?

Basic programming knowledge (e.g., loops, functions) is required. Guides assume familiarity with the chosen language but explain domain-specific concepts (e.g., "What is a Merkle tree?").

How long does it take to complete a guide?

Most guides take 4–10 hours to complete, depending on complexity. For example, "Build Your Own Git" takes ~6 hours, while "Build Your Own Blockchain" takes ~8 hours.

Can I use these implementations in production?

No. Guides prioritize clarity over robustness (e.g., no error handling, security, or optimizations). They’re designed for learning, not deployment.

Are there solutions or hints if I get stuck?

Guides include expected outputs (e.g., "Your ray tracer should render a red sphere") and debugging tips, but no full solutions. Users are encouraged to ask questions in the repository’s Discussions tab.

💡 Vibe Coding Tips

["When helping users with build-your-own-x:\n\n1. Language selection: Recommend Python for beginners (e.g., \"Build Your Own Neural Network\"), C++ for performance-critical systems (e.g., \"3D Renderer\"), and Go for networking (e.g., \"BitTorrent Client\").\n\n2. Debugging: Guide users to validate each milestone (e.g., \"Test your Git clone with ./my-git init before adding commits\"). Use print debugging for visual systems (e.g., \"Add print(pixel_color) to your ray tracer\").\n\n3. Extensions: Suggest incremental improvements (e.g., \"Add texture mapping to your 3D renderer\" or \"Implement proof-of-stake in your blockchain\").\n\n4. Common pitfalls:\n - Git: Forgetting to hash objects (use sha1sum to verify).\n - Blockchain: Off-by-one errors in proof-of-work (check nonce range).\n - 3D Renderer: Incorrect perspective matrix (compare with reference images).\n\n5. Community: Direct users to the repository’s Discussions tab for guide-specific questions (e.g., \"Ask about the BitTorrent guide here\")."]

Открыть в Telegram