Jan recently asked:
“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.”
My answer is an absolute and irrevocable ABSOLUTELY. You should spend as much time as possible learning while at work, and you should use your work itself as a learning platform. Even in an organization that’s constantly under intense client deadlines, you should be able to fit in reading a couple blog posts at the start of your day and during lunch time. It helps if you have a specific list of high-value blogs (as opposed to having to wade through sites like weblogs.asp.net for example). Jeremy Miller recently mentioned that he likes http://www.infoq.com/, so I’m going to start keeping an eye on it. There’s also my own aggregate at http://www.foundationsof.com/ which is good if you like codebetter-like content.
Also, I find that there are always some throw-away projects on the go which are ideally suited for experimentation (like that one data import that needs to get done). At the very least, these projects can help you get over some of the technical hurdles of learning a new tool.
You can even find the time to create and maintain your own OSS project at work. For example, I had to write a JSON parser for the compact framework (at the time, none existed). I talked to my manager and, since our company isn’t in the market of selling software (or making software for that matter), got approval to release it on CodePlex. In a previous job, I had to write a AMF serializer/deserializer, and since it was based on a GPLd Java Port I also got approval to release it.
Learning at work is something you should talk to your manager about – whether that be for formal training, or simply reading blogs and contributing to OSS projects. Furthermore, the process can be formalized as a team activity, through Lunch and Learns or code reviews. Are you considering using a DI framework, unit testing, or NHibernate at work? Why not download CodeBetter.Canvas and get your colleagues together for an hour to review specific parts of the code?