Let’s start out with the definition of a programmer.
pro•gram•mer [proh-gram-er] noun
- a person who writes computer programs; a person who programs a device, especially a computer.
- a person who prepares program schedules, as for radio or television.
- a person who prepares instructional programs.
The latter two definitions aren’t really relevant in this context. The first is the one I want to talk about. A person who writes computer programs is what I am. That doesn’t quite cover it though. I like to call myself a software developer, because I’m not coding day in, day out. Most of the time I solve problems. Some problems are simple and others need a bit more thought. For example, instead of programming, I first find the right tool for the job. That makes sense, but how often does it happen someone picks something they have experience with, without looking at the options?
In my experience there are two types of coders, although a person can have properties of both types. Nevertheless, one is usually dominant.
First we have ones that get a bunch certifications and say they can program. Surely they can, but when it comes to thinking of proper solutions to the more advanced problems they usually need some assistance. These are the real programmers. Usually they are super productive and very fast in delivering, however their code might be buggy and/or sloppy.
The second type of coder is the thinker. They are generally quick learners and ask lots of questions. They try to find to most stable, scalable and flexible solution to a problem. Often they overdo it, taking too much time or using something that is too advanced for the problem at hand. However when they deliver it is thoroughly tested and well organised. These are the developers or architects.
I think there is room for both types in this era. An era where computers become more important every day. However I think the amount of real programmers is significantly larger than the amount of real developers. Personally I find that the biggest problem. It stands in the way of progress. The programmer codes something crappy; the boss finds out the hard way; the developer is hired to clean that mess up. So programmers, please make an effort, educate yourself and always work towards the best possible outcome. Become that developer.
The bigger corporations would agree with me when I look at Code.org. That video that they made really made me laugh though. I can appreciate the efforts of Mark Zuckerberg and Bill Gates, since they are actual developers. But then will.i.am... really? He is taking coding classes apparently. How very inspiring. They should have had Linus Torvalds. Then again, the video is a bunch of corporate propaganda.
So I find being called a programmer or coder a bit offensive now that I have thought about it. Still most people have no clue there is a difference and maybe I’m just making this up. But it is how I observe it and every time someone calls me that, it reminds me I’m not a rockstar.