Files
nexus/wiki/concepts/Byox.md
2026-04-21 16:03:27 +08:00

63 lines
2.6 KiB
Markdown

---
title: Byox - Build Your Own X
description: Learning programming by rebuilding technologies from scratch
tags: [learning, methodology, programming, open-source]
---
# Byox (Build Your Own X)
## Definition
**Byox** (Build Your Own X) is a learning methodology that advocates for mastering programming and technology understanding by **rebuilding complex systems from scratch**. The guiding principle comes from physicist Richard Feynman:
> *"What I cannot create, I do not understand."*
## Core Philosophy
Instead of passively consuming knowledge about how a technology works, practitioners:
1. **Choose a technology** they want to understand deeply
2. **Study existing implementations** and documentation
3. **Rebuild it from scratch** using a chosen programming language
4. **Gain deep insight** into how it works internally
## Coverage
The Byox methodology covers **26 technology domains**:
- **Systems**: Operating System, Docker, Container
- **Languages**: Programming Language, Compiler, Interpreter, Regex Engine
- **Data**: Database, NoSQL, Key-Value Store
- **Web**: Web Browser, Web Server, Search Engine
- **Tools**: Git, Shell, Command-Line Tool, Text Editor, Template Engine
- **Graphics**: 3D Renderer, Voxel Engine, Physics Engine
- **AI/ML**: Neural Network, Visual Recognition
- **Networks**: Network Stack, BitTorrent Client
- **Entertainment**: Game, Emulator/Virtual Machine
- **Other**: Blockchain/Cryptocurrency, Augmented Reality, Bot
## Resources
Primary resource: [[codecrafters-io/build-your-own-x]] — A curated collection of 500+ step-by-step tutorials
Complementary platform: [[CodeCrafters]] — Interactive challenges that guide learners through building technologies step by step
## Notable Examples
| Technology | Language | Resource |
|------------|----------|----------|
| Database | C | [Let's Build a Simple Database](https://cstack.github.io/db_tutorial/) |
| OS | Rust | [Writing an OS in Rust](https://os.phil-opp.com/) |
| Programming Language | Multiple | [Crafting Interpreters](http://www.craftinginterpreters.com/) |
| Web Browser | Python | [Browser Engineering](https://browser.engineering/) |
| Git | Python | [Write yourself a Git](https://wyag.thb.lt/) |
| Docker | Go | [Build Your Own Container](https://www.infoq.com/articles/build-a-container-golang) |
## Why Byox Works
1. **Active Learning**: Building forces deep engagement
2. **Hidden Complexity**: Reveals implementation details textbooks skip
3. **Transferable Skills**: Generalizes to understanding other systems
4. **Portfolio Building**: Creates tangible proof of understanding
5. **Confidence**: Only truly knowing something if you can create it