63 lines
2.6 KiB
Markdown
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
|