> [...] But nowadays they tend to punt to some AI. Beginning developers should not do this.
I don't know how I feel about this. I get the sentiment, I really do. But it almost reads like a chess Grandmaster in the 90s telling up-and-coming players to not practice against Deep Blue because it will teach you bad habits.
Rather, it's because early on, when beginners are learning the basics, they need to do the hard work of figuring stuff out so they develop problem-solving skills. It's not the code-writing skills they need to develop--that's easy. It's the problem-solving skills.
If I could figure out a way to grade on effort rather than correctness, I'd do that every time. Bust your ass and get a program 80% working and learn a ton doing it? You get an A. Spend 2 minutes copying ChatGPT output of a perfectly-working solution? F.
The effort is where you build the skill. And the skill is critical problem-solving. Having someone (or something) else do that work does not improve your skill.
Now, eventually, when you get to be better than the AI (and it's not hard to do that), stuff that you find easy is not longer beneficial to your learning. I've implemented linked lists a hundred times by now; I no longer learn anything from doing it. When you're that experienced with a subtopic, then sure, get ChatGPT to write it, and you verify it.
Going back to the weight lifting analogy, once you've been lifting the 2 kg weights for a while, you're not going to get much out of it. At that point, if the 2 kg weight must be lifted because it's part of your job description, have your robot do it. Meanwhile, you go on to the 4 kg weights and build muscle.
The analogy isn't perfect since a compiler will error if it can't create valid output. LLMs hallucinate. But still. Time is limited. I don't think it's a good idea to spend your formative years learning how to manage registers.
We make surgeons learn anatomy. We make hardware engineers learn physics. I think we can expect programmers to learn how computers work.
No idea if chess grandmasters did do that in the 90s, but frankly it would have been good advice. Just as it is good advice today for up-and-coming players not to practice against stockfish, leela or whatever. Unless you are already very proficient in chess, practicing against those engines will teach you very little .