and on the the topic of education, that is an issue, but created by the companies. All too often in the name of costs, they pull uninitiated people off the streets, put them in six week "boot camps" then expect them to generate top flight quality code. Just doesn't work that way.
To get lower costs, you lose quality. I definitely believe that.
To wit, the perfect example is the program design and maintenance aspect of computer science. You will find so many people that will utterly fail on that category out in the work force its amazing. I've seen people that will purposefully find the most convoluted solution to a problem that would make Rube Goldberg (*) proud. Then I've seen those who might make good solutions, but make their source messed up you can't understand it at all. Of course, there's those that have no conception of how computers operate that will come up with solutions but those solutions are so inefficient it's unreal (**).
* The Rube Goldberg Machine Contest brings the ideas of Pulitzer Prize-winning artist Rube Goldberg's "Invention" cartoons to life. Named after, and inspired by the cartoonist Reuben Lucius Goldberg, this Olympics of Complexity is designed to pull students away from conventional problem-solving and push them into the endless chaos of imagination and intuitive thought. To be specific, groups are given an elementary challenge: something as simple as peeling an apple, sharpening a pencil, or putting toothpaste on a toothbrush. But instead of just "solving" the problem, students have to make the solution as complicated and as convoluted as possible. In fact, the more steps - there's a minimum of twenty - the better the Rube Goldberg Machine. And what a machine! An assemblage of ordinary objects, mechanical gadgets, and the oddest odds and ends are linked together and somehow get to the desired goal.
** We had a thread in a programming forum on here once about this. A simple problem was presented that had many solutions. Most programmers in the market would go for some of the worst solutions possible for the problem because of either indoctrination, pure ignorance, or their minds being stuck into one route for the solution. Also I participated in a class once that had a programming question like that. 95% of the class went for a solution that involved 366+ conditional statements over a table lookup. It's scary how unknowledgable a lot of the work force seems to be.