News

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 out 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 your 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 series.)

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.

About the Author

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.