The True Value of Coding: It Teaches You to Think Differently | Gene Luen-Yang | Big Think
I was a high school computer science teacher for 17 years. I taught at Bishop O’Dowd High School in Oakland, California. I taught during the dotcom boom, I taught during the dotcom bust, and I taught during sort of the recovery of the tech industry afterwards. I did see the interest in what I was teaching fluctuate. It would go up and down every year, largely tied to the economy, which was a little bit weird to me.
And even as a school, you know, when I began to teach in the late 90s, the school itself actually had a computer requirement. You were required to take a certain number of computer classes before you were allowed to graduate. They got rid of that requirement. They got rid of that requirement because at some point they felt like computer literacy was so important that it ought to be integrated into all the other subjects. So it shouldn’t be a thing in and of itself. In the beginning, I agreed with that.
But after seeing how it played out, I don’t think it was as effective as we wanted it to be, you know. I think that computers are still a fairly specialized type of knowledge: computer science. And teachers today still—I don’t think we’ve been trained on how to integrate computer science well into the other subjects. So ultimately, what ended up happening at that school site was we would graduate students who would know how to use computers but would not necessarily understand how they worked or even understand how to maximize what they could get out of the computer.
As a computer science teacher, something I used to talk to parents about—especially during the dotcom bust when interest in my class started to evaporate—coding is not about training students how to type into a computer. That’s the least of it. Coding is actually really about training students to think in a certain way. It’s about training students to take large and complex problems and break them up into small pieces. It’s about training students to take things that are vague, that are difficult to wrap your mind around, and putting them into concrete sequential steps.
And that sort of thinking, that sort of skill, that sort of mental skill is applicable no matter what you do in life, you know. What you’re talking about right now, about how the future economy is going to require more knowledge work—we don’t know what computers are going to look like, right? We don’t know; we don’t even know what coding is going to look like. But I can guarantee you that the coding mentality, the type of thinking that’s required in order to code well, that will become increasingly valuable as we go on.
I think logic is really important. I think when you teach kids computer science, you are touching on a lot of principles of logic. And in terms of students knowing how to use computers but not necessarily understanding why they work, I think that’s largely a product of the success of the computer field, you know. Within computer science, there’s this idea of abstraction, where you separate the interface of something from the internals of it. And that’s something that I talked about in my computer science classes when I was teaching. You do that because it makes the computer itself, it makes whatever you’re making easier to use, right?
The user just has to have a working mental model of what the interface looks like. They don’t have to know anything about the guts underneath. But unfortunately, what you miss out on in that is the mental development in your thinking that comes with understanding the guts, right? When you understand the guts it’s not just for using that tool; it’s actually to change what’s inside of your skull. It’s actually to change your brain.
It makes you a better thinker. It makes you a better problem solver to understand those things. So I think there’s a place—I think there’s a place for abstraction, but my hope is that every student, before they graduate from high school, they’ll have a chance to wrestle with those guts, to be able to really understand how a computer works from the inside. How both software and hardware work from the inside.