As professionals we should, for the most part, find ourselves in a perpetual state of learning. It is when this trend of a ferocity for consuming knowledge subsides that we find ourselves bordering on mediocrity and threatening to fade away into the abyss of the typical. As a junior, mid and senior level developer I was constantly reading. Looking back I now wish that I had, at times, chosen different content, however I still give myself kudos for reading something.
As part of the shift from a mid level engineer to a senior one I began taking part in interviews, a process that has left me confounded at the masses of software engineers that consider themselves to be senior level but are anything but. My wife has mastered the lingo and many of the buzz words of the industry simply from being around me for my years of service to the software industry. However, the difference between my wife and many buzzword slinging prospects is that my wife will openly admit where her knowledge is lacking. Job candidates, however, often do not. I am continually astounded when I ask a “senior” level engineer for a couple books they have read only to find that Sam’s Learn [LANGUAGE] in [TIMEFRAME] is the front runner in their literary portfolio. I must admit I have read some of these books and I actually think they have their niche in which they provide benefit, however you will never hear me mention them in line with Design Patterns: Elements of Reusable Object-Oriented Software, Refactoring: Improving the Design of Existing Code, or Effective Java.
I like to consider myself a very good software engineer – I study hard, I try and stay abreast of the industry, I practice hard and learn from my mistakes, and I pay attention to those who I have recently seen dubbed as software “rock stars”, people like Joshua Bloch and Martin Fowler. It pains me to see such a high number of software engineers that expect the longevity of their career to dictate both their status in the field and the quality of their output, as this expectation is a fallacy in its purest form. I have worked with many individuals who possessed unbounded potential but refused to apply themselves. Likewise I have worked with many whom have had unbounded potential and have applied themselves, many of which I expect to some day see in that ever expanding “rock star” clique.
The point here is simple. Those who read and apply themselves will, talent willing, find themselves moving into the upper echelon of the software world. Those who don’t are destined to remain followers of the software elite. Don’t believe me? Check out The Mythical Man Month and pay close attention to the emphasis that Brooks continually places on the programming elite.
Of course the true irony of this post is that the intended audience is unlikely to ever read it.