When I recently read a short post called The Two Things about Computer Programming I found the concept intriguing; namely that everything has two things that are truly important and everything else is a subset of those things or not really important.

After a short eplanation of The Two Things Concept he then goes on to explain what he feels the two things (or rather 2 times 2 things) are for computer programming, but alas, I disagree. While they are important, they are not the most important.

Here is what I think the two things for computer programming really are:

  • Every programmer is a logician
  • Every progammer must regularly check his or her logic

I’ll explain, first, programmers by necessity must solve problems all day long, one step at a time, telling the computer exactly what to do. We must logically work through every problem we need to have the computer do, and then we need to know how to tell the computer how to do it.

In addition to this, if we forget a step, or don’t think about the consequences of running a loop, or try to add a number to a string… well weird things happen. And that doesn’t even mention the fact that the tools (languages, IDEs, APIs, ect.) we use are constantly changing and there is ever a new way to think through a problem.

What are your two things about Computer Programming?