Some thoughts...
- Many CS degrees do teach useful stuff.
- Not knowing things like provability, complexity, compiler design, advanced data structures etc won't prevent you from creating working code most of the time, but knowing it will make you a better programmer.
- It's really easy to learn programming without a degree; there's so much information...
- Many of the founders of the field didn't have CS degrees, since they didn't exist.
- I think the top 5-10% will be the people who are truly devoted, a degree is not a requirement at all.
- Nevertheless, the average level is probably higher for people with degrees.
- But there are so many talented developers without degrees that requiring a degree for a position seems like a terrible idea.
- The cost of degrees in some countries makes self-study the logical option.
- A degree is probably a much bigger advantage in computer science research than it is in practical programming.
I only did a CS minor myself. I do miss some academic knowledge sometime, especially type system stuff recently. Although universities teach that, it's not a standard part.