This week I started the evaluations for the programmers that I manage. As part of that process, we have them do Professional Development goals that they need to complete every quarter. I believe that everyone should be doing some type of learning about their craft. Not only does it improve your current work place but it opens up new opportunities for future employment. Our Professional Development comprises of three pieces:

  1. Book
  2. Online Video/Course
  3. “Teachable Moment”

1. Book

It seems a little crazy to have people reading books in the age of the Internet where tutorials for every possible technology are online. But books provide a valuable service. They form a collection of all the information the author thinks you need about a topic. They allow you to read them through at your leisure even in places where reading from a computer would be looked down on (take off/landing) and it’s easier on my eyes. The idea is to pick a book you’ve never read on a topic you’re interested in or might help our development process and/or business.

Generally, everyone reads their own book on their own time line and then submits a few notes about what they learned (this keeps people honest). This quarter we’re having everyone read the same book and then we’re discussing it in a Google Group (that way when we add new employees they can go through the same book and see what other people said).

2. Online Video/Course

Again, the idea here is to pick a topic that is of interest to the person and give a little report about what they’ve learned. I’m looking for more of a broad overview of a technology so they can know it exists and what it’s good for (FLOSS Weekly, The Hanselminutes Podcast, and Three Devs and a Maybe are a good source of broad technology exposure).

3. “Teachable Moment”

In on the job training there’s this idea of “See One, Do One, Teach One”. The though is that you see someone do a task, then you do it, and finally you teach someone else how to do the task. The hope is that by the time you’ve reached “Teach One” you understand what’s going on enough to answer any questions.

I wanted to take this concept into our group as “I ran into this problem”, “I fixed it”, and “here’s how I did it”. I feel like a lot of the time we fix problems on our own but don’t related that information back to our group so everyone learns. This puts an incentive to bring that knowledge back to the group.

My Personal Goals

To prove I’m “willing to do anything I ask of people”, I’m going to be making the same goals here. Every quarter I’ll discuss what I learned in a book, what I learned in an online course, and I would argue most of my blog posts are “teachable moments” so as long as I keep creating them I’ll count that. I’ll announce my book picks in advance (on Twitter and Facebook so you can read them too if you’re interested.

The books I’ve picked are:

  1. Working Effectively With Legacy Code (Write Up)
  2. The Pragmatic Programmer: From Journeyman to Master
  3. Clean Code: A Handbook of Agile Software Craftsmanship
  4. Refactoring: Improving the Design of Existing Code

I’m still on the lookout for videos/courses but I have a list of them saved in my bookmarks that I can start looking through. I’ll be posting the parts I found interesting on this site for everyone to enjoy but feel free to read them along with me.