Not too long ago, someone asked me what it's like programming, to not have a physical product at the end of the day. It's mainly an intellectual pursuit, turning someone's (usually a company's) idea into reality by writing instructions for a computer. It only becomes "real" for most people when there's something to show off, and even then it's not something you can hold.

So yeah, it can be weird. You might work a long time on some new feature, or to fix a really tricky bug, and the effects can be nearly invisible.

train table

I think that's why I'm attracted to woodworking, and why so many of my colleagues build, make and pursue other things outside of development - rebuilding cars, tending gardens, raising chickens, playing instruments, knitting, etc. These are all things you can look at and see the progress with your own five senses. You can see the car, taste the vegetables, hear the music, feel the sweaters.

train table

Up until a few years ago, I had no idea I'd even like it. My grandfather did. In a way that seems typical of the post-WW2 "can do" attitude, he finished off the attic after returning home, turning a storage space into a bedroom for three kids. He put a lot of TLC into it, but the thing I remember most were the dressers he built right into the wall all along one side. They blended in seamlessly. I always admired that.

schoolroom shelf

For me, it started when my wife asked for a bookshelf. When you homeschool, you need lots of storage for books and papers. All we had were a couple of those cheap shelves from Target. We found a few bigger ones online, including one from Ikea that was about $150, but they were all made from the same cheap compressed boards other stores use. I thought, I can do that better. I tried, and it not only went well but I enjoyed it too.

schoolroom shelf

It's really satisfying to build something you can touch and feel, and it uses some of the same skills as programming. You do some reading first, you apply existing knowledge, you try to prepare - but in the end, you have to trust in your own ability to learn along the way to eventually achieve the goal. The path to get there might not be what you originally thought, but one way or another things usually turn out fine.

bunk bed

If you're really into programming, or just starting out and looking to build up your skills, by all means do as much as you can as often as you like. There are all kinds of meetups, code katas, and other challenges to expand your skills. It's also a lot of fun starting a project on the side, seeing it grow, and hearing from real people who find it useful. It's an awesome feeling.

But I don't think you need to program all the time to build up the set of skills that make a good programmer. If there's something else you like to do, or think you'd like to do, give it a shot. You might surprise yourself too.

bunk bed

What about you? Already got a hobby that's separate from programming? How'd you get into it? Do you find some of the skills are the same ones you use while programming?