Tuesday, February 15, 2005

Keeping Programming Fun

When I first started with computers and programming it was my hobby. I had fun coding. But now after 9 hours of programming at work, I have little interest in coming home and working on my personal programming projects. I become upset with this fact. Have I ruined my hobby by turning it into a job?

In your hobby you are answerable to no-one but yourself. Once you start doing it for a living - whether it's programming or photography or cooking or playing the trombone - you must compromise your art to pay the bills. You must work on what the client wants, to their specification, and deliver by their deadline. Ultimately, when someone hates their job, it's those things they hate - not the work itself but the constraints in which the work must be done.

So how do we fix this? The most important thing we need to realize is that even geeks need a little non-geeky relief some times. Just poke around and try different things. A lot of figuring out what to do with yourself is just experimenting and dabbling in a bit of everything. Most of the time, you'll never want to do that thing again. But occasionally you'll discover something you are genuinely interested in. Doing different things can open up your horizons and give you different perspectives. It will expand your circle of friends to a group larger than just programmers. All of those will help you to enjoy your work more which just might make programming fun again.

You can do so much with life! Go to gym, play some sport, get some exercise. Or see a movie, get into photography, try dating or go travel. Get outdoors, try skiing, mountain biking, off-roading. Or just relax, make dinner, read a book, hang out at a friend’s house. In short, choose ‘life’ over ‘work’.

But if you still want to do programming, do something different. Start programming your side projects in a different language or environment. Do something you're not allowed to do at work. That is, if you're a games programmer, come home and write database-driven analysis engines. Or take the project assigned to you and completed it using new tools and techniques.

Good developers like exploring new technologies and trying new things out. That's how they stay good developers. Smart companies allow for this. Some places, like Google, have formal policies saying that it's ok to spend a certain percentage of your time on personal projects. At others, it's an informal thing. You enjoy learning new things and this change of pace might just be the ticket.

It's the thrill of discovery, mastering something new that you enjoy, and accomplishment that drew you to programming in the first place. You need to get all that back in the mix. The experience won't hurt your career either.