I'm Dave, one of the founders of the Recurse Center.
In most professions, a college degree is a prerequisite for a job, even if doing the job doesn’t strictly require one. Your degree is used as a proxy to figure out whether you’re qualified because there is no better measure: “Oh, he went to a good school, he must be smart. Let’s bring him in for an interview.”
Hackers are lucky because our profession is much more merit based. We can be judged on our code rather than our degrees: “Oh wow, her code is really slick. Let’s interview her.”
So why go to college then? Presumably to learn to code right? The problem with this is that college doesn’t teach you how to be a good programmer. It might teach you about Computer Science, but there’s a big difference between Computer Science and programming. Without a whole lot of outside work including internships and lots of self study, you won’t become a great programmer in college. I know many great programmers who didn’t study Computer Science and some who didn’t go to college at all.
Given that college doesn’t prepare you for your career, the logical thing to do would be to separate your career training from your education.1 For your career, you must become a great hacker on your own. Doing this probably deserves its own post, but the short version is: spend lots of time programming, learn many programming languages, read lots of good code, contribute to open source software, start your own open source projects that scratch your own itch, and take interesting internships.
What to do about your education is a harder question to answer. You could skip college all together. It’s expensive, and if you’re already good, you may just want to move on to real life. On the other hand, college can be a wonderful experience if you can afford it. I met all of my best friends in college, did fun things, expanded my mind, and grew up substantially. There might also be outside forces making you go to college even if you don’t want to.
Because you’re taking care of your career training yourself, use college to learn things you’re interested in. Pick a school with a flexible degree system and hack it so you have as few required courses as possible. You might want to consider a BA rather than a BS because BAs generally have less requirements. If you can get away with only doing a minor, so much the better. Take only classes you’re interested in. Music, Art, Literature, History, Computer Science. It doesn’t matter. If you’re taking a class for any other reason than “I want to,” you’re doing it wrong.
Education is valuable for its own sake. Just don’t feel constrained by the traditional definition of “a good education.” We learn the best when we learn for ourselves rather than for others.
Discussion could happen on HN if you’re inclined: http://news.ycombinator.com/item?id=2925865
1. Be careful! This only works if you’re really dedicated to your career training. If you graduate college with no code to show for it, you will be judged on your degree just like everyone else. ↩