I have a CS degree from a major university. I have to disagree with most of the comments I've seen so far. Things like design patterns, proper object modeling, even advanced data structures and algorithms can be picked up on your own with a bit of effort as you need them, and experience building real production used software is the key to hone those skills.
The "with a bit of effort" portion is key, and from what I've seen more people will not go back and fill in the gaps in their skills (or at least well). Industry experience is also very valuable, but will rarely cover the same ground as someone with a formal education and a couple years experience.
"Protozoa are small, and bacteria are small, but viruses are smaller than the both put together."