Between never-ending Facebook scandals and debates over fake news and polarization, the general public seems to be more aware than ever of the extent to which software governs our daily lives. “People are unsettled by it, but they still don’t know anything about how the software came to be and why these creators decided to tackle these problems and build these tools,” says Clive Thompson, a technology journalist and author of Coders: The Making of a New Tribe and the Remaking of the World.
“There’s always this mystery behind the people who actually make the software, and at the same time there has historically been a pretty inaccurate vision that comes out of Hollywood and TV,” Thompson says. He became intrigued not just by the software itself and the environment that created it, but by the type of person who gets sucked into this world: “I really wanted to give the average person a glimpse at the priorities and dreams and blind spots of the people that are making the tools that are going wrong.”
The Verge spoke to Thompson about the appeal of writing software, the downside of efficiency, and the future of blue-collar coding. This interview has been lightly edited for clarity.
The book starts by talking about the invention of the Facebook News Feed, which you call “the software update that changed the world.” What are some other updates that maybe seemed small at the time, but that you think really had a big effect?
The invention of the browser is one. We don’t think of the browser as a piece of software, but that was the moment the internet went mainstream and the average person could begin to use it. Uber, too. Uber was a template for a million other companies trying to do that sort of on-demand super-efficient matching of labor to demand products. Another huge one is the first version of iOS on the iPhone. That created the smartphone and the thing inside your pocket became not just a way to make calls and occasionally take pictures and send texts, but a full-featured computer.
Right. And all of this came out of a specific culture or, as you call it, “a new tribe.” What are the features of this tribe? What’s the appeal of coding? You have a section where you talk about how coding can be more fun than writing — why?
You have this incredible thrill when the code comes to life, when you finally figure it out and the thing you created lurks into existence and does exactly what you tell it to. In writing, I can publish a piece. Is it a good piece? I hope so. I certainly try to make it good, but its goodness is…subjective. It’s in the eye of the reader and when you are a writer, you are trying to persuade. When you’re coding and you’ve created a tool for yourself, when it starts working and it’s running and doing what I need it to do, no one can say the thing’s not working. It is! It is objectively working. It is doing what I told it to do and it’ll do it until the sun explodes and electricity runs out. There’s no such finality in writing.
Another thing I noticed when interviewing coders is that one of their great passions is taking something that was being done in a slow or inefficient way, or something that requires tons and tons of repetition, and speeding it up and making it more efficient.
I’ve heard this comment about the obsession with efficiency before. What underlies that?
It’s so compelling, it’s almost like an aesthetic. They respond to efficiency the way someone who isn’t a coder responds to a bad smell, like “I have to clean that up and get rid of it.” This is why you can get software that can be fantastic, but you can also get software that’s completely idiotic. When optimization is your hammer, everything looks like a nail.
What happens when this love of efficiency goes too far?
In many respects, this is kind of the story of very large social networks. They said, “We want to make it easier for people to communicate with one another,” and that was a fun and praiseworthy goal, but then [the networks] turned into these unbelievably high-throughput engines of everyday expression. They want people to click and stare all the time and so they create algorithms constantly trying to find the most outrageous and extreme expressions to push to the top because that’s what compels and mesmerizes. It creates all this civic harm because of the infernal synchronization of their advertising needs and ability to encourage and seduce people.
Then Uber, for example, does a great job of optimizing how we hail cars, and that’s terrific for people that need to find cars, but it turns out to be pretty bad for people that want to drive cars and make a good living doing it. Those drivers are at the whim of one large corporation in terms of how much money they make and, because it’s so easy to become a driver, the streets become flooded with competition. It’s more efficient, but making it harder to become a driver has very serious consequences, particularly for, say, immigrants in urban areas who use driving as a way to pull themselves into the middle class.
And I think software engineers find it so compelling to improve and solve this one small aspect of code that it can be hard to look up and see the whole picture. Engineers like to make things and they like to make things used by people and it’s very easy to get swept up in technical challenges and ignore the larger economic and social impact.
What would help allay some of these cultural issues?
Having a much broader demographic universe of people who come to coding. There’s been some response formally, too. A lot of computer science curriculums are beginning to work on integrating some of these questions around the social effect of the code that’s being made for decades. If you wanted a paradigm for this, it might be the world of physics. For the first half of the twentieth century, physicists were really nose-down and “we are here to grind on fascinating problems on the way the atomic world works.” That led to the development of the atomic bomb, and when the world of physics saw the devastation that was created, their deep passion met a moral reckoning.
A few computer scientists said to me that their discipline has not yet had that moment. You can see green shoots of that, like uprisings of employees at tech firms staging walkouts and saying they don’t want their products to be used by the military. Whether or not you agree with their political stances, they are taking seriously the fact that their skills and work have an impact.
There’s a lot of talk about coding as a job and how everyone should “learn to code.” What do you think of that?
The short answer is no, of course not. It’s a growing area, but not enough to employ the whole country. I’m a big, big believer in people learning a little bit of code in part to become more valuable within their own industry. There’s this coder, Erik Dietrich, who wrote a wonderful essay called “Don’t Learn to Code, Learn to Automate.” It’s about how people keep saying “learn to code” as if the expectation is that you’re going to develop web apps, but, really, for the average person there’s enormous value in automating little things.
A more interesting evolution is what I call “blue-collar coding.” Because software is crucial to so many organizations — in banking, hospitality, design, music, whatever — there is massive need for people to write software everywhere. Not go off to Silicon Valley and make millions, but people who just want a good, steady middle-class paycheck doing something interesting in a field they’re interested in. It’s a craft that brings value to the everyday world and someone can participate in even if they don’t think of themselves as a Mark Zuckerberg coder in a hoodie. These areas are attracting nontraditional cohorts: women, people of color who were previously iced out by the “culture fit” of Silicon Valley. I talked to software firms in Michigan where they just need a lot of coders to develop everything from websites to banking software. They hire and train on the job, people who were librarians or service sector workers or stay-at-home parents. That strikes me as a really praiseworthy evolution.