Jennifer Levy (5/13/2014)
Computer science degree from a liberal arts school here. Our major started with programming, the "weed-out" course (Assembly Language) was a 200-level one, as were the hard theory required courses. I do think that learning the theory behind what you're doing is a good thing as it explains why systems work better when you do things a certain way. And getting exposure to different languages helps you figure out how you learn best, which is always helpful given changes in technology and the job market.
CS rocks! I have found, IMHO, that the best developers/database pros understand the theory, and how the code works in the hardware. Basically, they get that they are just moving bits around. Then there are the developers who formerly were: copy repairman, photo salesperson, etc. And the best, the guy charging my car A/C was getting out of the business to be a developer!
Technologists are still caught between being a tradesperson or a professional. To be a professional, you need to really understand the underlying theory. The 'why', not just the 'how'. Now, the method for understanding the 'why' can vary. CS degree, or self-taught. does not matter. What does is that one understands the why.
The more you are prepared, the less you need it.