Back in 2015, the computer was still some sort of magickal device to me.
I typed in penguin, and lo and behold, funny penguin video could be summoned.
I rather liked playing games, but I had not yet peeked behind the veil and ruined them for myself.
BUT.
I am the curious sort.
Not necessarily the “take the toaster apart and cry because I can’t put it back together again” sort, but definitely the “hmm, what happens if I touch this?” sort.
So fiddling with files inside a Project Zomboid game folder seemed like a safe enough place to start.
At first, I made extremely simple modifications. I would find some front-end script, change one line of text, boot the game back up, see that the line had changed, and immediately feel like I had breached the Pentagon.
I had not.
I had changed a string.
But nobody could tell me shit.
This escalated rather quickly.
Over the course of several years, I somehow found myself learning everything there was to know about Lua against my will because I wanted to make a radio actually talk.
This is how programming gets you, by the way.
You never wake up one morning and say, “Today I will become a software developer.”
You say, “It would be cool if this radio did a thing.”
Six months later you are staring into the abyss at 3 AM muttering about event handlers.
Fast forward far enough and now I’m talking to a robot machine spirit about how to organize a fleet of robot machine spirits, building websites that are somewhere between point-and-click adventures, movies, applications, and elaborate inside jokes, and casually saying things like “we need to expose the diegetic surfaces for user interaction” out loud.
Sometimes I hear myself speak and think:
Who the fuck is this person.
What happened to the penguin video lady.
And I think I finally know what happened.
At some point, I realized:
COMPUTERS DO THE COMPUTE.
That’s it.
That’s the forbidden knowledge.
They compute.
Now, I am absolutely certain there is a reasonably scientific-ish way to explain all of this involving processors, instruction sets, transistors, binary logic, memory, operating systems, and several people named Alan.
But for the purposes of this article, we are taking the caveman route.
UNGGG.
COMPUTER... COMPUTE.
ME REALIZE FANCY DOTS ON SCREEN CONTROLLED BY LIGHT SWITCHES.
ME FLIP TRILLION TINY SWITCHES CERTAIN WAY.
ME MAKE IMAGE OF CORGI DRINKING COFFEE.
And once that clicked, an enormous number of imaginary walls disappeared.
A website could be a game.
A game could be an application.
An application could secretly be a website.
A calculator could contain the world’s shittiest possible UX for a text reader if you were sufficiently determined.
A music player could become part of a narrative.
A navigation menu could become an elevator.
A loading screen could tell a story.
A CMS could become a control room.
A button didn’t have to look like a button.
A webpage didn’t have to feel like a webpage.
It was all just...
compute.
Input goes in.
Something happens.
Output comes out.
Do enough of those things in interesting relationships with one another and suddenly you have an experience.
And Python, I discovered, is not merely a snake.
Though I suppose it may have been the snake that whispered to Eve — me, apparently — about the apple of programming knowledge.
“Go ahead,” it said.
“Import os.”
And I have known neither peace nor sensible project scope since.
The important thing, though, is that learning how computers work did not make them less magical to me.
It actually did the opposite.
Before, the magic was:
“I press this button and somehow a thing happens.”
Now the magic is:
“I know roughly why the thing happens, which means I can start asking what ELSE I can make happen.”
That is a much more dangerous kind of magic.
Because once you stop thinking of software in terms of what it is supposed to be, and start thinking in terms of what a computer is actually capable of doing, metaphysical doorways to experience begin opening everywhere.
Metaphorically in some cases.
Literally in others.
I have, in fact, made the doorway.
Anyway, I have now descended from the mountain of digital enlightenment to deliver unto you this sacred knowledge:
Yep.
Computers can do what computers can do.
And once you really internalize that, things get weird very quickly.
If none of this makes sense, I would normally point toward a Pepe Silvia board and begin explaining several dozen interconnected concepts involving APIs, state management, strings, object relationships, data structures, modularity, and why modular architecture is the proper modern approach to evolving systems.
I do not currently own a Pepe Silvia board.
This is becoming an increasingly obvious business expense.
For now, just remember:
Everything else is implementation.