Something I have been thinking about and is bothering me so I put it on a blog for all to gaze upon my insanity.
There are several ‘levels’ (or ‘Degrees’ if you will) to a software developers coding skill.
Novice; The guy at work who does write software for a living, but he doesn’t; read any blogs, know who or what GOF is, has no idea about any upcoming technologies (relies upon the Experts on his team to inform him), usually is a sports fan, does more activities not involving developement than does. This type is not only ignorant of nearly all aspects of software develoment, other than the minimul to do his job, he seems content in his ignorance – knowing that the Experts will keep him updated as needed for him to do his job.
Expert; The guy at work who does read blogs, is usually looked at as a Geek, spends more time at his computer than not, is the guy the Novice developers listen to for help. This is what I consider myself.
Distinguished; This is the guy the Expert’s listen to. He is a developer who has been recognized by the Experts as someone who is very skilled, knowledgable and a resource for continual good help. This would be along the lines of Hanselman, Haack, Gutherie, etc.
Revered; Developers who are legendary in their contributions or accomplishments. Those who made a profound difference in software development. This level is a small field and usually looked at with great respect by all other developers. Among these would be greats like; Heijlsberg, van Rossum, Ritchie, Torvalds, etc.
The interesting part to me is that (most of the time) arrogance increases by the level. The Expert seems snotty to the Novice, The Distinguished seems snotty to the Expert. But after observing this in the wild I have realized its not arrogance its almost empathy. The higher level realizes that generally speaking the only difference between him and the lower level is dedication. Dedication to spend time learning, to constantly evolve and adapt to the new tools in software development. That or is the disgust that isnt because of some inability of the lower level, but the lack of drive of the lower to reach higher and attempt to increase his skills.
Next time your talking to someone who you perceive is above your level and you get the urge to smack them for being an asshole, take that as a compliment that they recognize that you have skills and ability and that they think you could achieve more.