What are you doing for the next 6 months to be a better developer?

Scott Hanselman posed the open question on his Hanselminutes podcast and there have already been some good responses. My own plan includes:

Improve programming techniques

My girlfriend gave me the well-regarded Code Complete, Second Editionfor my birthday. I shall read it cover to cover and adopt good practices I am not currently practicing.

Manage my life

I have started reading GrinGod’s copy of Getting Things Done: The Art of Stress-Free Productivity. I will move tasks out of my head and concentrate on what is achievable right now.

I have set-up these tasks now in Midnight Inbox (great but a little rough) and will keep an eye on OmniFocus. I will be prepared to use my free Moleskine I won in the Moleskinerie summer draw if neither does the job and not immediately write my own software.

Interact with other developers

My Subversion talk at the Guernsey Software Developers Forum went well. I will seek new members and engage in discussions of development with regards to local issues such as those in the finance industry.

I will spend less time on IRC as it is distracting and the non-persistent nature means good answers are lost. Instead I will help more on forums and be prepared to wait for answers to my own questions.

Learn new technologies

I will investigate technologies and learn them where they appear applicable to my work or I find personally interesting. These include:

  • Ruby on Rails – clean MVC development with AJAX support… but what about libraries and performance?
  • LINQ – simple but powerful object-relational mapping as standard but far away in .NET 3.5
  • Cocoa – Apple’s OS X development based around Objective-C giving compilation and dynamic typing
  • MonoRail – if I’m going to continue with ASP.NET it won’t be with WebForms
  • SharpDevelop – the Visual Studio API is terrible and this project looks well designed and usable

Contribute more to open source

I will contribute more to my favorite open source projects. This includes:

  • AnkhSVN – improve user interface and head up the 1.1 release
  • SubSonic – refactor more code and help out where I can

Lead development at work

At my new job I will concentrate on the new technology and vision for the next-generation of tools to deliver to our staff and customers and lead my team as appropriate.

I will distill my experience contracting for the last 7 years into the best practices for the company and continue to lead them in adopting modern practices. We now have have source control, formalized request for change and release management procedures however we still need to embrace new tools, write comprehensive unit tests and switch to object-relational mapping for new development.

Switch key-map to Dvorak

I have swapped out my DAS 2 at work for my Apple Pro with the key caps rearranged for Dvorak. I will stick to this layout until I can properly touch-type. I won’t actually make me a better developer but it should keep RSI at bay. (This post was written using Dvorak)

[)amien

6 responses

  1. Avatar for steve

    I totally agree on the IRC side. It's nice sometimes to have immediate feedback, but forums and wikis are so much better as a support mechanism by nature of them being persistent, searchable and refineable.

    Code Complete is a great book - it's the book I referred all my less experienced trainees at work to. You'll find a lot in there you already know since you've been around a while, but it's nice to have it all condensed into a best-practice volume.

    It's funny hearing you talk about tools and procedures, when I was at SSD I found people in the private sector tended to look down on government IT by nature, but we had source control, change management procedures and systems to track deployment right back on the old mainframes when I first started in the early 90's (although I did write a few extra tools to help automate some processes), and I'm constantly shocked and horrified how many commercial outfits don't have such basic things in place. I remember losing my rag at a meeting with a local software provider (who shall remain nameless) who were bidding for work when it became clear just how disorganised and shambolic their organisation was.

    steve 19 July 2007
  2. Avatar for Rik Hemsley

    Yes, the requests-per-second performance of Ruby on Rails is low compared to other available platforms, but, as you probably already guessed, this isn't necessarily important or even noticeable for many applications.

    Looking forward to hearing how your switch to ORM goes!

    Rik Hemsley 19 July 2007
  3. Avatar for Damien Guard

    Updated the post just to clarify I have a new job and am putting all these practices into place based on my experience contracting over the last 7 years.

    Hope I still get something out of Code Complete.

    Damien Guard 19 July 2007
  4. Avatar for Andrew Donaldson

    Cool Damien.

    To be honest, I don't have a formal plan like this, though I do tend to get itchy once a year and try to learn a new language.

    More often than not, a quick foray into one computer based hobby ends out in playing more with the programming languages behind it (WoW/Lua, Blender3d/Python, Processing/java).

    The Dvorak thing is really interesting though and was something I was keen to look into. I've heard a good technique for learning it was not to remap your keys, but to simply print out the keyboard mapping and stick it to your screen -- you're not meant to be looking at your keys anyway :)

    For all of these tasks you've set yourself though, you need to think about measurement. How else can you tell if they're making an improvement or not?

    Andrew Donaldson 19 July 2007
  5. Avatar for Goldsacs

    Well here's what I am going to do... damn you and your making me think ;-)
    So much so that it got me to update my blog

    Goldsacs 29 July 2007
  6. Avatar for efile

    To be honest, I don't have a formal plan like this, though I do tend to get itchy once a year and try to learn a new language.

    More often than not, a quick foray into one computer based hobby ends out in playing more with the programming languages behind it (WoW/Lua, Blender3d/Python, Processing/java).

    The Dvorak thing is really interesting though and was something I was keen to look into. I've heard a good technique for learning it was not to remap your keys, but to simply print out the keyboard mapping and stick it to your screen -- you're not meant to be looking at your keys anyway :)

    For all of these tasks you've set yourself though, you need to think about measurement. How else can you tell if they're making an improvement or not?

    efile 25 December 2008