Using AI is the opposite of learning.
I'm not just trying to be snarky and dismissive, either
That's the whole selling point of AI tools. "You can do this without learning it, because the AI knows how"
I'm sure we are veering into "No true Scotsman" territory but that's not the type of learning/tools I'm suggesting. "Vibe Coding" is a scourge for anything more than a one-off POC but LLMs themselves are very helpful in pinpointing errors, writing common blocks of code (Copilot auto-complete style), and even things like Aider/Claude Code can be used in a good way if and only if you are reviewing _all_ the code it generates.
As soon as you disconnect yourself from the code it's game over. If you find yourself saying "Well it does what I want, commit/ship it" then you're doing it wrong.
On the other hand, there are some people who refuse to use LLMs for a wide range of reasons ranging from silly to absurd. Those people will be passed by and have no one to blame but themselves. LLMs are simply another tool in the tool box.
I am not a horse cart driver, I am a transportation expert. If the means of transport changes/advances then so will I. I will not get bogged down in "I've been driving horses for XX years and that's what I want do till the day I die", that's just silly. You have to change with the times.
We agree on this
The only difference is that I view using LLM generated code as already a significant disconnect from the code, and you seem to think some LLM usage is possible without disconnecting from the code
Maybe you're right but I have been trying to use them this way and so far I find it makes me completely detached from what I'm building
It's a gray area for sure and almost no one online is talking about the same thing when they say "LLM Tools", "LLM", "Vibe Coding", "AI", etc so it makes it even harder to have conversations. It's probably a lot like the joke "Have you ever noticed that anybody driving slower than you is an idiot, and anyone going faster than you is a maniac?".
For myself, I'm fine with Github Copilot auto-completions (up to ~10 lines max) and I review every line it wrote. Most often I enjoy it for boilerplate-ish things where an abstraction would be premature but I still have to type out a bunch of boilerplate. Being able to write 1-2 examples and have it extrapolate the rest is quite nice.
I've used Aider/Claude Code [0] as well and had success but I don't love the workflow of asking it to do something, then waiting for it to spit out a bunch of code I need to review. I expect this will improve and I have seen some improvement already. For some tasks it has me beat (speed of writing UI) but most logic-type things I have been unable to prompt it well enough or give it enough/the right context to solve the problem. Because of this I mainly use these tools for one-off, POC, or just screwing around.
I also find things like explanation of errors or tracking down what the root cause of an error are useful.
I am very much _not_ a fan of "Vibe Coding" or anything that pretends it can be "no code"/"low code". I don't know if I'll ever be comfortable not reviewing the code directly but we will see. I'm sure assembly developers swore to never use C, who then swore to never use C++, who swore they'd never use python, and so on and so forth. It's not clear to me if LLM-generated code is another step up or just a tool for the current level, I'm leaning heavily towards them just being a tool. I don't think "prompt engineer" is going to be a thing.
[0] And Continue.dev, Cursor, Windsurf, Codeium, Tabnine, Junie, Jetbrains AI, and more