I’ve written a few times about what I call the “democratization” of development. Specifically, I’ve explored how giving ordinary people access to development tools (game engines, programming libraries, and so on) that used to be restricted only to large corporations benefits all of us.
Because it does. The indie gaming scene is the only place real innovation in games still takes place. Open-source software runs the world, even if you never see it. These wouldn’t be possible if we lived in the bad old days of the 90s and early 2000s, when a decent compiler and IDE cost as much as a new computer, when even the “family-friendly” console manufacturer’s answer to “how do I start making games?” told you to go to college.
We’re better than that now. And even though some of the biggest causes (Github, Minecraft, Firefox) have fallen to —rather, joined—the dark forces of wokeness, the legacy they built while they were still on the side of good remains. For all intents and purposes, programming is open to everyone.
The next question one might as is a natural follow-on to that statement. Programming is open to all, but should it be? Or is there something to be said for gatekeeping? After all, we’ve seen what democratization and inclusivity have done to RPGs. We’ve seen the massive drop in average literary quality that came with the opening of the Kindle Store.
Of course, I could never agree with that. If not for the world of open source, I wouldn’t be where I am today. If I’d had to save up to buy every single development tool I ever used, well, I wouldn’t have used very many of them. Billions of people around the world can understand where I’m coming from. Many of them live in worse poverty than I ever have, but they all have the same opportunity to learn this craft; one of my coworkers lives in Nigeria, and what person who grew up in the 80s and 90s would ever expect that?
From the financial standpoint, then, democratization is undeniably a good thing. From the social perspective, it’s the same. Yes, we have trouble. Straight white men are being pushed out of tech circles everywhere you look. Those who stay are muffled into impotence by “code of conduct” censorship regimes. But programming doesn’t require a community. It creates them. And those of us who truly create through code have the power to determine who we want inhabiting our communities.
Despite the numerous problems allowing the whole world into development has caused, then, I still wouldn’t want to go back. We’d just be giving up too much.
Another question I would expect one to ask is who should learn to code. It’s a valid question, as the very phrase “learn to code” has become kind of a buzzword—merely saying it became a bannable offense on Twitter, so you know it has some positive effect. Philosophically, it cuts to the heart of democracy in a way few people understand. After all, if everyone has an opportunity, does everyone also have the responsibility?
One reason this question came to mind was because of a disagreement I had with my boss a couple of weeks ago. He insists that development is little more than physical labor, on par with, say, a factory or assembly line job. As a developer myself, I feel what I do is more of a craft, a skilled trade that is mostly mental. I don’t just write code; I solve problems. This difference of opinion is, in a sense, a different way of looking at the fundamental question, because an unskilled job is something anyone can learn how to do.
I do believe that everybody should learn about programming. Computers are such a fundamental part of modern life that we are doing ourselves a disservice if we don’t understand at least how they do what they do. For the same reason, I think everyone needs a basic understanding of how a lot of other things work: internal combustion engines, power plants (of all kinds), radios, electronic circuits, indoor plumbing, and so on. Rather than teaching our children about make-believe genders, wouldn’t this be a better use of compulsory education?
That said, while we all need some knowledge, I recognize that not everyone has the ability to use that knowledge as a professional developer would. This is the crux of my disagreement. My boss thinks “developer” is a title, something you can train for and take on, the same as a sales manager.
I, on the other hand, see from personal experience that not everyone has that mindset. I’ve tried to teach programming to a few people, and it doesn’t stick. They’ve all said the same thing when I asked why: “My brain just doesn’t work that way.” And that’s really what it is. Some people are just wired differently. We have a different way of looking at the world.
You can’t chalk it up to intelligence. My brother is very smart, but he completely zones out the minute one of his favorite Youtube personalities starts talking code. Yet I’ve seen people who would struggle to reach the average in an IQ test write some masterful programs.
You can’t say it’s a mental disorder. I have only two of those: anxiety and depression. Neither are universal among programmers, though we collectively cover a huge swath of disorderly mentality. Many of the top developers truly are on the autism spectrum. One of the best who ever lived, Terry Davis, was a paranoid schizophrenic. But there are plenty who are, by all accounts, perfectly normal. I consider myself an average programmer, and I’d say I’m also near the mean in terms of mental health.
You can’t claim it’s because of demographics. Yes, I’m an American man, and most of the programmers you might know by name are the same. That’s only fair, as the US effectively invented the field, and it became male-dominated early on. (Not always, however. The inventor of COBOL was a woman, as was the first programmer who ever lived.) Yet there are great developers all over the world, and they come in all shapes and sizes. Russia’s hackers are famous…or infamous. Japan has given us some of the most talented and most devoted devs you’ll ever meet. And many great tools are being made in the Republic of China, even as the hardware they’re running on comes from the Communist usurpers on the mainland.
No, there’s something in the way certain people think that makes them good or bad at programming. And that’s fine. There’s nothing wrong with having our differences. I know I’m hopeless at, say, drawing. I’m too squeamish to ever be a doctor or a hunter. I recognize this, and I recognize that some people might just have a problem ever learning how to code. I still believe they should understand the fundamentals, if only because that would give them a better view of the world they live in. But I can respect their wishes to never go beyond that introduction.
In the end, it’s good that development has become democratized. Whether or not everyone uses the gifts we have been given, it’s better for all of us that they are there. When programming was reserved for the elite, only those who had that status could participate. But the programmer’s mindset is not limited to the rich, the college-educated, or the Westerner. It can show up anywhere, in anyone. Much like a fantasy gift of magical talent or the Force in Star Wars, our power does not come from our upbringing. It’s a part of who we are, so it’s good that we all have the chance to discover, train, and harness it.