Comment by lordnacho
I hate to turn everything into a conversation about AI, but this essay maybe explains best what LLMs have done for me recently.
Particularly the first part. I want to add a new feature, but I want to keep things clean. It needs tests, CI, documentation.
It makes exploring new ideas a bit cumbersome, because code tends to create minor distractions that eat up time. You miss a semicolon, or you forget the order of the arguments to a function you just wrote, do you have to flip to another file. Or the test framework needs an update, but the update breaks something so you have to do some changes. It's not just the time either, it's the context switch from the big picture to the very small details, and then back again.
LLM lets me do "one whole step" at a time. Or that's the positive spin on it. Seen another way, I'm further out from the details, and in most things, you have to hit a bit of a wall to really learn it. For senior devs, I lean towards the first, you've already learned what you're going to learn from fixing imports, you are operating on a higher level.
For me I prefer to keep things granular. Like: add the endpoint; validate the input; return sample data; connect to the db and return something from it;…. It’s easier to go with small wins. I have the plan/design/architecture to keep me pointed in the right direction.