Cars, computers, and the limits of metaphors

Context: Lately I've been thinking a lot about how we can best prepare our students for the changes in technology around us. We don't know what computing devices will look like in 10 or 20 years, so what should our students learn about computers that can help them deal with this incredible pace of change? The "car metaphor" comes up very quickly in any debate about this topic, so that's where I'm starting. But when you read this, please consider the larger implications for how we deal with technology in schools.

A sunny day, you are driving you car around your neighbourhood. You come to a crossroads, with shiny, picture perfect zebra lines. As you speed through it, something that you can't put your finger on makes you hesitate, and slightly lift the foot on the gas pedal. An empty road ahead as far as you can see, and yet...

Right then, just 2 meters from you, a car materializes out of nowhere where a millisecond ago was all empty space. It is heading straight for you, full throttle, and the last thing you see is the sun reflecting on its wind shield as both cars collide head-on. In this crazy game of chicken played out in the blink of an eye, you don't even get the chance to finish your last thought: "How can this...???"

How can this happen? Can a car get close enough to hit you without you noticing? From the direction that you are looking at?

In our story, you wake up in your bed, with cold sweat running down your back, and after catching your breath, you just go back to sleep.

By now you probably know what I'm getting at...

The Infamous Car Metaphor

I am sure that you have heard this before: "You don't need to be a car mechanic to
Have you tried turning it off and on again?
Automobile (Photo credit: A*A*R*O*N)
drive a car. Why should you have to be a computer expert to use one? It's nonsense!"

Yeah, I agree. You don't need to be a car mechanic to drive effectively and efficiently. Some notions of what is going on inside it are enough to get by, so you can understand all those annoying blinking lights on the dashboard.

But in truth, there is a very different area of knowledge where you do need to be quite knowledgeable to drive a car:
The Laws of Physics

Well, you obviously don't need to be able to calculate in your mind, to the 13th decimal digit, the exact distance that you will need to stop your car before you hit oncoming traffic when you are driving at 100 Km/h (or 55mph, if you wish).

But you do have a clear mental model of how the faster you go, the harder it is to hit the brakes on time to avoid crashing into something. Or that indeed, two objects can't coexist pacifically in the exact same physical space. Or intuitive understanding of slopes, of the effects of ice, oil or rain on the traction of your tires on the road, etc, etc, etc...

Those same laws of physics govern the reflection of light, and so you intuitively understand that if you don't see a car right there, there isn't one, and you can safely drive through that spot. And that at night, you turn on your headlights.

But the fact is that by the time you sit behind the steering wheel, you have already put in your 10.000 hours (and then some!) of "Laws of Physics 101": whenever you were on a bicycle or skateboard, when you ran around, when you jumped, walked, bumped into things... pretty much every single minute of your waking life.

What is the equivalent for this when you use a computer? Is there a "computing law" that guarantees that something can't be happening inside your computer without your screen showing, say, a progress bar?


Nope. Nothing. Nilch. Niente. Nada.

In all honesty, a blind man sitting in the back of your car can say with greater certainty what really is going on while you drive, than you can say about what really is going on inside your computer (or phone, or Google Glass, or smartwatch, or microwave).

What you see on the screen while you use a computer is an incredible simplification, covering hundreds of layers of complexity. It attempts to give you an idea of what is going on inside your computer, regarding just one of the multiple processes that are active at that very moment.

Even more crucially: that simplification is put there by the programmer who developed the software that you are using. There are no rules in place to ensure that it gets done, or that it represents truthfully and with precision whatever actual process it is supposed to inform you about.

In other words: With a car, what you see and hear is what really is happening, because that's the way physics always work.
When you use a computer, what you see and what you hear is only what the programmer chooses for you to see and hear.

Unlike the blind man in the back seat, you have ways to improve your situation, though. Ask yourself: What do you need to know to be able to keep up with the programmer? What is it that would help you to perceive consistently and confidently when the behaviour of a computer is not as it should be?
Which knowledge do you need to second-guess the criteria of the programmer in deciding what information you get?

How deep does your understanding of what happens inside a computer need to be, in order to - successfully and consistently - check if what the computer is telling you is close enough to reality to be trusted?

Who do you need to become, to keep up with the programmer?