While I'm typing, I'm not just thinking about which keys to hit. I'm thinking about how I'm using a function and what the inputs and outputs are. I'm debugging in my head, I may realize the code isn't going to do what I thought it would. Or I'm realizing that what I'm doing isn't going to scale and that I need a more rigorous approach. Often, I'm thinking "wow I'm going to have to type this same block a bunch of times, I should make a new method/function to handle this."

With code, I'm not planning everything down to the finest detail before I start writing. I know what I ultimately want my code to do but there are many unknowns I hadn't considered. Coding with an LLM is different depending on how you use it. When I'm using code completion, that's usually just helping me prevent syntax errors or to write an efficient snippet of code without having to check docs. But when I tell Claude "I want a web app that does xyz" and it creates it whole-cloth, that takes away the challenge of learning something new and building. I'm not a web developer and anything I could create is going to take me a long time to make (and it probably won't work well or look good) but Claude cranks it out with ease. I get to play software project manager and let the expert do the technical work. It's kinda fun being able to quickly get resulrs. Rather than debugging individual lines of code and thinking about the best way to implement code, I get to test features and think about better ways for the overall system to operate.

That’s a very nice way to put it, thanks for that comment