Not sure I agree on that. I went to school with a lot of CS folks, and they were building their own OS from the ground up as part of their studies.
But I agree that there is going to be a gap in knowledge and experience. My company is forcing early retirement, and the perception I am having is now the same as theirs. When I was starting out, I was constantly asked what school I was attending, etc, when I had been out of school for years. They were surprised to see someone so young. Now I am the one going, huh, the upper management sure looks youthful. Because I have been used to 60+ year olds in all the senior positions.
I hate to be 'that guy' but it is also an effect of extensive outsourcing then anything else. Outside of the 'West' school accreditation isn't closely regulated (not that it is here, but it is at least better) and you have people graduating with no practical experience at all. Just the ability to pass exams. To top it off you have a communication and time lag problem at most companies. Additionally, the culture, particularly in India, involves many layers of management. So while you might have a representative for your developers either on site or at your beck and call, they turn it over to a project manager, who turns it over to a development lead, who turns it over to a manager, who then tells the team what to do. Like playing a giant game of telephone with a complete translation to another language happening regularly.
Not sure this is at every company, but the large ones all do it. Unless they hand development completely to a third party. I have less of a problem with that, but it doesn't seem to be the common practice. Though we did just that with certain aspects outside of IT, still a bizarre choice, but for every one US engineer you can find three or four from India or China.
/rant