Try bouldering! The perfect combination between problem solving, fitness, and strength.<p>I have been bouldering for years, and I love that you can go with people from all levels, and everybody is having the same fun trying to succeed at problems.
And a beginner that doesn't have the strength to do something can have th brains to show you how to do it.<p>I have brought many people with me over the years, most engineers / software people get totally hooked for some reason. I think it probably comes from the puzzle aspect of it.
Lock picking is a technical, logical, and interesting hobby you may enjoy. It's a classic hacker (as in Hacker News) skill. Here's a great line from the absolute classic <i>MIT Guide to Lock Picking</i> [0]:<p>"<i>The big secret of lock picking is that it's easy. Anyone can learn how to pick locks.<p>The theory of lock picking is the theory of exploiting mechanical defects.</i>"<p>[0]: <a href="http://www.lysator.liu.se/mit-guide/MITLockGuide.pdf" rel="nofollow">http://www.lysator.liu.se/mit-guide/MITLockGuide.pdf</a>
Speedsolving - solving rubik's cubes and similar puzzles and doing it FAST, blindfolded, one-handed etc<p>Sports/workouts/exercise - not original but great way to balance the sedentary lifestyle if you're not already doing so<p>Juggling - pretty fun to learn and relaxing activity. It has been shown to give great mental benefits when done regularly<p>Card tricks/magic tricks - impress your friends during parties<p>Learning foreign languages - this one has so much in common with learning programming I'm surprised that it's not that popular among developers. It is quite mentally draining tho so combining it with programming career is hard
Many programmers also knit, there is a surprising amount of overlap (talking about patterns as algorithms, fixing errors as debugging). Knitters even have their own stackoverflow/github: ravelry.
Singing - it may not seem like there's much overlap, but the amount of pattern recognition and other compatible skills required is surprising. Flow state is a common element in both, and I find it a great stress reliever. It also helps to balance a left-brain career with right-brain hobbies.<p>Meditation - not really a hobby per se, but the amount of clarity it can bring to programming later that day is incredible.<p>Nutrition / health optimization - understanding how the body works and how to support it through your lifestyle and nutrition can be a hobby in and of itself, and as a bonus, it helps maintain a healthy brain to program with.<p>Cooking - this will save you money, gain you friends, and can be looked at as 'food engineering'. It's just chemistry you can eat, in the end.<p>Homebrewing - much like cooking, this is biology and chemistry you can eat. Or in this case, drink.<p>Geocaching - I've been meaning to try this. I gather it's essentially world-wide interactive scavenger hunts that use GPS.
Computer graphics. Check out SideFX Houdini and try building a few simple things wih it, it's the most fun and addictive thing ever. Also check out Silo for more conventional 3D modeling. If you're looking for the easiest no-learning-curve way to start, try MagicaVoxel, it's amazing, free, and you'll be buildinthings out of voxels in 20 minutes.<p>Other fun and valuable hobbies: public speaking, improv, standup comedy, pick up, drawing, writing, and go.
Brazilian Jiu Jitsu. Problem solving under stress (and will get you fit at the same time).<p>A disproportionate amount of our members [0] are programmers or software engineers.<p>[0] <a href="http://bjjlab.ch/" rel="nofollow">http://bjjlab.ch/</a>
I know a lot of programmers who enjoy photography and playing some instrument. Those hobbies involve a similar kind of focus to programming but in a different area.
Motorbike riding - you need to think very fast.
Playing music - you need to synchronize your brain hemispheres.
Cooking - you are building but from food :)