Perhaps the most important thing my father taught me is that everything is my fault.

My father, along with being a cardiac anesthesiologist, is a programmer. And programmers understand that computers are almost never wrong. 99% of the time, they do exactly what you tell them to do. It’s just that you’re not telling them what you think you are.

The trouble is that computer programs don’t interpret. It’s like that short story, The Monkey’s Paw. If you haven’t read it, click that link now because I’m about to spoil it for you.

The paw grants wishes. A family wishes to be rich, their son dies, and they get a ton of money from his life insurance.

Code functions exactly like the Monkey’s Paw. It does what you ask it to. In the simplest, most expedient terms. Which are always correct. It’s just (in my case) rarely what you intend for it to do.

I bring all this up because I’ve begun to explore programming a bit. And all I hear in my head, over and over again, is my father saying “It’s not the program’s fault. You’re not asking correctly.”

An example:

I wanted to make a ball bounce off a wall. So I did the following:

I drew a long black rectangle to make a wall.
Then I drew a small red circle to make a ball.
I told the program the circle would move forward at a set speed, and to bounce if it hits a solid object.
Then I executed the program and watched as the ball sailed right through the wall without stopping or bouncing.

I’ll take a few seconds to hum the Jeopardy theme while you look through that paragraph again for the mistake I made.

Answer: I forgot to tell the program the wall was a ‘solid object’. So it did exactly what I told it to do. It moved the circle right past the incorporeal rectangle and out the side of the screen.