Saturday, June 2, 2007

Adventures of a Programmer: What is a Programmer?

I recently found myself asking this question. Is a programmer just someone who writes programs, or is there a better definition? I thought a great deal about it, and came up with some answers that satisfy me.

A programmer does write (hopefully good) code. But this is not all a programmer is.

A programmer is also a problem solver. When a client comes to me with a situation or concern, it is up to me to find the solution. That is why (at least in my opinion) that Visual Studio calls new applications "solutions".

A programmer is a detective. A good programmer is able to detach himself from the machine and get to the real meaning behind project proposals. When a client asks me to write an application to solve a particular problem, the problem may not actually be the real problem. Ask why they need this particular utility. Keep asking "why" until you get to the root of the problem.

A programmer is a translator. I have to take the project specifications and craft a solution that meets the specifications. However, if I just follow the specs, I will deliver a solution that is technically correct, but unacceptable. It always comes down to the infamous statement: "Yes, that is what I asked for, but what I meant was (fill in the blank)".

These are just a few of the hats a programmer must wear. What do you think?