I'm currently in TaeKwonDo and it definitely has it's advantages. I should point out I didn't solely take this class as self-defense, it's through my university so it was also an opportunity to get involved with a group and do some physical activity. To advance belts you have to demonstrate understanding of general techniques, a form, and self defense techniques. The self defense techniques are good except we really practice them at about 3/4 speed so judges can see what's going on, and of course it is non-contact. However mixing that with contact sparring that begins a few belts in, you will speed up your body and your moves. Higher belts practice self-defense with gun or knife wielding attackers. I'll feel better about handling myself if I end up in a conflict but I'm not sure about the gun moves, you would have to be very very confident that you're faster than the bad guy, and he's got to be real close, which would be rather stupid of him. Of course I've got the sidearm I try to carry with me as much as I can but I'd rather have as many tools at my disposal (including my body) to keep myself and those around me safe.