The Two Things about Computer Programming

by Charles Miller on April 15, 2007

Brett pointed to The Two Things, a page that can be best summed up by quoting:

A few years ago, I was chatting with a stranger in a bar. When I told him I was an economist, he said, “Ah. So… what are the Two Things about economics?”

“Huh?” I cleverly replied.

“You know, the Two Things. For every subject, there are really only two things you really need to know. Everything else is the application of those two things, or just not important.”

“Oh,” I said. “Okay, here are the Two Things about economics. One: Incentives matter. Two: There’s no such thing as a free lunch.”

Ever since that evening, I’ve been playing the Two Things game.

In The Two Things about the Two Things, it's noted that people are unlikely to agree what the two things are, especially when it comes to computing. So I'm going to cheat. Here are my four two by two things:

Computer Programming:

  1. Every problem can be solved by breaking it up into a series of smaller problems.
  2. The computer will always do exactly what you tell it to.

Software Engineering:

  1. Writing the code is the easy part. Writing it so someone else can understand it later is the important part.
  2. Make it work, then make it elegant, then make it fast.

Previously: The Parable of the Watch

Next: Calling All Designers