I have been trying to use AI for coding. Sometimes it is very bad, but I got to learn when it is surprisingly good.
Many times, the AI can show me some code that doesn't work, but that I can simply tune and make work. Many times the resulting code is good: it's not like some copy-pasting by someone who doesn't understand it. In a PR, nobody would think it's an AI, it could have been written by me. It was, in a way.
But intellectually, I did much less. I did not have to imagine what kind of API may exist that solves the problem, or read the documentation about those candidate APIs. I did not have to build the code from the ground up, maybe starting with a simple case, then adding a loop, then going for tail recursion, and back to a loop, etc.
Not doing that admittedly made me more productive. But it really feels like I didn't improve my skills by doing it. I didn't get to discover other parts of the API that I don't need right now but that may be useful later. I didn't get to build my intuition of whether a loop or tail recursion is better here. I just tuned stuff. What happens when I've been doing this for year and now need to debug that code? Will I have the intuition needed to find where it may be failing? Not clear to me.
It feels similar to learning a language: I may understand a lot, and if people talk to me slowly and offer me different alternatives, I may be able to say "yes, the second one!". But by doing that I'm not improving my talking in this language. The only way to get fluent, I feel, is to make this effort of constructing sentences, looking for the words, finding ways or working around words I don't know, etc. If I don't do that, I will never be fluent.
AI makes me more productive now, but may prevent me from becoming fluent at all.