It is also to some extent the product of the environment, not just an intrinsic property of the employee. I think in the long run, creating an environment that encourages dumb programmers to become smart programmers is as important as hiring the right people to begin with.