I am what I refer to as a developer by birth. I have long subscribed to the school of thought that there are two types of software developers currently practicing in our industry, there are those like myself who were born with this gift that allows them to just kind of see the way things fit together, and the reason for wanting to put them together. There are few questions that we do not know the answer to, both professionally and personally, however acting on those answers is entirely different. This group of developers tends to be highly practical individuals, everything follows a flow of logic and even though we may not know every term from every book on the subject we are practically obsessed with the profession that is we eat, sleep, and breathe everything related to development from a mental standpoint whether it really has anything to do with code or not.
Then there are those developers who are trained to do what they do, either officially through the use of post secondary education institutes, or through back room training found in books and practical experience. These developers make slightly less sense to me because it seems that everything is over thought, over analyzed, or just plain too much by the book. These developers are the obsessed type who leave work for the day hoping to read the next book on the subject so they can learn two more terms… even though most of the knowledge they memorize will never be put into place, they know the words to describe what they do not do.
I think the best way to look at the difference between the two is to take a real life situation not related to code in any way. Let’s take the example of changing a tire on a car. The second group will read the owner’s manual to find out where the spare tire is stored, and religiously study the book numerous times before they so much as open the trunk to retrieve the tire. Once all of the possible details are taken into consideration, and everything is mentally mapped out then and only then will they remove the spare tire and begin their task. If they run into a problem they first go back to the book to ensure that this scenario was not covered, than act on whatever knowledge they can to work through the task at hand. The first group of developers however, will pull out the tire, jack, and tire iron; jack the car up; and start beating on the tire with the tire iron until it eventually comes lose. If they run into a problem while changing the tire, it is only a matter of time before their analytical minds discover a solution, no matter how crude or unconventional in nature.
I am not here to say which group is better or worse, I mean I take great pride in belonging to the first group but would never say that someone from the second group is not as good as I am just because they belong to that group… that’s usually something said with proven evidence and countless hours of frustration on my part trying to find the right book for them to read to understand what I am talking about but, I digress. My problem lies with all of the HR focused idiots who rate me not on the quality of my work, not on my ability to solve impossible tasks, and not by my utter love of being a developer… but rather those who rate me based on the last book that I read, the number of fancy terms I can throw out, and finally how smart I sound as opposed to how smart I am. It is truly a sad day today as I realize that how smart I am has nothing to do with what I know, but rather how well I am liked to those HR focused dumbasses that seem to hold their rubber sticks over our progression. I think this is where we have truly failed, by allowing a bunch of rubber stick carrying dictators instruct us on how much we know and my question to them is simple… when was the last time you wrote something?
T.