A few years ago I taught core Java and Linux at Baruch College of CUNY. I found that it was a great way for me to practice public speaking and leadership skills, not to mention a way to supplement my income. I am currently contemplating starting a private Java training practice to get back into this.
Standing in front of twenty students and trying to explain to them what you do for a living is a far more gruelling experience then any of the interviews I've ever went to. You get asked lots of challenging questions and you have to learn to explain concepts to people. You may think these concepts are simple and commons sense -- but if you can't verbalize your knowledge and intuitive understanding of something, do you really know it ?