Friday, August 11, 2006

Keeping Up

I continue to be disappointed with how little most technical people do to "keep up". To me this is a profession that changes fast and you need to work to keep your skills and knowledge current.

(Actually, that's not totally true. I'm just addicted to learning (and hopefully applying) new stuff and I can't understand why other people don't feel the same!)

I understand that people are busy at work and have lives outside of work. But it's like not having time to service your car - sooner or later it's going to get you in trouble (or cost you money).

Here are my suggestions for keeping up:
  • read technical books (e.g. one per month)
  • read technical magazines (even the ads can tell you things)
  • subscribe to a few blogs (but not 100!)
  • listen to technical podcasts (e.g. during commutes or walks)
  • work on a personal project (something you choose)
  • write your own blog (writing is an important skill that requires practice)
  • learn new software (language, tool, framework, os)
  • read code (something different than you work on all day)
When I interview programmers I often ask whether they've read any computer books or magazines lately. Almost always the answer is "no - I do my reading on the web". The web is a great resource, but surfing the web is no replacement for reading a good book. (I'm not talking about C++ for Dummies.) Magazine type material may be available on the web, but will you really find it and read it the same way you would a magazine?

Also, I think it's important not to have too narrow a focus. Regardless of what you actually work on, you can get valuable ideas from other fields. If you develop in Windows, take a look at Linux. If you use J2EE, take a look at Rails. Learn from biology and sociology. Have you read Godel Escher Bach?

Try to get a mix of specific technologies (like .Net) and general concepts (like Refactoring) Unless you have a specific need for it for your job, my personal opinion would be not to bother with "certifications".

Keeping up doesn't always mean the bleeding edge either. You can learn a lot from the "classics" like Mythical Man Month or Structure and Interpretation of Computer Programs.

Books can be expensive, but if your employer has any sense they'll be happy to pay.

Personal projects are a little different from reading, but equally important. After all, in the end, it's not what you know that counts, it's what you do with it. Google encourages their engineers to spend 20% of their time (1 day a week) on their own projects. Whether or not your employer does this, working on your own projects is a great way to learn. And maybe even produce something useful! (A lot of Google's products started out as personal projects.)

1 comment:

dread said...

i myself is a major in information technology but i dont really read books or mags. maybe because i still dont feel the competition as a student. but starting now i'll do those suggestions of yours because i know after school, in the information technology world, you always need to be updated. thanks for the reminders sir. its true and helpful.