A martial art for a programmer
sgdesign: I would say Brazilian Jiu-Jitsu. You can make good progress very quickly, it's a lot of fun, can be very demanding physically (but doesn't always have to) and is called "chess on the mat" which should appeal to a programmer's analytical minds. 
Plus, there's a ton of BJJ ressources on the net and the community is very active.