Keep moving

Everybody Should Be a Programmer

Among folks who code, there’s a perennial question - “should everybody be a programmer” or, somewhat less aspirationally, “should everybody know how to code”.

Here’s one example:

In short, you should learn to program because it’s easy, it’s fun, it will increase your skill set, and… it will fundamentally change your perspective on the world.

Why Everyone Should Learn to Program

Of course there are people who disagree:

The whole “everyone should learn programming” meme has gotten so out of control that the mayor of New York City actually vowed to learn to code in 2012.

Please Don’t Learn to Code

I think there are some fundamental problems with the idea – for a start, it speaks to a myopia of privilege - there are many people who struggle to afford food, or to read, or the time to study. It is an overstatement to assert everyone should do anything if there is something more important they should be doing. Saying everyone should know how to program is pretty close to saying “let them eat cake.”

Separately – and this is a general problem with education – there are many interests that drive curriculum, but the argument is always for adding something to the study course. People very rarely argue that you should remove anything, because it’s much easier to kick the can down the road. It would be politically unpopular for anyone to say “people should stop learning to write so that they have time to learn how to code.” This is true for any topic, but given how privileged the bar is for coding even to seem relevant to your life, it’s particularly unappealing to settings like public education where the span of the student body includes silver spoons and single-mother households with special needs.

Then there’s the issue of interest: learning is much easier when the student is interested. You can try to force it (and we largely do force it), but some people, you just can’t reach.

All of that said, I do argue that more people should know how to code – and I mean should in the moral sense, not in the feel-good aspirational sense.

Our world increasingly involves computers – as Cory Doctorow says – computers you put yourself in, computers you use, and computers you put in yourself. Friendships span the globe; rural farmers text market prices; drones strikes in Pakistan are piloted from the comfort of the US. But also cochlear implants, commercial aircraft, self-driving cars, and manufacturing. This is fundamentally different than, say, plumbing because as the world is eaten by software that part of the world that you can control without programming shrinks.

(If you are already a technologist and are not politically active, I encourage you to spend an hour listening to Cory’s talk (linked above) on the coming war on general-purpose computing. If you think either that politicans are clueless or irrelevant, you are wrong. Learn why.)

A brief digression: people now tend to think of literacy as a basic skill, an obvious thing in education. But at one point there was a chicken-and-egg problem. Books were expensive because they were hard to produce both in labor and materials. No normal person owned books or indeed rarely had opportunity to read one. So people didn’t learn how to read. So there was no apparent need for cheap books. So the people who did have books, or did know how to read, were separated from the typical experience of society. People who read and people who didn’t rarely crossed paths. It took a long time for it to become clear that reading was a generally applicable thing.

When we use technology that we have no understanding of, we place an inordinate amount of trust and control in the makers. These makers may have best intentions at first, but power corrupts. The Catholic Church didn’t set out to be a vendor for guilty consciences, but the fact that nobody could read the Bible for themselves meant that getting to heaven meant going through the Church. The flesh is weak.

When we raise members of society who view programming as a dark art; who see iPhones as magic boxes; who dismiss coders as nerds; who see computers as gadgets rather than tools, we invite disempowerment, disenfrancisement, disconnection, discontent, and disinformation. The internet is not a series of tubes, but most of our society thinks so. What does it mean for our discourse that most of our citizens can not benefit from the the modern equivalent of the printing press?

The ability to persist our thoughts, to send them across time and space, to reach ourselves later, to share, to create, to provoke debate, to extend society’s structures beyond our huts, campfires, roads, lives - it’s a fundamentally differentiating thing, as our thumbs and our words are. This is a machine driven not by matter but by information, working as we sleep on our behalf, saving us time, worry, error, stress.

There will not be a time where we are less connected, less intermediated by computers, less a part of this new papyrus woven from bits, wires, chips, signals, speed and distance. It will only become more important to know how to make these marvelous, incredbily fast idiotic agents do our bidding. There will never be a time when you – your friends, your children – shouldn’t learn how to code.

And yes, some people will be properly, intensively, busily earning a living, stuck in an economy of scarcity (as opposed to plenty), otherwise occupied. Such inequalities are wastes of human potential, creativity, and productivity. We should all be interested in reducing such wastes because it directly enriches the market, and ourselves in the effort.

Much has been written about the digital divide but restated, as our lives are increasingly intermediated by technology, an inability to conceive of, create, and control the technology as extensions of our own individual agency will lead to increasing disenfrancisement.

If you’re not busy scratching out a living; if you can afford food, clothes, a home, and a little time – you should learn how to program. If you don’t know anyone who knows how to program – you should learn how to program. If you don’t yet see the point of computers and software and the internet – you should learn how to program. If you have ever had a wish and there wasn’t an app for that – you should learn how to program. If you trust your vote, faith, hope, hearing, life to technology – you should learn how to program. Unless you have something better to do.

You might wait a while until it’s more obviously useful, but unless you can argue that the shift isn’t coming or isn’t clear, can you argue you shouldn’t do it now? What should you give up so you have the time? Only you can decide that. What seems less important?

“When I get a little money I buy books; and if any is left I buy food and clothes.”