Out of the three things that you wrote, I can only relate to one.
I started programming after getting into college, and still I am sure, lots of teenage hackers there (wherever you are) can very easily better me. Secondly, I have not had the chance to have a mentor. (But I think hostilefork and other guys in the Rebol room are changing it)
The third thing is, that I have worked at two different jobs for a period of one-and-a-half years. And I understand what you mean by exposure to reality. It means 2 things to me:
- dealing with politics.
- delivering despite the previous point.
And no matter how much I despise my two software jobs, I will say that the people skills I learnt there were more important than the programming experience. I no more work at a software job now, and I am not even sure if I would really do one in the near and far future.
This is a fact that the way we are teaching hackers is not the right way, but we are improving. Some places faster, some slower. Some places are moving backwards, but it is tangential to your discussion. What I loved about your post was that instead of enumerating 20,000 points on how the present hacker education system, you said what you thought should be done. This is positive thought, instead of passive thought.
:-)