I've started training Wing Chun Kung Fu, a martial art, and I really like it (see Little Idea Wing Chun). What sets it apart from other martial arts, apparently, is that it's close-range, focuses more on efficient techniques than aesthetics, and is supposed to be learned quickly (although I have no illusions about it being any easier because of that). In our training sessions we're divided into two groups: novices (of which I am naturally a part), and intermediate. It's wickedly fun watching the intermediates spar.
I'm still learning C++, but it's going to take some time before I can make anything useful in it. Here's a thing I don't understand: why is function prototyping and function defining done in two separate steps and not in one? For now, I've filed this little conundrum under Things That Will Make Sense in Context Later.
You should really, really, really play Ninja Gaiden (the 2004 Xbox version, not the 1988 NES one, of course). This game's combat system is so advanced, it's ridiculous. Everything just feels so right. You have to play it for some time to get into the controls, because button mashing absolutely does not work in this game. But once you've "mastered" (or become proficient with — the amount of things you can make Ryu, the protagonist ninja, do seems to have no end) the controls, you will most positively kick ass. Until the next boss, of course.
Speaking of ninjas, The Adventures of Dr McNinja is well worth a read.