A Love Letter to Tinkerable Software

Posted on Jan 11, 2024

When I was a kid there weren’t any technical limits on what I could get our computer to do. There were parental limits, common sense, and skill limits - but the computer that sat in our living room let me do whatever I wanted. That included everything from being able to use the OS to delete the OS (that’s how I learned what hidden files were) to the freedom of sliding open the side of the box to unplug things (that’s how I learned that you shouldn’t unplug cards while the computer is running just to see what they do). There are plenty of reasons to have guardrails on these things — trust and safety, users are dumb, etc. — but we also lose something in a world with too many guardrails: learning by tinkering.

When I tinkered with technology as a kid, I was learning how computers work. I wasn’t learning from classes or books, I was learning by flipping a switch and seeing what happened. Or, I was learning by wanting the computer to do something, knowing it was able to do it, and then browsing the depth of 1996 forums until I found something that did it.

How did I learn about basic networking? It wasn’t by some Khan Academy course someone put together to teach people how data moved over cables, the basics of packet switching, and the history of TCP/IP. No, it was because we had two computers, both of them had Age of Empires on them, and I wanted to play against my brother. So, I needed to figure out how LAN works, how to configure a network card, what a firewall was, etc. (Shoutout to my sister who I also “played against.”)

How did I learn about cloud storage? Well, I wanted to get a copy of Photoshop but I was probably ~8 so I obviously didn’t have the money to buy a copy of it. Upset that I wasn’t going to be able to edit whatever image I was working on, I moved on to some other corner of the web. There, I learned about this thing called FTP. I learned that http: did one thing and ftp: did something else. So, fresh with this knowledge and still upset that I didn’t have Photoshop, I experimentally put in ftp://www.adobe.com. To my astonishment, there was a list of all of the most recent releases of Adobe’s software. I was able to queue up a download of Photoshop and I was off to the proverbial races with our 56 kbit/s dial-up speeds. Along the way I learned about file trees, how to store files online, and also the thrill of finding something that wasn’t public knowledge. (Yes, I just checked and this doesn’t do anything anymore.)

How did I learn to make websites? Using my incredible skills highlighted above, I booted up Frontpage on our family desktop and started to poke around. It was a tool that made things easier for the user, but it didn’t lose the ability to get into the code and try out different things. I was able to bold something using the editor and then click over to the code and see that it did it using <b>. I was able to see what was happening and learn how to do it without guardrails. Was it great? No! It was terrible, the websites looked awful. But I did learn how websites worked.

What do all of these things have in common with each other? They were tinkering neutral. They weren’t designed from the ground-up to have people tinkering in them. But they also didn’t discourage tinkering. They tried to make things as easy on the user as possible, but they also recognized that the software designer is never going to be able to account for every conceivable edge case or user need. Whether the designers were self-consciously neutral or just didn’t care to lock it down, there weren’t locks on everything. And when you’re just starting to learn, a closed-but-unlocked door is an invitation to explore.

That’s sadly less the case nowadays. There’s a certain pride of “I know what needs to be built and everything else will be locked down” in today’s software. Some of that comes from valid security, trust, safety, and privacy concerns. But much of it is unnecessary. It’s in those unnecessary constraints that we losing the freedom to explore.