I’m a fan of Jeff Atwoods Coding Horror blog. He does not just blog about technology, he also includes good information about the best practices and overall philosophies of being a software developer. A great example is this post about the two types of programmers in the world. If you didn’t read it please take a few minutes to read through it before continuing on.
I’d like to think that I’m in that top 20%, but in reality I’m probably in the top 20% of the 80% group Jeff describes. I love coding, but I also enjoy many other things like spending time with family and friends. Being the father of two children under the age of 5 (and another expected soon) when I get home it’s time to be a dad not a coder. I also enjoy watching sports (This is my reality TV), playing sport, playing video games and generally getting out and enjoying life. So, I rarely code on the weekend for fun. I do it every now and then just to keep up with the latest and greatest .Net releases but it’s few and far between.
Right now your probably thinking who cares? The reason I mention all this is that I believe just like the phases of the software development lifecycle, we as software developers also go through a ‘lifecycle’. When I was fresh out of college I was all about the latest and greatest technology and spend much of my free time coding and researching. I even took a weekend crash course in .Net 1.0 beta that took up my every weekend for 2 months. It was fun. At this point I was in the top 20%.
However, once I got a family my free time diminished and I took a corporate job that allowed me to put in my 40 hrs a week and go home to my family. At this point I fell into the 80% range. Not that there is anything wrong with that. That is where I was at in the Software Developer Lifecycle.
Now, my kids are getting a bit a older and I’ve gotten back into the realm of consulting which gives me more flexible hours to ‘play’ with technology. I’m trying to get back into the top 20%.
The moral of this post is depending on your life priorities you might have to change your perspective on the kind of developer you are. Just like in the Software Development Lifecycle, you might have to drop into maintenance mode for awhile. Then once your priorities change, you can add new features to your career or start back over at requirement gathering…