tl;dr: Hacker schools focus on practice. Degrees focus on theory. I don't care which you prefer, as long as you understand they're complementary. Those from one side of the fence can well learn from the other.
Recently I saw a tweet from Mike Bayer, the author of SQLAlchemy. He brought up an interesting thought comparing hacker schools, degrees, and woodwork. I respect him and his work a great deal but do feel the analogy doesn't ring true.
hacker schools vs. 4 year degrees: it’s like woodworking. did you ever meet someone with a bachelor’s degree in woodworking?
— mike bayer (@zzzeek) May 22, 2014
Whilst I'm not well enough versed in woodworking to make a direct comparison, I know a deal about the field of computing. The field of computing is an intricate and complex web. To gain a strong understanding of the many facets of computing is a difficult endeavour. A good degree program aims to introduce you to these many facets. It's still the way I'd suggest to go, even if it could use work.
The advice I have for those asking, and advice I have given to friends and students, is to get a degree. During the degree you should do internships at places that will extend you and give you the practical knowledge you need. You should also be doing your own projects, though hopefully you're the kind of person to whom that comes naturally.
Depending on where you are in the world, a degree can be expensive. A degree is a necessary tick in many boxes: employment, immigration, and so on. That's not the point I'm arguing though. If the expense is bearable, and the degree program's quality is good, it's worth it.
Given that, many of the coders I trust are self-taught, either since early days or due to moving over late from an unrelated field. It's not impossible to get a well rounded education through self-education, just more difficult.
Hacker schools are aiming to provide a shorter path to becoming a developer who is productive enough that they can be employed.
Off-topic: my pet hatred of degree programs is the lack of practical skills. No program should skip teaching version control, testing, or code review practices. These skills are just as vital to have reproducible research as they are vital to have sound code in industry. That's a separate discussion to have however.
Interested in saying hi? ^_^
Follow @Smerity