Personal self defense, such as martial arts, should be regularly taught at an early age. Guns, however, are more complex. I don't think that we should necessarily teach children how to defend themselves with guns, but we should teach them about guns at an early age. I believe that exposure to guns in a responsible and supervised setting is far safer than allowing children to be overwhelmed by the cultural illustration of guns.
Perhaps you should wait before teaching a kid how to use a fire arm, but for martial arts, absolutely go for it.
I used to be a violent kid, when I was growing up, always in the office for whacking some kid or another. That's what I felt that fighting was the best way to solve all issues, but when I was put into martial arts, and I started to understand what kind of damage I could do to someone, I very quickly stopped fighting, (much to the disappointment to some of the people who wanted rematches with me)
If It weren't for me at a young age, learning from martial arts, what my fighting could turn into, I could have ended up behind bars for assault, or murder. Or I could have ended up dead.
So I say teach your kids, how to fight, and make sure to teach them when to fight.
I learned Tae Kwon Do when I was younger, and I can say for sure, that it saved me from getting my ass kicked in a couple fights in school (that I didn't instigate).
Self-defense is absolutely a great thing for children to learn, for obvious reasons.
"My heart was practically beating out of my chest by the time I reached the closet. Whatever it was, it sure as hell wanted me dead."