...and while you can train people to be competent, you can't train them to be exceptional. Why not? Every exceptional programmer I've ever met was unexceptional at one time. Something happened for them to become exceptional. I personally believe that while that "something" is most often "doing", "training" is often a big part of the equation. And that training is more often than not training their beliefs as much as…
Even the processes for training competent engineers are only barely scaleable. Most competent engineers are still being trained through colleges. Even newly emerging forms of training don't scale that well - take coding bootcamps with limited class sizes and the low success rate of things like Codecademy.