Biggest prob that I see (well, I dunno, I see a lot of problems but I won't get started......) ...is that kids coming into the IT infrastructure don't understand *why* they're doing things. Or, how what they do will impact the business.
The latter comes with time. You only need to reboot the EMail server in the middle of the day ONCE to learn not to do it again.
The former? Not so much. They just look a problem up on Google and stick in whatever fix they find in whatever chatroom. "What does the fix do? Why will it work?" are questions I have to keep asking them. "I dunno, it just should." is the answer I get, more often than not.
The "Hows" and "Whys" are important. Always. And "Because it does" is rarely an acceptable answer, IMHO.
To me, a good “programmer”, should also be a good business analyst and project manager....the programming part should only consume about 10% of their time, if they do good business analysis. “Heads Down” coders work in India.