Also, just because hackers are a scare resource doesn't mean we should accept a lower quality in the end product. What if we did that with the engineers that worked on airplanes? Software is used in many similarly critical situations. It's time to accept that the things that adults use like UML and overly complex IDEs don't increase the number of good programmers. Ironically, they actually mask the true ability of a programmer. To actually accomplish that, you need to start with the programming curriculum in high school and early college education.