Writing Toy Software Is a Joy
a year ago
- #programming
- #toy-projects
- #learning
- Richard Feynman's quote 'What I cannot create, I do not understand' emphasizes the importance of hands-on learning.
- Building toy programs helps retain the joy of software development amidst increasing commodification and AI influence.
- Toy projects often provide unexpected practical benefits in professional work by deepening understanding of software constraints.
- A list of toy programs with difficulty and time estimates is provided, including regex engines, OS kernels, emulators, and more.
- Examples include a regex engine (difficulty 4/10, time 3 days), an x86 OS kernel (difficulty 7/10, time 1 month), and a GameBoy/NES emulator (difficulty 6/10, time 2 weeks).
- Other projects: GBA game (3/10, 1 week), physics engine (5/10, 1 week), dynamic interpreter (4/10, 3 days), C-like compiler (8/10, 3 months).
- Additional suggestions: text editor (5/10, 3 weeks), async runtime (6/10, 1 week), hash map (4/10, 1 week), rasteriser (6/10, 1 week).
- More advanced projects: SDF rendering (5/10, 2 days), voxel engine (5/10, 1 week), threaded VM (6/10, 3 days), GUI toolkit (6/10, 2 weeks).
- Challenging projects: orbital mechanics sim (10/10, 4 days), bitwise challenge (3/10, 1 day), ECS framework (4/10, 1 week), CHIP-8 emulator (3/10, 3 days).
- Final projects: chess engine (5/10, 2 days), POSIX shell (4/10, 3 days).