Coding Horror

programming and human factors

Learning, or, Learning How To Learn

One of my most eye-opening early experiences was a tour of a local manufacturing plant during high school. One of our tour guides was a MIT trained engineer who accompanied us, explaining how everything worked. At the end of the tour, he gave each of us a picture of a spider he had taken under one of the electron microscopes they had at the facility. He labelled it "Boris the Spider" after the Who song. I kept that photo in my school locker for months.

spider under an electron microscope

As a college-bound high school junior, I was impressed. I thought my Apple II was the neatest tool ever, but this guy had a freaking electron microscope. He was articulate, intelligent, and on top of that, one of the coolest people I had ever met. And he graduated from MIT, one of the best engineering schools in the country. During lunch, I asked him how much of his schoolwork applied to his current engineering job. His response?

I can't think of a single thing from my MIT classes I've used on the job.

This blew my mind. What's the value of a marquee college degree if none of the skills you learn are useful on the job?

At first, I was incredulous. But after considering my own high school educational experience, it started to make more sense. And certainly after attending college for a year, I knew exactly what he meant. The value of education isn't in the specific material you learn-- it's in learning how to learn. In Knowledge Access as a Public Good, danah boyd presents Wikipedia as a perfect example of the latter:

Why are we telling our students not to use Wikipedia rather than educating them about how Wikipedia works? Sitting in front of us is an ideal opportunity to talk about how knowledge is produced, how information is disseminated, how ideas are shared. Imagine if we taught the "history" feature so that students would have the ability to track how a Wikipedia entry is produced and assess for themselves what the authority of the author is. You can't do this with an encyclopedia. Imagine if we taught students how to fact check claims in Wikipedia and, better yet, to add valuable sources to a Wikipedia entry so that their work becomes part of the public good.

Passively reading the material in an encyclopedia or textbook is learning, in a sense. But learning how to research and question the material you read-- and, as in Wikipedia, how to update it so you're adding to the communal wealth of knowledge-- is a far more valuable skill. This kind of participatory, hands-on experience outstrips any kind of traditional classroom textbook. Why read textbooks when you can help write one? There's no substitute for learning on the battlefield.

Nowhere is the importance of learning how to learn more critical than in the field of software development. Programming is, almost by definition, continuously learning: your entire career will be one long, unbroken string of learning one new bit of technology after another. Every ten years the software development field reinvents itself, and it's our job to keep up.

If you don't like learning new things, you will despise software engineering. It's all we do. That's why learning how to learn is such an important skill for software engineers. In our field, how only lasts about five years, but why is forever.

Written by Jeff Atwood

Indoor enthusiast. Co-founder of Stack Overflow and Discourse. Disclaimer: I have no idea what I'm talking about. Find me here: