I've always been a big fan of George Carlin. I remember watching one of his first HBO specials when I was quite young. No matter whether you agree with his point of view, you had to admit he had an impressive mind and a way to stay relevant no matter where the country went.
Recently, I was watching Louis CK talk at a Carlin Tribute when he told the story (that I'd heard before) of Carlin's philosophy of throwing out his act once a year to work on a new show. This got me to thinking how this could apply to what we do.
Learning new technologies, tools or languages expands what we are good at. In fact, I would argue that developers are paid to learn. That is what we are good at. In this way I think most developers should be learning new technologies every year.
Does this mean I think that you should chuck your entire knowledge and experience and start fresh? Of course not. But challenging yourself by taking on something new (either for work or as a side project) is going to make you more valuable and keep your ability to adapt sharp.
Now before you scoff, let's look at the reality of the situation. I know that I am not like most developers who are building solutions in the Enterprise. The tooling and technologies tend to change slowly in most environments. I don't pretend to believe that most jobs will let you introduce new technologies every year, but I do believe that by looking at solutions in a different way by learning new ways of doing things, your ability to see problems from a different perspective will help you improve even if you're daily work is using the same technologies as before.
Why Change Matters...
I like money as much as the next person (ok maybe more), but I realized a long time ago that being a developer was not only a job, but a passion for most of us. In fact, when queried from young developers as to what they should learn to make a lot of money in the software business, I'd often point them to MUMPS. MUMPS is a development language created at the Mass General Hospital in the late '60s to run big hospitals. Many many hospitals still use MUMPS and the last few people who work with it still make an exceptional living at it. Sure, it's lousy work but if you're in it for the money, go find a tiny niche and exploit it.
But for many of us the real trick in software is to stay challenged. Sure, some of us decided to go into management or consulting...but even in those roles, our hearts are still in it for the rush of learning something new and bending it to our will.
Afraid of Change?
In the last ten years I've invested quite a bit in a myriad of technologies. Some of these were even dead on arrival (e.g. Oslo, WinFS...hrmph). At the time that the investments I made in learning technologies that either had their day in the spotlight or were abandoned, I got the lovely anger/denial two-fer. This happens with every technology...period. The real talent is being adaptive. Change is going to happen in software. You have a choice to stick to what you know really well and stay the expert in that thing; or you can decide that learning is what your real skillset it. Bring on the change and I bet you'll not only be a better developer; you'll enjoy it more too.