code-for-a-living September 17, 2019

Joel Spolsky and Clive Thompson discuss the past, present, and future of coding

What inspires someone to become a software developer? Joel Spolsky and Clive Thompson discuss how the culture of coding has evolved over the decades and where they hope it’s headed next.
Avatar for Ben Popper
Director of Content
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.
Related image
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.

The Arduino!
“The Arduino!” by mahela1993 is licensed under CC BY-SA 2.0 

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.
File:Punch card Fortran Uni Stuttgart (6).jpg
“File:Punch card Fortran Uni Stuttgart (6).jpg” by Harke is licensed under CC BY-SA 3.0 

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.

Clive: Alright, so looking 5-10 years out into the future, what are you excited about?

Joel: Well, when I think about this company, the future of Stack Overflow and Stack Exchange is all the workers that have knowledge in their head that their organization wishes that wisdom was more readily available. How do you impart the information to co-workers when they aren’t around, or when they are asleep, or after they leave for a new job. So they will use our private version of Stack Overflow to capture the internal system’s knowledge they’ve built up over years, and to share it in a way that allows anyone within that company to easily find or interact with it.

Clive: The classic problem with this is: what is the motivation for someone to externalize what they know? Well, it turns out questions are socially motivating enough. It also gives you permission to show off what you know. You’re not just bloviating, someone actually needs your help.

My first book, which was all about cognition and the internet, I had this long section where I was fascinated by question and answer sites. There is a lot of psychological research about the value of a question as a prompt. This takes us back to the Socratic method. He just went around poking people and asking questions. It’s a very powerful heuristic.

Joel: The other thing that I’m excited about is the electronics maker movement. Starting with arduino but also rasberry pi. You are starting to see companies like Adafruit and SparkFun that are making tiny little circuit boards that take a chip which used to have 18 pins and give you a three pin version of that. So now you just have to solder three things, you don’t have to read a long manual. 

It’s like when people started creating libraries. It’s like react for hardware. It used to be, if you wanted a microphone that could convert sound into a digital signal, you had to figure out how to build a lot of that from scratch. Now there is an $8 board which will do it for you. There are three pins, anyone can do it in half an hour. If that trend continues we will see a lot of really cool stuff start to come out, and in fact, I think that’s already happening.

Ok, your turn.

Clive: One thing that gets me excited about the future of coding is that there has been an increasing number of weird, cultural onramps. The late 90s and early aughts saw an explosion of people entering programming from non-traditional backgrounds, and that was because the web made it easy to see and build stuff people could actually use.

Whether it’s the simplified hardware ecosystem you talked about, modern libraries for doing gorgeous generative art, P5 and things like that, to the fact that a language like Python has grown massively and is really accessible to beginners. I feel like that means there are lots of new onramps. And there has been an explosion of organizations, some permanent, some one-offs, from Black Girls Code to after school programs or robot leagues, that was not there ten years ago, and it’s a product of the conversation and the mission to broaden the base.

There are people in college finishing their CS degrees who got turned on to it coding through an Apple Store event. Start with HTML, then a little Javascript, and lo and behold you’re a god damn developer.
Tags: , , , , , ,
Podcast logo The Stack Overflow Podcast is a weekly conversation about working in software development, learning to code, and the art and culture of computer programming.


code-for-a-living September 16, 2020

Neural networks could help computers code themselves: Do we still need human coders?

The next big revolution in coding practice might be closer than we think, and it involves helping computers to code themselves. By utilizing natural language processing and neural networks, some researchers think that within a few years we can remove humans entirely from the coding process. If you work as a coder, you'll be glad to hear that they are wrong.