The Truth about Being a Programmer

Posted: August 11, 2013 in Clean Code, Development General

Recently I read a blog post that discusses the differences between a programmer and a developer. After reading the first couple of paragraphs my first reaction was to think that I consider myself to be a programmer but, because of all the “inherent characteristics” that programmers must have, according to this definition, this thought was very short lived.

The first characteristic that is discussed about programmers is that they love to write code. Well, this is something that it is very easy to feel identified with. Not very many people who write code for a living do so without loving it, and those who do usually move on to other things in a relatively short while. Personally I love to write code and I am never satisfied with the end result, no matter how much work I put into it, I always have this nagging feeling that there are ways to improve it. I will confess that sometimes after the writing is done I stare at the overall solution and marvel at a piece of code that is elegant, simple to understand, easy to maintain, fully testable and, to a reasonable extent, covered in unit tests. Even though that, I still get the feeling that I could improve the work further but that does not mean I sometimes do come up with code that is still beautiful, even if I say so myself, and these characteristics that have been mentioned are my definition of beautiful code. Up until this moment I still complied with this definition of programmer.

The second characteristic is that a programmer writes code just for the mere pleasure of it, even if that code does not fulfill any particular need other than programmer’s needs. Even this makes perfect sense to me since we, as programmers, by writing code just for the sake of it we keep sharp, enhance our skills, feed our curiosity and encourage the everlasting search of the best way to implement something. How often do you just happen to be writing some random code and realize that what you are implementing, or the way you are implementing it, could be used to improve some code you wrote a while back or that it solves the problem in which you are currently working on? I bet this has happen more than once to you. This overall idea still made sense in making me put myself in the “programmer club”.

The next trait that a programmer has, according to the author, is that she knows how her code works so she does not need to write tests at all since she knows where the code might break and she knows how to avoid it. Wait a second, WHAT?! Are you serious? Are you trying to tell me that this is a trait and something to be proud of? Hell, no! Of course any programmer, or coder for that matter, can write code without tests, just like any manufacturer of any product you can think of can manufacture said product without any kind of quality assurance process and still every single manufacturing plant in the world ensures that their products comply with a minimum quality standard. In my book, anybody who aspires to have the noble title of programmer should go out of her way to make sure her code has a minimum code coverage that ensures that said code does what she intends it to do. Even if it is just an exercise, a kata, research something or an excuse to hang out with the computer and forget about society for a while.

So I kept reading and I got to the part where, as a programmer, the author would rather be in his study coding day and night without talking to anybody and having nobody talking to him and be able not to attend any meetings. So he says that real programmers are like geeky theoretical physicist locked up in university labs and who alienate themselves from all human beings. Wait, I’ve seen this before, oh yeah, right! He thinks programmers should be like Sheldon Cooper from The Big Bang Theory! Jokes aside, there are quite a few things to say about this but that will be on a later post.

Honestly this kind of stereotypical description of what a programmer should be is so 1980’s that I am very concerned that there may be a lot of people out there who still believe it. People who think they are doing Agile but in reality they are still doing waterfall with daily stand up meetings, people who claim to be professional programmers and in reality are just cowboy coders putting a huge amount of spaghetti code together that only they can change, and even then they cause a lot of regression errors in the process which they solve by entangling the spaghetti even more. There even is still people who refuses to learn the necessary techniques to go into these kind of messes and start to improve them even though there is a lot of literature available that discusses which techniques are those and how to apply them like this one and this one.

Seriously if you want to be called a programmer instead of a developer like the author of this blog suggests that is fantastic, but embrace the modern definition of it, learn, acquire, and apply the right set of skills and, most importantly, develop the right attitude required for the job, forget about this old school mombo-jumbo and become a proud professional programmer.

Advertisements

Does this make sense to you?

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s