I've been following @chadfowler for some time now on twitter. When I started following him, I was basically rolling through the follow lists of some programmers I respect and spammed him to my list. Honestly, I was not aware that he had written The Passionate Programmer. The other day, he asked the interwebs to post a review of his book on amazon, if you had read it. Since it finally clicked in my head at that moment (chad fowler + book I've heard of), I decided to start reading his book.
At this point, I'm only two sections through a 5 section book, so almost halfway. Already I've caught myself agreeing with and finding parallels of his ideas in my work life (also, being a wannabe guitarist, I enjoy the struggling musician analogies.).
Chad talks a lot about practicing the saxophone in his down time in order to perform to his highest potential on stage. Think about how many creative professions do the same; painters, authors, actors, musicians, martial artists, the list goes on. As a profession, software developers seem to practice on the job. Of course the job, whether we realize it or not, is constantly teaching us, but what do *you* as a developer do in your off time to hone your craft? This question may not apply to a will-code-for-food developer, but someone truly dedicated to the craft, that isn't happy with 'good enough,' needs more of a mental work-out then meeting the requirements of the current hot project.
I know a lot of you contribute to non-work projects in your own time, as do I, possibly your own pet projects or open source initiatives. Granted, this programming is further extending your skill, probably more-so then your paid-for job creation (I tend to work on side projects I'm truly interested in, not everyone gets the chance to choose the domain for the software they create at work). I read books on the craft, about designing and creating software, about new languages and I try to apply this to the code I write. Reflecting back, however, I'm not sure I've ever truly "practiced" coding, in the sense a musician practices an instrument; writing and discarding (maybe I would keep it, the point is, it's not bound for some distant land of production) for the sole purpose of improving my skills, yo.
Chad mentions in his book (and I have seen many references to the practice as well, most notably from @unclebobmartin) exercises such as Code Katas. I'm going to try to get a few of these under my belt over the next few weeks. We'll see how that effects the ol' coding chops. I'll report back on my progress.
News Post: The Third Sword
8 hours ago