Here's a data point (more of a regrets list/rant) from one of those adrift students, regarding the "with college you get what you put in" view:

I completely agree with that view and I wish there was some way my particular school would teach us how to put more effort into self-development. And let me tell you, motivation and perseverance ARE something that can be taught. I blame:

* my laziness - learned through earlier education

* overcompensating for childhood social awkwardness by focusing on parties and social interaction with people who's only common interests are music, alcohol and the opposite sex

* lack of a clear goal (no alumni visits that show us what we can achieve if we put effort in activities A, B, C and so on),

* an easy enough study load that I could maintain high grades, in addition to a general lack of competitiveness in the class

* lack of study groups, which are instrumental in boosting interest in certain less-than-fascinating subjects.

A few key points for current students, or "if I could go 4 years back in time":

* balance your social circle. If you're in ICT/CS or related, don't hang out exclusively with the potheads that play PS2 games 24/7. Establish and maintain contacts with people who follow their interests in their spare time - that guy who's learning functional programming on the side, kids that are already freelancing or getting a part-time job in the field you're studying for.

* actively seek out older or already-graduated students. Don't procrastinate on doing your own case studies on who-went-where, what each skill you're studying will bring you and what are the key tips you can get from people you strive to be. Basically, get some role models and a mentor. It ain't easy, but the gains that you receive are worth the effort.

* do the research on all the factors that influence your mood and energy levels. Exercise, nutrition, social environment, etc. Optimize those, so you can be the person you want to be - high energy levels, motivation, ability to get things done and so on. That way you can avoid situations like falling into depression because "I'll just minimize social contacts, so I can focus on catching up with that internship" and subsequently fucking up the most crucial part of your education.

* knowledge is one thing, being able to put it into practice is the real skill. Knowing "something" about FP, embedded programming, security, general startup theory, freelancing and so on will mean nothing, if you can't put in the focus and dedication to actually get that first Django site, Android app, GAE site or whatever, running. Escapist information binging may bring in some useful knowledge, but without execution skills it all boils down to a "Mr. Know-it-all" cynical attitude with no real accomplishments. So start that first tutorial (even if you think you know all the stuff and you're too smart for it), and have something running.

That rant came out rather long, but being stuck in the final year of my bachelor's, not even having a github account, blog, twitter or reputation, being too low on self-esteem ("I have no marketable skills") to break the anxiety barrier of applying for a mandatory graduation internship, I hope at least one student won't (through inaction) make the same mistakes I did.

[EDIT] Proofreading, minor tweaks.