Not BYOD, but BYOS: Learning by building
Not Bring Your Own Device, but Build Your Own Software 😅.
I love guides like these. You can learn so much from building something with your own hands. You discover details that can only be learned through experience, not just from reading a book. This is also why practical courses are so valuable; they help bridge the gap between theory and real-world application.
The main challenge, of course, is finding the time. For me, the best approach is to work on something that helps me in my daily life. That way, I can more easily justify the time spent.
I recently came across a fantastic repository on GitHub that is a great resource for this kind of learning: Build your own X. The project’s philosophy is captured perfectly by a quote from Richard Feynman:
What I cannot create, I do not understand.
The repository is a compilation of well-written, step-by-step guides for re-creating our favourite technologies from scratch. The list of project categories is impressive, and each one contains many different projects to build:
- 3D Renderer
- Augmented Reality
- BitTorrent Client
- Blockchain / Cryptocurrency
- Bot
- Command-Line Tool
- Database
- Docker
- Emulator / Virtual Machine
- Front-end Framework / Library
- Game
- Git
- Network Stack
- Neural Network
- Operating System
- Physics Engine
- Programming Language
- Regex Engine
- Search Engine
- Shell
- Template Engine
- Text Editor
- Visual Recognition System
- Voxel Engine
- Web Browser
- Web Server
- Uncategorized
It is an excellent resource for anyone looking to deepen their technical understanding.
Another good resource is this substack newsletter: [coding challenges](https://open.substack.com/pub/coding challenges), from John Crickett. It is a weekly challenge to level up your coding skills, giving you knowledge in the inside workings of software tools you normally use without thinking.