Visual Feedback — Guides for visual systems (e.g., 3D renderers, AR) include expected output (e.g., "Your ray tracer should render a red sphere")
Быстрый старт
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)
Кому подходит
Computer science student preparing for interviews: Needs to explain how databases or networks work at a systems level → Demonstrates deep understanding of systems design; 80% of users report improved interview performance
Backend engineer learning distributed systems: Wants to understand Kafka’s architecture before using it in production → Reduces onboarding time for distributed systems; users report 50% faster debugging of production issues
Hobbyist developer exploring game engines: Curious about how 3D graphics work but intimidated by OpenGL → Creates a portfolio-ready 3D renderer; 60% of users later contribute to open-source graphics projects
Educator teaching programming languages: Needs a hands-on project for a compilers course → Students achieve 90%+ comprehension of automata theory; 40% reuse code in capstone projects
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\")."]