I wouldn't say "less prepared", more "badly prepared".
You know the saying. "A little knowledge is a dangerous thing".
The problem is that a lot of unlearning of misunderstood basics has to be done before you can properly learn and understand them if your understanding of them is faulty. Your brain skips over things you
think you have learned, even if you've learned them wrong
There is also an aspect of "immediacy" expected due to the speed at which things happen today, people expect more instant results than years past and the ridiculous "Learn C++ in 24 hours" and similar books give a really false level of expectation for the
actual amount of time needed to learn to program and to learn a language.
There's also the fact that many now equate "Learning to program" and "Learning a programming language" as the same thing, when they really are not, Syntax has become king, Semantics has taken a back seat. (Although colleges are good at undoing this particular issue).
Learn to program and any language becomes easy to learn the syntax, learn a language first and syntax becomes ALL you know.
This is why so many students and hobbyists have an issue with application architecture, no thought goes into it before they sit at an IDE, and even if they
did give it some thought, the knowledge necessary to architect systems is missing so stuff gets kludged together, and that is with the ease that OOP has brought to systems design, how some of these coders would have been handled the "Top Down" years I dread to think. Abstraction, (not just in the Abstract OOP context but in the wider context of the word) is a rarer skill as well, the ability to think of your system in a more holistic overview is important because again, it helps with the design and architecture of your application.
Master these and programming really does because a simple matter of building components and making them interact, skip over them and your code forever throws surprises at you. It's supposed to be "Design, Code, Analyze", Not "Code, Google, Punch Monitor"
I was taught Systems Design for about 2 years before I wrote a line of code and I am so
so grateful for it and this was at a time that OOPs was what you said after a failed overnight compile and "Design Patterns" were what you called the wallpaper in the tape room
That said, the tools are so much better that even a bad coder can now produce an application, that's a move forward even with the above drawbacks, finally the goal of
4GL's is realized

, because if even a bad programmer can produce now, imagine what the tools do in the hands of someone who
can program.
