College is an interesting beast. It is a great tool to mature bright teenagers into contributing adults for society. It does this in several ways: throws you into a small space full of diverse people, challenges you mentally to an almost breaking point and forges you into the mold of a person you will be for the rest of your life. Oh, and you'll learn some professional skills, as well.
For high tech industries, this is even more pronounced. I apply very little of what I learned in college to my everyday activities (though I do love a good compilers or garbage collection nerd-out). This is okay with me: I know that without college I wouldn't be who I am today and probably not as prepared to make my mark on the world.
The more cynic of us will say that CS programs teach for one thing: post-graduate courses. This is, to a degree, true. However, the VIM trick that I picked up at work today is NOT the sort of thing I would have been happy with a professor 'challenging' me on during my courses.
How you become a good programmer is through: experience, lots of boring little things that add up and working with good programmers (which almost categorically disqualifies professors and fellow students).
Want to learn to program? Work up! Always be the worst person on the team. Find people better than you and listen.
Edit: Also, good programmers: part of your job is to make people around you better. Don't shoo away the wide-eyed and eager of us (me).
Alright, I'll speak for myself as that's the path I'm still walking and the one I know best. I'm 19, matriculated into Harvard for one semester, then dropped out and took on the Thiel Fellowship. Under the Thiel Fellowship, we're granted $100k (pegged around college ed prices) for two years to pursue an entrepreneurial project.
In the past year since leaving school, I've had more opportunity for maturity than I ever did in college. I've had the freedom to explore, and I've used that to travel to all 7 continents and broaden my internal horizons of the world. I've had the freedom to discover, and now I'm fortunate enough to have found a passion I can pursue with my full attention. I never had luxury of doing that in school - there's no time to step back and wonder why you're doing what you're doing as you're too busy being pushed through the grind of 'doing'.
I've had the freedom to become personally responsible. Being devoid of extrinsic pressures (must get good grades, build resume, get job, etc.) for the first time in my life means that I've had to replace those driving forces with intrinsic drive and accountability.
I've been living on my own in SF since June, and that's been a wild ride of being liable for every aspect of my own survival and well-being :). Being an entrepreneur means I have to account for a 24 hours each day on my own, as I don't even have an employer to provide a cover story for 8-9 hours every day. I'm not saying I account for all those hours nearly as well as I could and in fact I certainly don't (case in point), but this is offering me the opportunity to learn to be accountable, and that's exactly the point.
College is a pseudo-diverse atmosphere. Sure, people might be differently colored or have exotic accents, but everyone's there for the same purpose, is the same age, and has more or less the same mindset, or at the most one of a select few mindsets. Real diversity is living in a strange juxtaposition of homeless crackheads and billionaire tech entrepreneurs (woohoo San Francisco!), or seeing firsthand definitive proof that polio has in fact not been eradicated and is still alive and well in the marginalized corners of the world.
Even if we see these things in college, chances are likely our mindsets have been so tunnel-visioned that their full impact doesn't register on us. The insular bubble of college is pretty hard to penetrate.
Challenge-wise, being an entrepreneur is far harder than being a college student. And thanks to the cost of college, so many of us might never have the opportunity to take the entrepreneurial path (or any of a number of other paths) unless we take it in lieu of the college path.
And yes - college might very well be a mold that shapes you into the person you'll be, but it's a cookie-cutter mold, and it's not unique to you. Life is a variable endeavor, and the experiences we use as a mold with which to shape ourselves should similarly be variable. College is probably a wonderful mold for some. For others like myself, there are almost certainly better molds out there waiting for us to find them.
> However, the VIM trick that I picked up at work today is NOT the sort of thing I would have been happy with a professor 'challenging' me on during my courses.
University teaches you the things that you cannot learn on your own.
University may expose you to concepts that you might never have encountered on your own. But there's nothing that you can't learn on your own, and in fact the history of learning is full of the contributions of self-educated savants.
The problem with self-education is that it's too easy to ignore those subjects because they don't seem interesting or relevant. Someone who is interested in web programming may not see the need for learning assembler, but most of those who learned it would probably say that it was not a useless experience.
That's a lot weaker statement than "things you cannot learn on your own".
Unfortunately most discussions about college education is rationalizing rhetoric - college is such a broad term, and can vary from diploma mill to top level educational instutions. Anyone willing to argue for or against it in this vague concepts is just rationalizing their beliefs. Second, as a person who wen't to college to get my degree after working in the industry for years, I noticed a lot of people don't realize that the time you go to college is the same time you start to grow up, get independent, thinking differently, associating with different kinds of people, all those changes people attribute to "college experience" in classic lines such as "college changed my way of thinking" or "college taught me how to learn" "I started socializing with different people" etc. are actually natural changes you will experience even if you don't go to college at that age, so I think people arguing for college from reflection are actually misattributing the cause.
I consider myself a mostly self educated person. the total sum of my college experience probably totals just over a year at various intervals. The majority of my education comes from reading books, watching lectures online, and just plain doing things wrong. I don't typically learn something purely for the practical benefits. I have a drive to learn. When I learned assembly, it was only because I was interested in learning more.
I have been trying to teach myself spherical trig on my own. I am struggling but the big issue I think is actually that with my ADD, I struggle to do some kinds of problems. I figure I will get it though. Why am I doing this? Because it is a challenge.
I would probably benefit from some mentoring, but that's not forthcoming.
I think a lot of this is the same for coding. You can learn whatever you want to/need to on your own. What a university gives you ideally is a level of mentoring and collaboration that can bring you to the next level (yes that includes, say, learning assembly, something I have taught myself the basics of but never gotten to the point where I feel comfortable in it).
For all this though, I agree that college is supposed to teach you the one think you can't learn on your own: critical thinking. I don't see how one can learn critical thinking on one's own, or at least not well. Not saying it can't be done outside of college. Just saying it can't be done in isolation.
From the sound of the original article though, it sounds like the author didn't feel like he was getting this, and that's kinda scary.
In some idealistic sense it's true there is nothing you cannot learn on your own, but in practice there is loads of stuff no-one ever learns except by doing a PhD.
For high tech industries, this is even more pronounced. I apply very little of what I learned in college to my everyday activities (though I do love a good compilers or garbage collection nerd-out). This is okay with me: I know that without college I wouldn't be who I am today and probably not as prepared to make my mark on the world.
The more cynic of us will say that CS programs teach for one thing: post-graduate courses. This is, to a degree, true. However, the VIM trick that I picked up at work today is NOT the sort of thing I would have been happy with a professor 'challenging' me on during my courses.
How you become a good programmer is through: experience, lots of boring little things that add up and working with good programmers (which almost categorically disqualifies professors and fellow students).
Want to learn to program? Work up! Always be the worst person on the team. Find people better than you and listen.
Edit: Also, good programmers: part of your job is to make people around you better. Don't shoo away the wide-eyed and eager of us (me).