> The amount of people who don't know what they're doing. So many people seem to have 1-year * x experience. They reach a certain level and they just stop.
Part of the problem is because people only look at years of experience at all, and recruitment often inflates the requirements. I don't need 5 years of work experience in .NET to modify an existing application with very defined and clear boundaries: within a few months, I can easily read what is happening already and mutate the application within the set boundaries. 5 years of work experience is what I'd need to set up an application the size of Stack Overflow from scratch in an acceptable timeframe.
What we have now is a recruitment procedure within the industry which overemphasizes ticking boxes without looking whether they can actually deliver. We have so many quality online sources available, any half-competent person can read, copy what is happening, use it as a foundation and then change it to their specific needs, producing actual applications. You might not cover the edge cases (a specific cryptographic problem here, an suboptimal solution there, etc.), but that really isn't that different from most of the crap software that's getting shoveled out into the open today.