When you hear “prepper,” you probably instantly picture a dude in a military outfit standing in his shelter stacked with supplies and tools to survive the unavoidable doomsday.
It’s not exactly my cup of tea, but one evening I started to ponder: what if we applied a prepper’s mindset to computers and software in general?
So, imagine the civilization as we knew it was on the brink of collapse. Someone approaches you, an (ex)software engineer, with a bunch of basic questions: Where would you start to build a computer? Do you know how the CPU works? How would you build an ALU or assembler? What about a compiler or displaying something on a screen?
Crazy as it sounds, basic questions like these can lead to strange places.
Thinking like a prepper, I sought a dense and reasonably complete source of answers to those questions, preferably in paper form to survive without an internet connection :)
To my surprise, I found a single book answering most of those questions in more or less 300 pages—"The Elements of Computing Systems: Building a Modern Computer from First Principles."
There is also a free two-part course on Coursera covering the book’s contents. The first part covers the hardware piece from Boolean algebra to CPU and assembly, and the second part focuses on software—from assembler, via compiler, to high-level language and basic I/O.
I decided to plunge into the second part of the course in my spare time. To spice things up, I chose C as the language for my course projects because I hadn’t used it in ages, making the whole mix seem crazy enough to dive into. I won’t lie; it was not easy, but I managed to finish everything on time with a perfect score (hurray!).
My final project was a Tetris-like game:
It was definitely an experiment worth pursuing. The condensed dose of knowledge, combined with projects with clear deadlines, really helped connect the dots in my brain.
It turns out that thinking like a prepper can also be useful for software guys. After all, the zombie apocalypse is near—we have to be prepared!
P.S.: While browsing the internet on this topic, I found others who have delved much deeper. If you’re interested, check out these resources:
Cover photo by Denny Müller on Unsplash