I leave for Cape Town, South Africa on Sunday night. U.S. AID is being kind enough to send me there as part of their program to help Africans improve their capabilities in information technology. It is easy to be enthusiastic about the potential of the Information Age for economic development in Africa.
For a country to participate in the benefits of the Industrial Revolution, it needs a lot of infrastructure: cheap and reliable transportation, capital sufficient to build large facilities, management to coordinate hundreds or thousands of workers, efficient and non-corrupt import/export procedures, etc. Africa was never a good candidate for being a rising industrial star due to its distance from world markets and the general chaos and corruption of post-colonial governments.
What about generating economic growth from expertise in information technology? India has tremendous problems with infrastructure and a sluggish and corrupt government, yet its IT sector has been booming for two decades. What makes IT such a great opportunity?
- you don’t need physical transportation; a land-locked country or one where airfares are very high can be competitive
- you don’t need a big factory; a competent programmer at a PC connected to the Internet can earn a good living
- small-scale IT enterprises aren’t natural targets for corrupt government officials
- competitors in First World countries are weak; the average programmer in the U.S. is incompetent, constantly missing deadlines and delivering bug-ridden undocumented code that fails to meet customer needs. The average programmer generates rage in the heart of his or her employer.
What are the special challenges?
Expensive telecommunications is one challenge. Telecom is one of the few things that can be taxed in Africa, so it is. It can cost 5-10X as much to get an Internet connection in a poor African country compared to a rich American suburb. The effect of these high costs is devastating to the economy, but governments can’t resist.
A deeper challenge is education of software engineers. American universities pretend to educate computer science majors, but in fact nearly all of the practical learning happens during summer jobs and in the first year or two after college, assuming the CS major is lucky enough to find some mentors. (If he doesn’t, he usually remains incompetent as a software engineer and switches careers.)
The education at an African univesity has to be substantially better than at a Stanford or MIT. The African CS graduate won’t have a lot of good jobs from which to choose. The African CS graduate needs to be able to compete on the world software engineering market immediately upon graduation. For this to happen, he or she needs to learn how to be an engineer while in school. That means all of the problems identified in http://philip.greenspun.com/teaching/undergrad-cs need to be fixed.
It is a tough challenge, but every university that has tackled it has succeeded.
Full post, including comments