Everyone always says, "You never use that in the 'real world'" What's funny is that the people who say that are the people who don't know they should use those concepts to solve some problems. That's what the real separation is between having one and not having one. Trying to explain, say, a discreet system to someone who has never even heard of it is hard. There is so much people who haven't gone through a cs program don't know.
I hope to think this, because I'm in this camp, but people without cs degrees can be good programmers. They just have to realize that it's not "Ha ha sucker, you spent 4 years learning something I did in 12 weeks." It's "I have to spend my nights and weekends for years learning what you concentrated in on college."