Becoming

Taken by http://www.flickr.com/photos/simonov/Because I’ve been working to develop myself as a professional software engineer, I recently read Designing Learning by by Andy Hunt and Dave Thomas, the authors of The Pragmatic Programmer. It inspired me to go a little further and write down a specific plan for the things I want to learn and how I’ll learn them. Then I noticed that the meme has been making its way around the blogosphere. Ok, now I feel like a copycat. That’s out of the loop. Ah well. I’ll be documenting my plan and how well I follow it here on this blog. I’ll also be using the blog to record things I learn and my thoughts about them.

Just for background, here’s a bit about my current state as a developer. While, I don’t consider myself a great developer, I do want to improve more than most of those I know. At work I code in C++ and do some powershell scripting.

After brainstorming, I’ve decided that the areas where I would like to focus my learning are:


  • .NET framework and C#

  • TDD and unit testing

  • Software classics - CS theory and software engineering especially

  • MicroISV and software entrepreneurship

  • Automating everything

  • Other programming languages, such as Erlang

  • Regular reading of journals and magazines, such as Dr. Dobbs


I will be using the following proven techniques to learn:

  • Reading (includes watching presentations)

  • Writing

  • Projects

  • Experiments

  • Discussion with others


So I’ve chosen 5 specific things to do that include a mix of the things I want to learn and the techniques for learning.

  1. Project: Write unit tests for EGX, begin TDD, avoid Mocks

  2. Read one article, book chapter, etc per day (at work or on commute)

  3. Write about what I’ve read about on blog, even if it’s just a link and a note

  4. Experiment: Spend a day thinking about every activity I do, and how it could be automated

  5. Discussion: After reading an article or two, talk to David about starting a MicroISV


And to make sure it happens, I’ll do the following in the next few weeks:

  1. Do an hour of EGX development on each driving day of my vacation

  2. List chapter, article, etc. to read on Joe’s Goals each morning

  3. Joe’s Goals checkbox for writing about reading

  4. Spend tomorrow considering how I could automate everything I do

  5. Find some MicroISV articles to read on vacation, forward to David