Sign In

Remember Me

Should Africans Learn to Code?

Screen Shot 2014-12-31 at 12.21.11 AMRandomly clicking through Singularity Hub as I do from time to time, I happened on an article by someone named Nathaniel Calhoun, titled “Future of Work: Why Teaching Everyone to Code Is Delusional.

Initially, the title perplexed me a little, because I’ve long been of the view that everyone should learn elementary programming, in the same way that everyone learns elementary math and science. Having taught basic coding to kids age 7-12, back in the 1990s when I helped found a charter school in New Jersey, I’m well aware that programming is not necessarily obscure and “for ubergeeks only.”

Sure, just as not everyone who does art in school is destined for a career as an artist, not everyone who learns to code in school is going to be a professional programmer — but nevertheless there is much to be gained, both conceptually and practically, by adding coding to one’s basic-skills arsenal.

But then, when I actually read Calhoun’s article, I found myself more outraged than perplexed.

Nathaniel Calhoun, you sound like a decent person, writing your thoughts down out of a genuine concern for the individuals you’re writing about.  It seems you spent some time in Africa and put in some work designing curricula for people there and elsewhere. That must have been interesting, and I’m sure you learned a lot. But based on this particular article, I’m not so sure you learned enough of the right lessons.

For instance, I wonder, why exactly did you choose to tell the following story?

“Recently in Senegal, a young man who I worked with told me he was enthusiastic about learning to code. He didn’t know what programming language to learn, and his math and logic skills aren’t strong; but he’s got the message: young people should code their way to prosperity.

The reality, however, is that he’ll have a hard time competing.”

I have no doubt that you met someone in Senegal with poor math and logic skills, just as you report.

On the other hand, the AI programmers I work with at iCog Labs in Addis Ababa, Ethiopia have outstanding math and logic skills — and so have loads of other folks I’ve met there at the universities and in the tech sector.

There are people with great math/logic skills and terrible math/logic skills everywhere in the world, and surely you know this — so why focus on an anecdote of one guy in Africa who happened to be poor in this area? Heck, when I taught undergrad computer science in the US, out of a class of 30 or so, there were typically 2 or 3 whose math, logic and programming skills were sufficient that I’d be interested to hire them as programmers for one of my companies.

Harping on a particular anecdote of a particular African who was bad at math and logic, seems pointless and simply perpetuates inaccurate stereotypes. Similarly, the world contains hot, big-boobed blondes who can’t add, and Jews who hoard their pennies, but focusing on such cases in one’s journalistic writing is misleading and somewhat in bad taste, no?

You note about programming that it’s a career trajectory “available to a smaller and smaller percentage of Earth’s population” — noting that “robots will be flipping burgers and driving trucks … [and] algorithms are on the way to writing better algorithms too.”

Okay, sure — but what are you trying to say here? That Africans and other poor people shouldn’t bother to learn to program because eventually AIs will take away their jobs?  Why doesn’t the same apply to people everywhere, then?

You quote a UN report as follows

“Indeed, a recent study by the United Nations Environmental Program (UNEP) essentially determined that widespread adoption of small scale organic farming is the only way for the continent of Africa to pull itself out of poverty.

But wait a minute, there’s some pretty bloody glaring inconsistency here, no?

Which line do you mean to be taking here — Singularitarian/futurist, or conservative UN bureaucrat? You seem to be mixing and matching perspectives in a very opportunistic and incoherent way.  If you’re going to assume that AIs will soon be obsoleting computer programmers, then why not also assume that low-cost, mass-produced robots will soon be taking over farming, thus obviating the farming skills you advocate Africans focus on? Almost surely the UN commentators citing small scale organic farming as Africa’s only future path, are not assuming a Kurzweilian future trajectory in which robots are soon flipping all the burgers, driving all the trucks and writing the world’s complex C++ code.   What coherent future scenario, if any, do you have in mind?

One might infer, piecing together your various comments, that you infer a future in which robots and AIs take over all the jobs in the first world, but none of the wealth these machines create gets sent across to Africa — so that the Africans have no jobs and no money and need to subsistence farm, so they may as well focus on doing so using advanced subsistence farming methods.

I guess that’s one possible world, but it doesn’t seem either very probably or very desirable.   But maybe that’s not actually the future you envision.   I have a hard time assembling any kind of coherent future scenario from your article, to be frank.

I don’t mean to diss small-scale organic farming. It’s cool; it’s useful; I agree, this kind of skill should be spread throughout Africa and elsewhere. It can make a big difference.

However, I think your message to African youth — in brief (and to parody just slightly): forget learning technical stuff, you’ll never catch up with Asia; just learn fancy methods of subsistence farming instead — is an absolutely terrible one.

Why not instead project a more positive, more sensible message, something like:

The world is changing fast and unpredictably, as new science and technology advances exponentially.  None of us knows which technologies are going to develop fastest, or which existing job categories are going to go obsolete first, or which new job categories will pop up when.   So to survive and flourish in the future, young people in Africa and elsewhere would do best to

  • Gain foundational skills that are unlikely to go obsolete unless humans themselves do: strong written and verbal communication, in English as well as one’s native language; logic and mathematics skills; elementary programming (yes) and hardware engineering skills that build understanding of the complex machines with which our lives are now interwoven; creative arts and design skills; know-how at people management, including coordination of teams of distributed and/or heterogeneous people.
  • Master meta-learning. Learn how to learn, how to adapt, how to problem-solve, how to come into a new situation and figure out what’s going on.
  • Develop habits of absorbing new information widely. Understand what’s happening in the wider world even before it comes into one’s local neighborhood or one’s social circle. Increasingly the world is an interconnected place.

Africa needs a lot of things. Quite possibly it needs innovative organic farming. But it also needs a broadly educated, creative, savvy population that is part of the world technology economy.

Sure, not everyone should be a professional programmer. You’re right about that.  But not everyone needs to be a farmer either. The wonder and the worry of the times we live in, is that nobody really knows what they’re going to need to be in the future, even 5 or 10 years away.

One of the projects we’re working on at iCog, in Addis Ababa, is an intelligent teaching tablet for African kids. There will be curriculum about basic useful everyday life stuff, such as the value of washing your hands, and modern techniques in farming. There will also be games that help teach how to code, along with mathematics and English and other more traditional basic skills. Most of all, though, the curriculum and the tablet as a whole will be designed to help guide kids in the process of learning how to think carefully and creatively, both individually and in groups.

Everyone probably should learn how to code, at least a little. But more important than that, everyone should learn how to learn and to think and to create. In the modern world learning to code is a valuable part of this broader learning process, and can help build the flexibility of mind we will all need to handle the various unpredictable things reality is going to throw at us.