Geeks With Blogs
Caffeinated Coder A Grande, Triple Shot, Non-Fat Core Dump by Russell Ball

I just heard about Justice Gray's blog challenge from the latest episode of Hanselminutes while running today. Although I think his plan to read one developer book a week for the next six months is rather insane, I agree with the premise that setting specific goals publicly is probably the best way to hold yourself accountable. Here are my goals for the next 6 months:

Add Tools to my Developer Toolbox - My productivity and troubleshooting skills would plummet if I were to suddenly stop using utilities like FileMon, RegMon, Fiddler, ProcessExplorer, TestDriven.NET, MSBuild, SQLPrompt, SQL Profiler, WinKey, and Lutz's Reflector. In the next six months I am going to learn to use Resharper, NDepend, Roy Osherove's Regulator, and a good packet sniffer (not sure which one yet).

Become an Avid Code Reader - Writers are commonly given the advice to read good books in order to become a better writer and I think the same holds true for developers and code. Unfortunately, it is easy to get caught up in only writing code or only reading a small subset of internal code that you are stuck supporting. I have my eye on several open source projects that I'd like to spelunk in the near future, including the Rotor implementation of the .NET framework, SubText, DasBlog, RSS Bandit, NHibernate, Rhino.Mocks, and WatiN. I also plan to use Reflector more often to decompile .NET assemblies and figure out how .NET framework and how other third party, non-open source .NET utilities work.

Step outside of my MS-OOP comfort zone - My big goal is to get through the Ruby For Rails book that has been sitting on my shelf for the last six months so I can see why there are so many Ruby fanatics and why dynamic languages in general are becoming so popular that even Microsoft has jumped on the bandwagon (Lamda Expressions, the DLR, IronPython, IronRuby, etc.). I am also interested in learning more about the various Castle projects, especially the Windsor Container which is supposed to help enforce the IoC (Inversion of Control) design principle that helps remove complexity and increase testability by parameterizing embedded dependencies. I would also like to install Ubuntu on a VM so I can see what the Linux OS looks like these days as well as make my way through an F# tutorial so I can break away from my OOP bias and understand the functional language perspective. Finally, I want to experiment with Boo, a CLI language that is a hybrid of Python, Ruby, and C#.

Become a Better Developer Community Citizen-  I've already taken steps in that direction this year by becoming more tuned in to the blogger community, starting this blog, attending local .NET user group meetings, and even agreeing to speak on Powershell at the next Topeka .NET User Group meeting. What I would really like to do in the next six months is to start contributing code to an open source project. I'm open to suggestions at this point...

Push Myself Lower and Higher on the Abstraction Stack - From a productivity standpoint, I think it is crucial at this evolutionary stage of the software industry to figure out ways to avoid writing tedious boilerplate and plumbing code by utilizing higher level abstraction tools as much as possible such as code generators (CodeSmith) and ORM tools (NHibernate). Conversely, I also plan on filling in some gaps in my own understanding by dropping lower on the abstraction stack and finishing a MASM Assembler tutorial I downloaded a while ago.

I am not going to create a firm schedule for these goals like Justice Gray did because I am much more productive when I let natural curiosity determine the sequence of learning. However, I am going to commit to writing at least one post on each of the following topics over the next 6 months:

  • Resharper
  • NDepend
  • Regulator
  • Packet Sniffer
  • Impressions on the source code from at least one open source project
  • Ruby On Rails
  • F#
  • Ubuntu
  • Anouncement of which open source project I joined
  • NHibernate
  • Windsor Container
  • CodeSmith
  • Assembly

Whew, maybe I should have just agreed to read one book week too...

Posted on Sunday, July 15, 2007 9:52 AM Becoming A Better Developer | Back to top

Comments on this post: My Six Month Roadmap to Becoming a Better Developer

# re: My Six Month Roadmap to Becoming a Better Developer
Requesting Gravatar...
Oh, and buy a Mac.
Left by Dewayne Christensen on Jul 15, 2007 1:21 PM

# re: My Six Month Roadmap to Becoming a Better Developer
Requesting Gravatar... wife may hear you. She's starting to sucummb to the reality distortion field and making subtle hints that she would like to get a Mac laptop...Seriously, I started out with a Mac back in the 90's but left it behind when I figured out that it was a lot more expensive and had a lot less software available for it than PC's. For better or worse, I haven't even looked at one since then. As a big Mac fanboy and one of the smartest developers I know, what makes a Mac so much better? Just curious...
Left by Russell Ball on Jul 16, 2007 7:13 AM

# re: My Six Month Roadmap to Becoming a Better Developer
Requesting Gravatar...
That's great that you're jumping in on the program, but you forgot one key step. You need to tag 4 others and get them inspired to accept the same challenge. So go jump start some other developers you know and get them moving on the path with you.

Good luck in meeting your goals and welcome to the brotherhood of better developers!
Left by George on Jul 16, 2007 8:33 AM

# re: My Six Month Roadmap to Becoming a Better Developer
Requesting Gravatar...
Regulator is a good product! I have used that in the past, but now mostly I don't do as much with regular expressions. Oh the power of the regex!
Left by Robz on Jul 24, 2007 11:06 PM

# re: My Six Month Roadmap to Becoming a Better Developer
Requesting Gravatar...
I agree with the buying a Mac sentiment!! If nothing else, you will have earned my undying respect!!
Left by Justice~! on Aug 14, 2007 1:03 PM

Your comment:
 (will show your gravatar)

Copyright © Russell Ball | Powered by: