Sponsored By Aspose - File Format APIs for .NET

Aspose are the market leader of .NET APIs for file business formats – natively work with DOCX, XLSX, PPT, PDF, MSG, MPP, images formats and many more!

2009 – A Year of Learning (so far)

I spend a lot of time learning. I read a lot, work on small projects that let me experiment, and blog (which is probably the best way to learn). I don’t see how you can be effective or successful in the long run without a serious commitment to learning. Uncle Bob says it well:

“I think that maintaining your technical chops is a full time job. For that reason I have avoided becoming a business wonk. I hire people to do that for me so I can keep my technical skills as sharp as possible and remain relevant to my profession. I don’t believe I can offer technical advice unless I am living that technical advice.”

What I find most interesting is that I’m becoming a better learner. I’ve always been very eager to improve, but not always effective at it. I’m much better now at filtering through the high noise to signal ratio. A lot of the big sites/blogs I followed years ago are now completely off my radar – too much marketing, too much self promotion, too little focus on craftsmanship and quality. I’ve also found twitter to be an indispensable tool for picking up on new trends and to see what others are working on/with.

Off the top of my head, here are some of the things I’ve learnt recently (mix of design and tools):

  • I’ve refined my knowledge of DI and am slowly becoming a Ninject ninja,
  • I finally feel like I’m writing effective unit tests (that was a long road), and I’m hooked on XUnit,
  • I understand the difference between mocks and stubs, dynamics and stricts, and mock less code but do so more effectively,
  • I’m starting my 3rd project with NHibernate and (finally) feel comfortable enough to blog/present on it,
  • I’ve using FluentNhibernate for a new project, and leveraging NHProf (as of last Friday =] ),
  • I’m starting my 2nd full ASP.NET MVC project, it’s amazing how much cleaner things are now, thanks to past failures (by me and others) and better tooling,
  • I continue to build small projects in PHP,
  • I’m slowly learning Python,
  • I’m using a Mac and making sure I don’t forget how to configure apache, use vi and write little bash crons
  • I have Android on my radar

What interesting tools/design/framework are you learning?

This entry was posted in Uncategorized. Bookmark the permalink. Follow any comments here with the RSS feed for this post.

25 Responses to 2009 – A Year of Learning (so far)

  1. it is continuous process, which never end.

  2. Jan says:

    Something I don’t see being addressed that often – When you say you read a lot, is that on your own time, or do you actually spend time at work reading? I think spending time at work reading & learning is justifiable, although not always easy.

  3. Andrew says:

    I find that every time I start doing TDD, I end up drifting back to Test After Develpment, so my big goal is to stick to TDD for an entire project. Throw in some ASP.NET MVC and JQuery and those are my IT goals over the next few months.

    On a personal note, it’s been over 14 years since I’ve dunked a basketball on a regulation net (back in a varsity college game), so my goal is to be dunking by the end of the summer….I have a feeling at 35 that might be harder than anything else on my list. 😉

  4. Siderite says:

    Nothing useful to add. Just ate my heart out and completely hate you!

  5. karl says:

    Lua’s there on my wish-i-had-enough-time list, and Git’s on the next-big-project list.  I already own jQuery though.

  6. Rob says:

    Few things for me:

    – Git (using it at home now over Subversion)
    – Fluent NHibernate (a couple of personal projects)
    – JQuery (starting on some more advanced stuff now)
    – Google Maps API
    – CQL (NDepend)
    – Python (just beginner stuff for now)

  7. – I’m improving my distributed storage skills
    – Learning Scala/Lift
    – I’m slowly learning Haskell and Lua
    – Creating my first games using JMonkeyEngine

  8. Marko says:

    p.s. I like your captcha :)

  9. Marko says:

    Learned to use TDD, MSTest for now but I think it is good start, learn about DI and Constructor injection and how code should be constructed, learned and used jQuery, finished first project in asp.net mvc, interested in ruby, python and silverlight 3.0


  10. I’m learning how to teach people TDD, pair programming a lot more often (not by the book pairing but just “hey come help me with this” type of pairing). I’m working heavily on refactoring to remove duplication and cleaner, less complicated designs so that quality improves and maintenence is less.

    I’m trying to understand how to deliver value to my company with every minute i spend ‘in the code’ and out of the code.

    I’m trying not to be an ‘agile nazi’ but a communicative collaborator who teaches explains the whys and gently brings people through the paces of making those painful mistakes that make good engineering practices reasonable.

    I’m trying not to be a preacher but a leader.

  11. pmlarocque says:

    Karl for django, I would guess it’s the fact the “Template” is the View of MVC, the View in django is the controller of MVC…

    as seen here :

  12. mattvv says:

    I’m on a similar path – working more projects into .NET MVC – I also want to properly learn nHibernate and FluentHibernate, along with reading up on DDD :)

  13. PowerShell’s big on my radar. MS is using it to administer more and more tools.

    I’m thinking about digging into NHibernate (we’re currently using a different OR/M).

    Looking at Lean to see what it offers over Agile/Scrum/XP.

    Other than that, always trying to improve my design, SOLID principles, testing, etc.

  14. Congrats Carl!

    I also think Uncle Bob says it well, and I love the fact call the suits for business wonks. Haha, it’s so funny.

    Totally agree with you that Twitter is an indispensable tool for picking up new trends and to communicate with the community. I would be interesting to know more about your other sources besides Twitter – what blogs your read, books etc.

    Why did you move away from Django? I’ve been using it for small little endeavor I had coding an app on top of Google App Engine. I loved it and Python as a language, but I missed the scaffolding functionality of Ruby on Rails.

    I’ll try to respond to your post soon by a blog post my self:)



  15. Ruprict says:

    Kinda forced into learning Flex this year, and I kinda like it. I continue to write little Ruby based scripts (using rake) as well as messing with Rails sites.

    Things on the radar:
    – The new WCF Facility for Windsor….much has changed since I last used it.
    – jQuery. Have used it, but I need to KNOW it.
    – Figure out how to use PowerShell more

  16. Mark Nijhof says:

    mac:~ marknijhof$ trollmode
    trollmode$ I have decided that learning is a waste of time as
    trollmode$ things keep changing and I can never know it all.
    trollmode$ exit
    mac:~ marknijhof$


  17. Fakhrul says:

    Hi Karl,
    This is my first comment on your blog. Your blog had improve me a lot. Thanks to you.

    What i had learned:
    – Start applying TDD using NUnit in my development.
    -Using AOP (Log4PostSharp) for my logging purpose. It is quite useful framework.

  18. Raphael says:


    Nice, I didn’t know Web2Py was an MVC framework. I’ll play around with it. Keep up the great work you are doing mate. Cheers.

  19. Matt Briggs says:


    Not exactly an expert, but IMO the big plus for Django is the professional manner that adrian runs things, and how clean the implementation is so far. Also, it is quite freeing to not have to write your own admin interface. It is downright indecent how fast you can go from idea to going live with django because of that one feature.

  20. Ryan Riley says:

    I’m working on F# (esp. async and monads), IronRuby, Silverlight, HTTP/REST as an ESB, and Vim. It’s an exciting time to be a dev with all the new stuff (and old) to learn!

  21. Matt Briggs says:

    * Learning ruby, rails, and git (and absolutely loving it) by making a site and putting it up on heroku

    * Reading the Eric Evens DDD book (not exactly light reading material)

    * Getting my feet wet with FubuMVC, Erlang, and F#

  22. karl says:

    I picked Web2Py as my python stack. I looked at Django first but something (I don’t remember what) put me off. Django definitely seems like the most popular.

  23. Raphael says:

    – I am learning Django/python (caught the functional programming bug) and facing my UI design fears head on.
    – I am improving my linux skills as I’ve been on my ubuntu partition for almost 2 weeks without booting into vista (making the switch gradually).
    – Brushing up my c#/asp.net skills using mono and monodevelop 2.0. Really enjoying the IDE.