I think there are 3 main reasons to make things:

  1. I enjoy the process of making it
  2. I want it to exist
  3. I am being asked to make it

As an employed person, most of the time I spend making in the last category. I never touched any networking or cloud infra stuff until it became my job. I ended up really enjoying it, not because I want to make this stuff or find it particularly interesting compared to all the other things you can do with a computer, but because it’s satisfyingly complex and challenging and I do enjoy the process of problem solving (a bit of the first category).

The moments I’ve felt the most joy sitting behind a computer screen come from that first category. I thought it was that I wanted to make games, but what what I ended up enjoying was the process. I tried desperately early on to avoid needing to code, I just had a goal in mind and Googled, copied and guessed until I had a result that felt “mine” enough. The inbetween part where you spend all your time not knowing things, and making a million tiny guesses and creative decisions. That’s the best. Starting out that was playing with Game Maker 8 and RPG maker and eventually LibGDX. More recently, Blender, Bevy, and Godot is where I get that feeling.

For the past ~year of my recreational coding, though, I haven’t been doing as much of that. Instead I’ve been working on Bookchoy, my Chinese language learning tools. After finishing everything in the beginner-intermediate apps I was using, I needed a replacement that would continue to be useful long term. There were a handful of the “enjoy the process” moments; NLP stuff for distractor generation, ML for word segmentation and dictionary mapping, a 2-way sync engine for offline first. That stuff unfortunately wasn’t the bulk of the time spent on the project. Instead it was boring project decisions and UI work, data scrubbing and other tedious tasks. But that didn’t make me dread working on it one bit, I felt motivated every minute I spent on it.

What I’m realizing is that wanting something to exist is actually the most powerful reason to make something. It’s when I see the purpose of the task that I’m most willing to trudge through the boring parts. At the same time I think the “enjoy the process” stuff is where I’ve grown the most as a programmer.

With AI, that “enjoy the process” feeling doesn’t show up as frequently in either my personal or professional work unless I make an intentional effort to avoid doing things the easy, and usually more efficient, way. This doesn’t bother me so much when I want the thing to exist. But when I’m being asked to build something I don’t feel connected to, this is what drains me. I don’t know how sustainable this will be long term. When I’m in a position to make the high level decisions it’s great. But sometimes I feel like I’m just making judgment calls and being an arbiter of some quality bar while checking boxes. The “process of making” is getting watered down.