21 years software development experience here.
I've seen people with Computer Science degrees come and go, kids with NVQ's, C&G's, PHD's in all manner of subjects ranging from C++ AI and supreme pathfinding routines to guys with a diploma in UI design and development practices and nearly everyone has failed on the first hurdle - common sense.
Gaining a degree from what I've seen in candidates I've employed has shown that they can learn and they retain information. Give them a new language to learn, and new technology to master and they'll go away and come back several days later with an understanding you could dream of.
Ask them to go away and write a procedure that allows multiple VAT codes and calculate the gross profit per VAT code per region and they look at you as if you've asked them to show their backside.
Some people can do it, others can't. It's INCREDIBLE the amount of people I've asked during an interview "So what made you want to be a developer" and the answer is nearly always "Money", "it sounds cool", "it's the future", "I did a few website for a mate".
Introduce this "developer" to deadlines, to specs, to bugs, beta-testing, roll outs, support, enhancements and they literally panic. They have NOT had this training in ANY school.. I get ridiculous 3dimensional drawings (UML's they call them these days!) of little fluffy clouds with arrows pointing to people with a computer, mouse, keyboard, printer and "cell shaded" diamonds with a calligraphic "Yes" and "No" on them. Who the hell teaches this crap these days? Programming isn't an art, it's not about making it look pretty or cram as much power into as few lines as possible while running in a thread within kernal memory. It's about delivering a solution, that works, to customer specification.
As soon as the schools, colleges and universities start teaching this, we might start to get a software industry again.