I've recently had the opportunity to teach a class of students on a couple of different occasions. Something I've not done for quite a while now but something well worth doing every now and then. I say every now and then, I don't think I have the vocal stamina to do it for more than a few days and I especially don't think I have the special quality it takes to teach children. The classes were both very different, one a knowledgeable internal audience for a days course, the other a three day course for a customer where the participants were only a short way along the road towards learning what I had to say. Both were similar, on the topics of Linux cluster administration and all the various technologies it takes to run a cluster.
Clustering technologies really are varied and it takes a few years experience before an administrator has a good overview of the inner workings of how everything hangs together. For example, I mostly covered Linux administration and clustered administration with xCAT but to fully understand it you need a fair bit of background knowledge. Your Linux OS, hardware configuration and control, network architecture, storage, clustered file systems, remote management, parallel computing, computer service (NTP, DNS, FTP, NFS, HTTP, TFTP, etc) administration, etc. The list really is quite long and while this is starting to sound like a "Look at all the stuff I know!" blow-your-own-trumpet type blog post, the point I think I'm trying to make is the list of people who know (and I mean really know) all this stuff in any given company isn't very long. You'll know the guy, the one who everyone always asks when something is wrong with their machine, the "he fixes everything" guy. While these people are hard to find locked away in a small room somewhere (think IT Crowd), it can be even harder to teach the "I already know quite a lot" guy but I took up the challenge anyway.
There's nothing like teaching every now and then to keep you grounded. Some people in your class will challenge what you're saying so you have to make sure you're right and know how and why you're right, the how and the why are very important when teaching. Some times the class miss the point of what you said, this resets your view on the assumptions you make, the assumptions you work with every day. When someone in the class misses the point it's often to do with how you've expressed it rather than their lack of understanding. Some people might find this challenge to their knowledge of the fundamentals of what they work with quite stressful but I look at it as an opportunity. Sure, you might set yourself up for a fall but that's all part of the thrill. Fortunately, I don't mind speaking in front of a crowd, at least not about something with which I'm familiar, but the audience does add to the experience.
I can be a bit of a show-off, I know that, so teaching can be very satisfactory. Great for the ego, almost. However, I take great pleasure from imparting knowledge on others. The opportunity to help others understand something about which they previously knew little is not to be missed as far as I'm concerned. It plays to your inner show-off if you're prepared to stand on and risk falling off of the pedestal you put yourself on when you stand in front of a class.
If you're knowledgeable in a certain area then I would heartily recommend you share what you know in front of an audience, risk making a fool of yourself in front of your audience. I think the rewards are good if you don't often teach. Have what you know challenged. Have your assumptions highlighted. Find out the little gaps you didn't think you had. Most of all, have fun doing it.