Here is the heart of the problem:
Peter Cappelli: Well, the employers, if you look at what the hiring managers are saying and what they’re looking for, they’re not, for the most part, hiring people out of college anyway or out of high school. What they want is three to five years’ experience. So the shortages that they report, the difficulty hiring, are for people who have quite specific skills, and those skills are work-experience based.
Workers without three to five years' experience will never get three to five years' experience. The only way for a young worker to be hired is through corruption, by knowing somebody or lying about their experience. The employers have designed a system to create the shortage that they complain about, and they perpetuate it because everybody's doing it that way.
In any workplace, the grunt workers should outnumber management. It is no different in software. For every software engineer there need to be testers, bug fixers, and doc writers. Yet in the want ads for programmers, it is the other way around. Senior this. Senior that.
The way to fix this situation is easy, but like anything else it will require time and effort. Next to the routine 3-5 year want ad, also post something like this:
Job title: Computer Programmer.
Requirements: can program a computer.
Compensation: $14/hr or DOE.
You will get plenty of applicants because the economy is that bad right now. Use interviews to determine the best fits for your company. Hire two or three for every Project Manager or Senior anything that you have. Give them raises if they are any good, treat them with respect, and they'll stick around. Three to five years later, you will not only have coders with three to five years of programming experience. The coders will have three to five years of domain knowledge of your company's operations. That might be just as valuable as their coding ability.