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?