When my wife started a little garden in our urban backyard, all I could think about were the worms. Also the bugs, and the dirt, which is of course filled with worms and bugs and composted corn cobs. But she was happy. She introduced me to many bees and enthused about borage, which is a flowering herb that bees like. We started to eat our own lettuce.

You’re supposed to love nature, so I kept my mouth shut. But I find the whole idea of it genuinely horrifying. Part of the privilege of being a nerd is that you’re able to forget you have a body: You cruise around cyberspace, get a beverage out of the fridge, cruise some more. In the natural world, bodies are inescapable. Everything keeps growing, and the growth feels like rot. There is hair everywhere. I did the math, and in the past 16.38 seconds humankind collectively added a mile of fingernails. That’s how I see nature. I don’t like dirt. I like devices.

More precisely, I love abstractions. Using a phone, I’m perched atop a tower of them, from the very idea of an operating system to the imaginary apps on the screen. When I move my finger around, my horrific human greases make electrons jump, and that makes me feel like I’m touching the apps. Underneath those abstractions is, of course, code, code, code: C, C++, JavaScript, PHP, Python. I love the nicely managed packages, the obsessive attention to putting things in the right place. Good code is as tidy as a surgeon’s instrument tray. And sure, underneath all that is physical reality, but that’s not my problem. That’s Intel’s job, or AMD’s.

But over time, you know, you get curious. You want to know what things are made of. It’s the same urge that makes you send your saliva to some random company in order to learn that, after an entire lifetime of being told you’re Irish, you’re Irish. It’s also why skeletons are cool. We like to look inside the thing.

So I learned some assembly language. Assembly is a method of programming that peels back almost all the layers of abstraction and gets you close to a computer’s CPU. Instead of speaking in long, detailed Python (for example) statements, you’re issuing tons of curt instructions: Move this bit over there. I have a broad definition of fun, but I found assembly to be none at all; it felt like using an angry calculator. To add two numbers, you have to tell the computer to reserve two places for the numbers, put them there, add them, and put the result somewhere else.

But as I read more about the physics of chips, I started to have a kind of acceptance of assembly language. I stopped seeing it as an annoying, unfinished abstraction—a bad programming language—and started seeing it for what it is: an interface to the physical world.

Billions of years ago, I learned, an evil witch, or perhaps God Themself, cursed the class of materials known as silicates, which are abundant on this planet, and made them neither insulators nor conductors but rather an eldritch horror known as semiconductors. Eventually, scientists realized that the dual nature of these materials could be exploited to turn them into tiny switches, visible only through a microscope. Put these little switches all together in a sequence, add a clock, and away you go. You know, something like that.

As I dug in further, I saw that beneath the orderly tower of abstraction there’s just an arbitrary, multilayered mess of worms and corn cobs. Each microchip has its own history, its own way of mixing up physics, chemistry, math, and manufacturing. And once I started to internalize and accept that mess—to accept that the computer is a weird hack of reality—it all became kind of fun. This is how we turn dirt into apps that trade Bitcoin.