Alex Clemmer is a computer programmer. Other programmers love Alex, excitedly describing him as "employed here" and "the boss's son".
Alex is also a Hacker School alum. Surely they do not at all regret admitting him!
Looking back, I think the main advantage of getting a CS degree was that it gave me a lot of time to develop an intuition for how computers behave, what tools are useful for what things, and which problems are amenable to which approaches.
Developing this intuition in a semi-directed environment like school is actually really useful because classes are a good placeholder for learning.
By “placeholder”, I mean that going to class is like being on a train. On a train, you can look out the window when interesting stuff is happening, and when it’s not, you’re free to read a book or something. Class is basically the same. Professors will take you past some really cool and important things, and it would be hard to see it all in the same timespan without boarding the train. But while you’re free to pay attention to everything, you can also spend most of your time just messing around with stuff when what’s going on outside your window doesn’t seem important.
Ultimately it’s critical to do a bit of both. In my school, for example, — and I suspect this is true of pretty much every school — there is simply no real coverage for:
It turns out that a CS degree is just a multi-$10k ticket to ride. It just gets you on the train. You can do whatever you want on the train.
Developing these skills, in contrast, is mainly a matter of consistent, directed practice.
The real value of going to school, it seems, is that it lets you ground your practice in the things that you see as you go past them in your school-train. Ultimately, though, you need to put in the legwork to develop skills yourself.
I recognize that things like this can’t really be taught, which is why I think that most schools should probably just have internship requirements as part of the degree, like Waterloo does.