Friday, January 16, 2009

What do you do on your days off?

I'm not talking about your vacation days. On the days when things are slow -- you're a bit ahead, or you're between projects -- how do you spend your free time?

My theory is that your work on project deliverables solidifies your base. That's when you hone your abilities to write good code, create solid self-running tests. You take what you know and get much better at it. This is not the time to be learning a lot of new things, otherwise you'll never hit your deadlines.

But when are you going to try that new language, or test drive the new unit test components? Shouldn't there be time to learn about how the business works, develop better relationships with your customers, and see what cool things your colleagues have been coding?

That's exactly what you should be doing during your slow times.

When you're under the gun, that's when you're fine-tuning your expertise. When deliverables are not breathing down your neck, that's when you expand your potential expertise. You're like a crab going through molting stages; that's how you grow.

This may seem obvious, and if so, good for you. I don't think the majority of coders operate that way, so you have a leg up on them. They don't pick up a new language unless someone assigns them something that requires it, probably some maintenance work. The only parts of the business they know are the ones that have been assigned to them. If things are slow, that's a good time to shop online.

Some amount of frivolity is necessary for your own sanity. All work and no play makes Jack a dull boy. I've certainly taken my share of depressurization time. But be aware when you're doing it, and also think about taking a real day off on those days when it's slow and you need the break.

These days, on slow days, I've been experimenting with Python. I've had a vague interest in Python for some time, and have a silly web scraping exercise I'd like to do. It would be easier and more comfortable to do it in Java -- and actually that wouldn't be a waste of time -- but if I don't take the opportunity to learn Python now, when will I?

No comments:

Post a Comment