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?
Saturday, June 2, 2007
Tuesday, May 29, 2007
Adventures of a Programmer: You're a Programmer!?!
When I tell people that I am a programmer, I usually get "the look". Programmers know the one I mean. The look that reflects the uninitiated's memory of The Matrix, Hackers, Bait, and Swordfish. They have no concept of what either a hacker or a programmer is. To them, they are the same thing: people typing arcane incantations on the screen that makes the computer do stuff.
Following "the look", I get "the question". Again, programmers (and hackers) know the one I mean. "Can you hack into (insert insane and illegal request here) for me?"
The answer I always give:"No, that would be illegal and I don't know how to do that."
Let's explore the differences between hackers and programmers.
Definition:
Hacker: A person who enjoys exploring the details of computers and how to stretch their capabilities. A malicious or inquisitive meddler who tries to discover information by poking around. A person who enjoys learning the details of programming systems and how to stretch their capabilities, as opposed to most users who prefer to learn on the minimum necessary. (http://www.tsl.state.tx.us/ld/pubs/compsecurity/glossary.html)
Programmer: A programmer is a person who masters software engineering and writes source code in the course of software development. In language-oriented development, the programmer has to learn the details of the domain to be able to write a direct solution. In domain-oriented development, the programmer writes code for a generator instead of a direct solution. (http://intentsoft.com/technology/glossary.html)
Computer languages:
Real hackers usually learn several very different languages, mostly open source.
Programmers usually specialize in one or two related languages. These languages can be open source or proprietary.
Intent :
Hackers want freedom of information. They use their skills to find information and make it public stating a right to know.
Programmers are about protecting their information from hackers. They use the best security methods at their disposal to protect a client's information from unauthorized access.
Diet: No difference. Mountain Dew, coffee, Pop-tarts, and pizza.
Views on "suits": No difference. Both view upper management with a degree of contempt.
Following "the look", I get "the question". Again, programmers (and hackers) know the one I mean. "Can you hack into (insert insane and illegal request here) for me?"
The answer I always give:"No, that would be illegal and I don't know how to do that."
Let's explore the differences between hackers and programmers.
Definition:
Computer languages:
Intent :
Diet: No difference. Mountain Dew, coffee, Pop-tarts, and pizza.
Views on "suits": No difference. Both view upper management with a degree of contempt.
Monday, May 28, 2007
Adventures of a Programmer: Initial Post
Hey everyone! I have started this blog as a kind of therapy to help with the stress of my job. As any programmer knows, our jobs can be very demanding and we sometimes wish we had taken a different path. This does not mean that we hate our jobs. It means we don't like the stuff that we have to put up with to do our jobs.
A list of things we could do without:
There are other things I don't like about my job, but these are the things I like the least. That does not mean I don't like my job in general. I love the fact that I am getting paid to write code. I spent years doing it for free and I would still be doing it for free if I didn't have this job.
I love my job.
Subscribe to:
Posts (Atom)