People are people. I worked for 20 years as a programmer and then, for a variety of reason, decided to move to Japan and teach English in a high school (originally for only one year, but loved it so much that I stayed for 5).

Several things surprised me. I think the biggest was that being a good teacher is much harder and requires more talent (and good judgement!!!) than programming. Sure, there is never a time as a teacher that you have to concentrate the way you do as a programmer. However, the decisions you have to make, under intense pressure, are very, very difficult. The consequences can also be severe if you get it wrong.

Students usually ("usually" is a vast understatement) do not see the big picture. Often they feel they are being picked on, or unfairly treated, when in actuality they are being lovingly treated by a teacher who is trying to help them.

Teachers take enormous abuse every day. It was a surprise for me to have students actually hate me (for years!!!) because I wouldn't let them rampage through the class, ruining things for other students. And like I said, you are doing your absolute best, but because the student can't differentiate between behaviour that works well for the group and behaviour that doesn't, they can resent your interference. And they convince all their friends to do so as well. One small discipline issue in a class can result in 10s of people literally hating you for years (or even for ever!)

And teachers make mistakes. The job is really, really, really difficult, so you are bound to make a ton of mistakes (especially when you first start out). I made a point of apologising for my mistakes (sometimes publicly), because I believe strongly that improvement starts with the ability to acknowledge failure and I wanted the students to gain the courage to admit failure. Some students respected this. Some students despised me for it.

One student in particular was so offended that I had given up the teacher-like air of infallibility that he completely lost all respect for me. I was stubborn and decided that the student was entitled to his opinions, so I took his (very unfair) criticism without comment. My colleagues were not so tolerant and took the student aside (for several hours) to explain the hurt he was causing. In the end, that discussion with the student helped him a lot and he did much better in school after that.

As a teacher, you are used to this kind of thing. It is an every day occurrence. Students irrationally (and occasionally rationally) flip between loving you and hating you. You make mistakes and have to just swallow the consequence that probably a group of students will hate you forever because of it. You just try to do better the next time (knowing that given the complexity of the decisions there is a good chance you are going to fuck it up again a few times before you get it right).

Occasionally students are cruel (whether knowingly or unknowingly). One of your jobs as a teacher is to help the student know that there are real people, with real feelings on the other end. It is a difficult lesson for both parties. If you fail to communicate this (as I did with that one student) they may go through life thinking that other people's feelings are not relevant to their own internal sense of justice. As a teacher you would be very irresponsible to allow that to happen.

It's a difficult job....

I'm back in the same area of Japan as I was when I was teaching. I'm doing contract programming now, though. One of the things that makes me very happy is meeting my former students on the street, or at a bar. They often call me over and chat with me. It reminds me why I loved that job.