Published: September 06, 2022 • Updated: October 27, 2022 • 2 min read
A big mental leap I made early in my programming was starting to view computers as something that could be understood.
A computer is a physical thing: a chip with circuits. You can recreate it with water or even Minecraft redstone. Each abstraction on top of the silicon is a set of instructions that combine into something remarkable. Something that you, with enough time, can understand.
Restated: computers are not magical.
I’m not talking about that magical feeling you might get solving a problem with code. That is magical, and may it stay forever so.
I’m talking about this magic: “and then Ruby magically knows the type of your object.” Ruby duck-typing isn’t magic; it’s some C code that you could understand with an introductory C book and an hour of slow reading. That kind of magic kills learning because it often implies “this is too complicated for me.”
Computers can be understood. To work in modern computing, you have to believe this. You can abandon a problem because you don’t want to solve it, or you don’t think it’s worth solving. Somewhere you have to say “this is as deep as I need to understand this now.”
But when you’re starting, that is usually deeper than you can comfortably descend. Never walk away because you think you can’t understand the magic. You can.
Thanks to Nelson Elhage, whose post of the same name inspired this one.
Get better at programming by learning with me. Subscribe to my newsletter for weekly ideas, creations, and curated resources from across the world of programming. Join me today!