I find that most of the time, programming is just procrastination, and having the LLM there breaks through that procrastination and lets me focus on the idea I was thinking on without going into the weeds.
A lot of the time, the LLM outputs the code, I test my idea, and realize I really don't care or the idea wasn't that great, and now I can move on to something else.
What!
Why is this, idunno a better way to say it, good?
So ok you don't get into the weeds and you're proud of that, but also nothing you can think of wanting to do turns out to be worth doing.
Those things are wholly related. Opportunity never comes exactly the time and the way you expect. You have to be open to it, you have to be seeking out new experiences and new ideas. You have to get into the weeds and try things without being entirely sure what the outcome might be, what insight you might gain, or when that insight might become useful.
I'm now using an LLM to write a voice note organisation application that I have been dreaming about for two decades.
I did vibe code the first version. It runs, but it is utterly unmaintainable. I'm now rewriting it using the LLM as if it were a junior or outsourced programmer (not a developer, that remains my job) and I go over every line of application code. I love it, I'm pushing out decent quality code and very focused git commits. I write every commit message myself, no LLM there. But I don't even bother checking the LLM's unit and integration tests.
I would have never gotten to this stage of my dream project without AI tooling.
I hope at some point people don't feel the need to justify using or not using LLMs. If you feel like using them, use them. If you regret doing that, delete the code and write it yourself. And vice versa - if you are in a slog and an LLM can get you out, just use it.