I am a developer without a degree, I left school when I was 16, at which time id been programming for 2 years. I've studied several languages, worked for countless companies doing contract work, and been employed as a developer and lead developer full time.
I'm now 24.
I used to be very frustrated to see companies demanding degrees before they'll even talk to you for new developer positions. I have always put that down to the HR department that don't really know what they're doing when employing developers.
However, I'm sorry to see many startups that are employing developers in the early stage, are requiring that candidates have a degree.
For all the company knows, I (and countless others) could be the best developers they'd ever meet. And yet we're automatically excluded from even applying.
Why?
If/When I am employing developers, a degree won't even separate one candidate from another, as long as I judge both to be good developers, then they're on an equal standing.
I know several people that have degree's in computer science, and none have any magical abilities that you only pickup at university.
So what gives?
The game is about probability, not possibility. The assumption is:
P(qualified | degree) > P(qualified | no degree)
That's probably reasonable, since schools do filter out at least some idiots. To find a candidate, one must interview roughly 1/P candidates. If interview costs are high (e.g., face time is precious), you want as many easy filters as you can get.
This is especially true if you don't trust HR to properly find the "diamonds in the rough" (I certainly wouldn't).