Learn by building
I’m a curious being. I’m curious why things are the way they are and how they work. Curiosity is one of the things that makes life worth living. I mean, how else can one appreciate their own exitence?
Anyways, how do you figure out how things work? Well, idk, read books, Wikipedia, talk to people, … OR learn by building things and making mistakes along the way.
Building things and re-inventing the wheel, if you will, gives one a particular insight into things that books and talk itself cannot. You start building things, you make mistakes, realize that it’s turning out to be a deeper rabbit hole as you had anticipated. Then maybe you give up, maybe you see it through to the end, who knows, but the insight you get gives you a deeper understanding of that which you’re building. The “why it works like that” starts to makes more sense.
I’ll give some (computer nerd) examples of how I go about things:
- Wanna know how Docker works? Look into cgroups and leverage that directly to code up a process isolation program from scratch and then run a program inside!
- Wanna know how a web server works? Open a TCP listener, parse out HTTP requests by hand and return a valid response. Serve an actual HTML response from scratch.
- Wanna know how some cli programs can draw terminal user interfaces? Switch the terminal to raw mode, loop through width*height and draw things on the screen by moving the cursor to wherever you need to via ANSI escape sequences
I personally tried these and a lot more. Idk where I’m getting with this, but basically… go build stuff and learn from it! You’ll uncover many rabbitholes you never knew existed.