Earlier this year, Clive Thompson, veteran technology journalist and best-selling author, stopped by Stack Overflow for a chat with our founder and CEO Joel Spolsky. Thompson’s latest book, Coders, is a wide ranging look at the past, present, and future of programmers. It’s a sort of ethnographic history of this particular tribe, examining how software developers fit into the world of business and culture and how their role in society has shifted in recent decades. The official conversation kicked off after a 15-minute tangent on Joel’s collection of Omni magazine and the formative role this publication had for both men. What follows is a transcript of their conversation, lightly edited for length and clarity.
Clive: What! You have Omni! No way. I read all these the first time around. It’s part of why I do this. That’s where I discovered William Gibson. Joel: Yeah. They were publishing Ben Bova and fresh Isaac Asimov. It was amazing, It’s funny, almost every consumer electronics item advertised in there is now just something your smartphone does. Clive: They had all the great Heathkit ads for robots with terrible grippers. Every once in a while I go to eBay and hover over the complete collection of Omni, but I live in Brooklyn and just don’t have the room for it.
Joel: Alright, let’s change tack for a second before we get too far off topic. What did you learn researching this book? Where is the craft of coding headed? Clive: There was a Twitter challenge to describe coding in five words, and this woman Erin Spiceland wrote, “Telling rocks what to think.” That could have been the title of the book! So the question in my mind is, who is interested in this? What gets them bit by the bug so they are willing to crawl over all the broken glass that is the daily work. Joel: In my time, it was the absolute control. Whatever code you wrote, that’s what executed. There was no translation. It wasn’t like, well the flour was kind of old, and I tried to make the souffle but it collapsed. Unlike so many things you will try to accomplish as a child or an adult, where you work on something but it doesn’t turn out as you expect it to, with code it will do exactly what you told it. Even if that’s not what you meant. You might suddenly realize you’re obeying me to the point of making me angry. Clive: The monkey’s paw thing. I shouldn’t have wished for that. Joel: But the computer is still being completely obedient. Clive: That thrill is a common thread I found in my research, from the 1960s through today. I will talk to people in their 80s who worked on machines the size of an entire room, and it’s the same damn thing talking to a 15-year-old girl at an afterschool program working on a raspberry pi or P5. There is something unique about the micro-world that is inside the machine, qualitatively different from our real world. Joel: It’s sort of utopian. Things behave as they are supposed to. The reason I put a question mark on that, as programmers move higher and higher up the abstraction tree, that kinda goes away. Clive: I think the rise of machine learning is an interesting challenge to the traditional craft of software development. Some of the people I spoke with for the book aren’t interested in it because they don’t like the idea of working with these indeterminate training systems. Someone said to me, this is like training a puppy not to piss on the floor. I got in here to build clockwork mechanisms, or at least make them run better. I like how comprehensible they are, and there is something unsettling about not really knowing what’s going on with what you’re building. Joel: I just picked up Arduino a year ago and that was enormously fun because it was like going back to C, instead of all these fancy high-level languages where you don’t know what they are going to do. It offered a really detailed level of control. If something doesn’t work, you can figure it out, because everything is tractable.
Clive: What was your original pathway into coding? Joel: My parents were professors at the University of New Mexico, and the University bought a mainframe and didn’t know what do with it. They gave every professor an account. And the professors gave those to their kids. So I was part of a group of teenage kids just hanging around the computer center trying to figure stuff out. Clive: So what was it, FORTRAN? Joel: It had an interactive operating system because those had gotten trendy at universities. They had an interactive terminal system that had BASIC, FORTRAN, and PL/I. Many, many years later I realized there was no way they had enough memory for three compilers and in fact what they had was a very simple pre-processsor that made Basic, FORTRAN, and PL/I all look like the same mush. It was a very crappy subset of each of those three languages. Clive: Oh my god, that’s trippy. For me, it was the generation of BASIC computers you could plug into a TV, that’s what got me in. But also, hilariously, my high school in Toronto had set up a computer programming course you could take in your fourth year, where we learned FORTRAN on punchcards. You fed them in and came back two hours later for them. I’m glad to have done it, because when I interview coders in their 70s and 80s, we can bond over tripping while walking down the hallway carrying a stack of 100 cards you forgot to number.
Clive: Here is an interesting question for you that leads into the history and trajectory of coding. When you were young and getting interested in this, did you think that it could be a lucrative career, or were you just interested and one step led to the next. Joel: Yeah, it was a thing. My grandparents said, you can go to MIT and be a computer engineer. There were operators running the computers at the University of New Mexico. I didn’t always think that it was what I wanted to do. There was a lot of negative associations around being a nerd. I wanted to be a gaffer putting up lights on movies. Clive: That had cultural capital, and in the early 80s, coding did not! Joel: Today people understand coders are important, but they are very suspicious of them. We’re at the phase of Newman’s [Wayne Knight] character from Jurassic park.
Clive: What I discovered is that there have been a couple of inflection points. During the 1990s and the first dot-com boom, it became obvious that there was the potential of quick riches to be made in software. Money changes things, it confers cultural capital. But also, computation moved to the center of people’s lives. Joel: With the internet everybody saw there is really cool stuff going on here, and it’s getting better every year. Clive: Once it became the medium to talk with your friends, to learn about the world, to express yourself, that created the Hollywood cultural capital.
"Funnily enough, lots of coders aren’t that great at math."
The thing that is interesting about what’s happening with AI and machine learning to today is that, to do it at a high level, to do more than just download someone’s model and tinker with it, you need some pretty sophisticated mathematical and statistical thinking. Funnily enough, lots of coders aren’t that great at math, so long as you remember to zero index, you’re fine. Joel: The big picture there is, the school system should have given up on trigonometry and calculus a long time ago and started teaching statistics and probability. The discrete math is a lot more useful. Clive: The last chapter of my book looks at how we can expand the universe of people involved in this work. And I think the answer, which accords with our own experience, is to ensure that at some point in the odyssey of life you give them a chance to figure out if they are one of the weirdos who loves this stuff. Joel: It might be a lot more than you think. It’s funny because if you ever spend time taking apart a car engine and rebuilding it, you can explain to them, programming is kind of the same thing. Clive: Or knitting and crocheting. There is this site Ravelry, and there are actually a lot of coders in there, because the algorithmic complexity required to execute some of these patterns is just stunning. The jacquard loom is just the beginning of a punch card processor.
"My grandmother had all the right skills to be a programmer."
Joel: Exactly! I get the same feeling when I go into maker spaces. My grandmother had all the right skills to be a programmer. She was doing all the same mental processes. Clive: This was one of the things that really struck me in my research for the book. There were all these women in their 70s who were developers in the 50s and 60s. It was so wild because the door was so open back then. Programming was not yet seen as a lucrative, elite thing. In fact, the elite thing was building the hardware. Joel: This is our opportunity to get more programmers into the field and make it more diverse and inclusive. If we’re writing the script of the future, we need full participation. We have to be more actively welcoming to newcomers. If we’re asking people to try out a career that can be like walking on broken glass a lot, we better be nice to them at the beginning.