I'm not sure I'd want to work for someone who didn't understand the difference between computer science and programming.<p>It really is like the difference between a degree in physics and being a car mechanic. You can be a great car mechanic without a degree in physics, but the intent of the physics degree isn't to create great car mechanics.<p>I was probably a better C programmer at age 15 than most professional programmers I've run across in my career. With that said I didn't know about the Halting problem nor the Chomsky Hierarchy nor even things like amortized cost nor really any asymptotic complexity analysis. Do any of those things help me at my day job... maybe a little, but not much. Certainly I'd be better served reading the .NET Fx docs or Java docs or some JQuery books. But that's not why I got a degree in CS.
I frequently hear that, at the very least, a degree shows that you can finish something. If it's true that smart hackers can give themselves a better-than-university education for the price of the books alone, and they discover this fact early in their college careers, wouldn't finishing actually be a negative indication -- a susceptibility to sunk costs? I know the case can be made that college's <i>real</i> education is social, but it seems like you could get that part cheaper by hanging out around other hackers.
I've worked with people who made a big deal about not having a degree. I've also worked with people who made a big deal about their degree. Neither were as good as they imagined themselves to be.
formal education isn't for everyone. that said, what I look for when hiring people is their independent drive. What have they built on their own for fun. Also how they solve problems. These are things that show their true character and aren't really taught in school (basic processes and theories are, but not the creative spirit).<p>the whole argument about whether or not school is necessary is ridiculous. each case has its own variables. the zoho case he references, they setup their own academy to TRAIN their people to work the way they needed.
Someone who hires programmers told me that university vs. self-educated were pretty indistinguishable, except for algorithmic problems - which over came up very rarely.<p>Fred Brooks claimed that education and training for programmers was extremely beneficial - but he was writing in a time when many programmers were writing operating systems and compilers. Additionally, structured programming (ie. without gotos) was a (relatively) new idea. Therefore, I tend to think that today, when the vast majority of programming tasks aren't nearly so difficult and our tools have improved so much, and good practices are generally known, that programming is much easier, and training isn't nearly as important as it was.<p>Even for creating new ideas and tools (eg. Thompson's regex search; pagerank), it's more a matter of being super-smart, IMHO. Of course, it helps if you know the basis of the idea (eg. what a regular expression is). If you want to <i>prove</i> those ideas, however, I think academic training is very helpful - but in mathematics, not computer science.
I think degrees reduce your hiring risk somewhat, at the cost of possibly missing some real gems who dropped out for various reasons. You can achieve the same thing by only hiring people to do X who have done X at their last two jobs. It's a low risk, low reward approach to building a team.
I'd hire people who studied Computer Engineering. Ask the average programmer how data moved around on the motherboard, or what exactly a processor does and he has next to no idea. Computer engineers learn the fundamentals, while computer scientists learn the abstractions.
Most employers (here in the UK anyway) put a lot of weighting on education as a barrier to entry.<p>A lot of the time it's a formal requirement to a job application.
I'm not sure what's the point of this posting. Having a degree is just one data point. Usually people that make a big deal about success without a degree are those successful people that don't have one.