What goals did I set myself last year?
1) Publish a blog entry or video that explains monads, teach someone at
work how to use them.
I've not done this, I think I understand monads, but I'm looking for someone who knows more than me to confirm I've got it right.
2) Contribute to an open source project related to the arduino.
I didn't do this, I spent the first 3 months playing with the arduino before I moved on to other things. I designed a simple messaging system in google app engine, and then my interest in the arduino tailed off. I could open the source for this, might be an interesting idea.
3) Finish one of my articles and submit it to some publishers for
consideration to publish.
Not really sure what I meant by this. But I spoke at two conferences this year.
What else did I achieve in 2011?
Touch Typing
I commited myself to learning to touch type during the year. Thanks to a lot of support from others and from a wide range of freely available tools I'm now typing comfortably above 50WPM - and hoping this will increase as I continue practising - All my blog posts are now proudly touch typed!
Test Driven Development
I started work on a new product this year at work, and from the offset everyone on the team was encouraged to do TDD. We're ending the year with the product deployed with 80% test coverage - not perfect but not bad. We've also written our own automated acceptance test suite, which tests all of the things that are above the level of our unit test. We don't yet have a way of measuring test coverage here but it seems reasonable that including the automated suite will push our actual coverage above 80%.
Functional Programming
I've played with functional programming at various point in the year. The end of the year has seen me focus more on clojure, and all that lisp languages offer, but Haskell is still there in the background. I need to get some experience building medium sized applications in Clojure or Haskell to increase my confidence
Emacs & Vim
This year I added Emacs and Vim to my list of editors I am comfortable with. I think I'm more on the side of sticking with emacs. But time will tell.
Summary
I think it's clear that I deviated from my goals in some pretty dramatic ways. Looks like I need to examine my priorities more often.
Plans for 2012
Programming in Schools (Codemanship Teacher-Practitioner Exchange)
Help teach Ryan enough stuff so he can teach a class in programming.
Back to Basics: Algorithms and Data Strucutres
It's become clear this year that this is an area of my knowledge that needs some attention. I've signed up to Tim Roughgarden's
Design and Analysis of Algorithms Course By the end of the year I need to have blogged at least once about and algorithm and once about a data structure.
Functional Programming in Clojure
By the end of the year I need to be comfortable enough to do a project in clojure.
DSLs
I need to have written a dsl and use it for something.
Review the Retrospective
I should review this post half way throught the year and update if needed.