The Autodidacts

Exploring the universe from the inside out

Vibecoding isn't as fun as writing code by hand

Sticks tongue out at AI

I like building things: it makes me happy. Learning and discovering things is a close second, but building is more satisfactory.

Since I’m not that good at actually, you know, building things, the thrill of “building”, in my case, has mostly come from writing software. Software is one of the easiest ways to create something satisfyingly useful out of nothing.

For a long time I’ve known, at some level, how much joy building gives me. [1] But it really sunk in while working on two recent hobby software projects. They were both dumb little Python scrapers that I cobbled together, that did something useful that I’d wanted for a long time. (Link, link.) They were pretty basic, but gave me so much irrational pleasure. It was the most fun I’d had programming in years. [2]

Then, [cue Jaws theme song] AI came along.

Like pretty much everyone else, I’ve been cautiously experimenting with AI-assisted coding. We are past the point where we can easily dismiss AI as “stupid” (though it is), or “doesn’t actually make me more productive”. So, in classic motte and bailey fashion, I am retreating, while pretending not to: AI coding is less fun.

This seems counter-intuitive, because vibecoding is absolutely thrilling … AT FIRST.

Refactoring vibecoded software? Not thrilling.

I’m not going to claim, as some do, that vibecoding doesn’t give the thrill of actually building something. Because it does, partly.

I think that one of the things that’s driving the adoption of vibecoding is that it frontloads the fun, at both the project- and career level.

AI Vibecoding vs Coding By Hand Thrill/Fun/Learning Curve Graph
The Vibecoding Thrill Curve

If I have an idea, I can usually get a working prototype very quickly, with very little effort. Instant dopamine!

Similarly, someone with no coding experience can “code” an app, and it will probably work. Instant dopamine!

I have a personal policy against frontloading the fun. So, I don’t like this, just like I don’t like getting paid for work I haven’t done, going into debt, and arrangements where someone else does my work today in trade for me doing their work tomorrow.

I posit that there are several distinct sources of thrill/satisfaction when building something:

  1. The thrill of the idea
  2. The thrill of making the idea real
  3. The satisfaction of hard-won accomplishment
  4. The satisfaction of a job well done
  5. The thrill of learning
  6. The satisfaction making something that solves a problem you have

Vibecoding, in general, can give you 1, 2, and 6. But 3, 4, and 5 are not natural consequence of vibecoding.

In tenuous defense of vibecoding:

I can, and have, built things with AI that I either never could have, or never would have, built otherwise. Mostly, it’s cases where it would not be worth me spending weeks building it by hand, but if I can build it in minutes or days, it is worth it.

  • I one-shotted a has-this-already-been-submitted-to-hackernews bookmarklet (HN?), based on Taylor Troesh’s Discuss on HN snippet. It gave me significant satisfaction, solved a problem I had, I use it regularly on my Wallabag favourites page.

  • In very little time, I vibecoded “Party Market”, a prediction market simulator party game to go along with a flash lecture on prediction markets, and ran a market on “how long will I drone on for”, live, during my lecture. It turned a dry and boring lecture into grade-A entertainment. The code was garbage and it was full of bugs, but I never could have done it writing it by hand in that amount of time. It wasn’t a choice between doing it with AI and doing it by hand: it was a choice between doing it with AI and not doing it at all.

  • When a fire chief I know was going to invest way too much money in an “AI appliance” that didn’t even say which Nvidia card it had, or what model/generation of Xeon it was, I vibecoded with free plan Lumo, in two afternoon sessions, a functional Pyronear based Wildfire Early Warning System that ran in realtime on a live feed on my laptop, and was able to detect the first frame of smoke on the ignition footage I fed it.

  • I built a browser-based Kobo database migration assistant (link), so that people unfamiliar with SQLite can move their books and annotations to a new device.

  • When a singing lesson with my vocal coach fell through, I built the realtime pitch training app I’ve always wanted — and have planned to build for about a decade.

In most of these cases, I was immensely pleased with the results, but the process wasn’t fun the way writing my dumb little scrapers was fun. Of course, handwritten software development isn’t always fun. My first Golang project was, for large sections of time, with a deadline, certified Not Fun™. Fighting the Rust compiler the first time I tried to write, like, twenty lines of Rust code was Not Fun™. But it was, in the long run, Type II fun, because it gave me the sense of accomplishment, and the glorious I did it! feeling (And, next time, it would be easier.)

I’ve tried everything from local models running in llama-server, to copy-and-pasting from free, no sign-up services (Phind, Lumo, etc) for one-shot scripts, to full on remote server Clod Masterpiece 200™ all-you-can-eat plan with custom-written auto-approval hooks that were worryingly close to –dangerously-skip-permissions, developing algorithmic trading models.

It’s all the same: it’s “productive”, but I don’t like the way it makes me feel, and I don’t like the quality of the output. It manages to make me feel dumb and superfluous (and, sometimes, dirty for even using it), without earning my respect.

The word “dopamine” made me think: vibecoding is a bit like a series of first dates or one night stands. You don’t develop a relationship with the project: you don’t get the same kind of warm fuzzies, oxytocin, attachment. The problem with a dopamine-only life is that thrills become dull with repetition.

Another way to look at it: vibecoding introduces a layer between you and reality. I am the kind of person that thinks, in general, reality is more fun when experienced first-hand.

Vibecoding is like being an executive of a large company that is barely under your control. You never feel like you really know what’s going on, and there’s always the suspicion of sabotage and loafing. Things appear fully formed, but not quite how you imagined. Sometimes they work, and sometimes they don’t, and there’s nothing you can do about it, other than pouring more money into the black box, and yelling louder. So that’s what you do.

This essay was outlined in blue ink by candlelight. AI wasn’t even allowed to correct my typos: savour them.


  1. As a kid, I wanted to be an inventor, which neatly combines building and discovery. Writing and songwriting, my other main activities, are also forms of building that, like software, require mercifully little contact with physical reality and other humans. ↩︎

  2. I’d mostly been writing shell scripts, and Bash is not known for being fun. ↩︎

Reply by email Buy me a coffee.

Get new posts by email:

Great! Check your inbox and click the link to confirm your subscription.

Please enter a valid email address!


Curiositry’s profile image

Curiositry

I write and build things.  Canada’s wet west coast  http://curiositry.com @curiositry



Sign up for updates

Join the newsletter for curious and thoughtful people.
No Thanks

Great! Check your inbox and click the link to confirm your subscription.