A martial art for a programmer
ieure: Just like it's important to learn multiple languages to be a well-rounded programmer, you should train in multiple styles of martial arts to become a well-rounded fighter.I recommend kickboxing for learning fundamentals of open-hand stand up fighting, Sambo or BJJ for ground fighting, and Filipino martial arts (Kali/Arnis/Eskrima) for weapons and to tie it all together. Wing Chun fits in nicely as well, and JKD is worth your time too.I echo the sentiments of the people who say it's less about the style than the teacher. A good teacher will expose you to outside concepts. A good teacher will teach you to be practical and not flashy. I strongly recommend you focus on practicality. Always ask yourself, "how will this actually help me if I have to defend myself?" I've seen practitioners of certain styles get completely taken down because they were not taught to be practical - nothing to do with the style per se, but they didn't have good teachers. In particular, I recall a Tae Kwan Do fighter try to use spinning kicks while sparring. As soon as he started to turn his back, his opponent simply stepped forward and kicked him in the balls from behind.Value practicality over all else.