My observation is that skill, communication and cultural alignment are what puts the West ahead of common outsourcing destinations (at least for Western projects - I would definitely pick a local developer for a local project as their cultural alignment and domain knowledge would be much better than an outsiders').
The problem I see is that access to hardware and educational resources is not enough. I don't believe software engineering as a whole can be taught, there are some things (including unwritten things nobody wants to admit) you only pick up from real-world experience, and some things that have less to do with software and more with culture and the local environment your software will be used in (since software in most cases is there to solve some kind of business problem that might be specific to a certain location or jurisdiction).
Lack of real-world experience in the target environment is what's holding the common outsourcing destinations back. Giving free computers to everyone still won't magically make them competitive in our software engineering market.