New Year's Resolutions for Developers
The first week of the year is an arbitrary but traditional time to reflect on
the 366 days to come. If you're like most developers, you managed to take at
least a bit of a breather in the last two weeks, and now you're ready to get
back to work. But before you immerse yourself completely in the same old grind,
consider this: if you don't do something about it, every day your skills get one
more day out of date. In this competitive world, that's a recipe for disaster
somewhere down the line.
So before you start in on the routine coding again, take those few moments to
reflect and resolve. You worked hard to get to this point in your career, and if
you keep working hard your career will continue to thrive. One of the best
things you can do to help that happen is to broaden your skills, so as to be
able to answer "yes" to more potential jobs. With that in mind, here are half a
dozen suggestions for resolutions you might like to make.
1. Learn a new language. One of the easiest things you can do to keep
your mental gears lubricated is to investigate a new-to-you computer language.
Even if your boss doesn't want to rewrite the flagship product from C++ to Lisp,
there's no reason you can't experiment on your home computer. For the most
stretching of your mind, learn a language that's vastly different from your
normal run: Haskell if you're a C jockey, for example, or Ruby if you're a
Visual Basic fanatic.
2. Test-drive a new operating system. One thing's for sure: your
current operating system isn't going to be around in a decade, even if you are.
Even if you're a Windows user who intends to stick with Microsoft products, it's
looking like Longhorn will be a wrenching change from the Windows versions we
know now. With that sea change coming, why not look around a bit? With virtual
machine technology from Microsoft Virtual PC
2004 and VMWare
Workstation 4, it's easy to experiment with a new OS without having a whole
machine to spare. Don't limit yourself to just Windows or Linux; there are lots
of other interesting operating systems out there, from the various BSDs to MenuetOS. Each one will show you another way
of looking at the fundamentals of your computer.
3. Learn a new technology.The palette of available technologies to
choose from is almost unlimited, and surely you don't know them all: code
generation, WMI, public-key cryptography, EJBs, stack overflow prevention,
add-in creation...I could extend this list indefinitely. Pick something that
looks interesting and dig in. You never know what will come in useful down the
line, and the exercise will help keep you sharp.
4. Read about the craft of software. There are a lot of good books
there that reflect on how we do what we do. Have you read them all? If not, this
year would be a great time to dig into the bookshelves. Here is a very small
sample of the books that I think every developer should read:
- The Mythical Man-Month, by Frederick P. Brooks, Jr.
- Code Complete, by Steve McConnell
- Writing Solid Code, by Steve Maguire
- Peopleware, by Tom DeMarco and Timothy Lister
- The Pragmatic Programmer, by Andrew Hunt and David Thomas
- Refactoring, by Martin Fowler
Even if you've read all six of those, there are plenty of other thoughtful
books out there. This profession has been around for more than half a century
now; there's no need for us to be reinventing all of the wheels every year.
5. Share your knowledge. There are few things better for cementing
own understanding of a technology than trying to explain it to others. If your
company has a lunchtime seminar series, sign up to present one. If you're
feeling a bit more ambitious, write an article for one of the online or print
publications. If you're feeling really ambitious, pitch a book proposal.
(If writing interests you but you don't know where to start, check out my own Advice for Writers
6. Treat yourself to a productivity tool. How much is your time worth
per hour? And what's holding you back from making the most of those hours? None
of us can afford to buy all of the hardware and software that we'd really like
to have, but you can probably break loose a few hundred dollars some time during
the year to invest in your own productivity. Maybe that means doubling the RAM
in your computer or buying a code generation tool or getting set up with a copy
of the IDE you've been itching to try out. Pick one targeted improvement to your
work environment and go for it; keeping yourself happy and interested is another
great way to keep your career on track.
Mike Gunderloy has been developing software for a quarter-century now, and writing about it for nearly as long. He walked away from a .NET development career in 2006 and has been a happy Rails user ever since. Mike blogs at A Fresh Cup.