Eh, I'm not convinced of that. I don't think you can take any person and teach them to think through problems logically. It seems simple enough, and you can certainly make them _better_ at it, but I really do believe we all have upper limits on our potential.
I agree that there are upper limits on a given individual's potential, but I think you are being too absolutist in language. I'm not sure that you can take ANY person and teach them any given thing. That's just silly. I think the powerful point is that there are and needs to be average programmers, and we can teach a subset of people to be that. There is evidence, even if anecdotally, that many are being dissuaded from the field due to a toxic belief that you are either born with some amazing ability to do the work and that it can't be taught, or you suck because you just "don't get it". Very damaging philosophy. I think we could teach certain people to do the work, maybe not everyone, but more than currently. There are a lot of mundane jobs in programming that do not need super high level abstraction and critical thinking skills.
> I think the powerful point is that there are and needs to be average programmers
Of course we do, but no one is saying only the best should be hired and the rest should go dig a ditch. Most programming tasks do not require top level talent to accomplish, but when I'm hiring I'm going after the best candidate I can get, and that has little to do with e.g. what web framework they are most familiar with.
Anyone can learn these skills, but they're sufficiently difficult that only people with the inclination and motivation to push through the hard parts make it anywhere. Desire and grit make more of a difference than talent or natural ability, which are impossible to measure.
>> I don't think you can take any person and teach them to think through problems logically.
That's actually the whole point of scientific training: teaching people to use the tools of science, including thinking logically and avoiding sources of bias and so on.
If you want to go back into antiquity, the ancient Greeks who started the whole Logic thing, Socrates, Plato, Aristotle et al, they never presented logic as some kind of innate ability of human beings, rather they set out to teach it as an instrument of thought that was far from innate. Because if it was innate, it wouldn't need all that work they put into it.