I think a better solution is to have an incredibly low barrier to entry (never know if you are a good programmer until you try it, so getting more people to try means more good programmers), and then focusing on improving your programmer selection (if you are hiring). If a bad programmer can't get a job, then they will most likely find another path in life. (If they keep writing bad code for themselves, who cares?)
As far as open source is concerned, bad programmers don't bother me, because you can generally find a solution written by someone that is good.
As far as open source is concerned, bad programmers don't bother me, because you can generally find a solution written by someone that is good.