Every now and then we read on DotNetKicks and on other sites, a blogger explaining how to become a great software developer, or a post listing the properties required from a good engineer. Many of these posts lack a certain amount of credibility: somehow the writers always seem to find within themselves the qualities required from the skilled professional.
I would venture taking a different approach: a search for the qualities I do not possess, for missing characteristics or behaviors which can make me a better developer.
One thing I’ve found after considering the matter is a slight lack of competitiveness. I believe I’ll be able to improve if I’ll have an after-work project with a strong reference group: few people working simultaneously trying to achieve a common goal, can make each one strive harder and accomplish more. Team-work, mutual fertilizing criticism, publishing one’s work, and a healthy amount of competitiveness, may encourage creativity, push towards harvesting new technologies, and broadens one’s horizons and skills. An example for such an activity can be participating in Microsoft’s Open Up competition - an open-source competition arranged by Microsoft Israel.
Well, this was my take on how to become a better software developer. It doesn’t necessary mean an after-work project or participating in a contest. Instead it involves sincere contemplation on what can make you a better developer, and what good qualities you lack. Emphasizing on the qualities one possess, and locating the good properties within oneself, may lead to stagnation and eventually to decline.
So, how can you get better?