Coding Horror happens to be one of my favorite technical blogs. He says some stuff I really agree with.
Now we all know I left programming as a career, and now teach it. I know what he means by WTF programmers, worked with some.
Quoted from http://www.codinghorror.com/blog/:
In a recent Joel on Software forum post Thinking of Leaving the Industry, one programmer wonders if software development is the right career choice in the face of broad economic uncertainty
Now, I don't know if now is the time to leave programming as a profession and go into education. I will tell you that most of the time it is a very stable profession. In sixteen years I've only seen the possibility of two layoffs and because of the way I went about certification, I'm pretty safe.
In those sixteen years, I've only had 2 bad bosses out of 6, and honestly as long as the parents don't complain, you don't have to worry about management. They don't understand what you are teaching and could care less as long as you keep enrollment.
While the pay sucks, there is some really cool things about the programming gig. There are lots of opporuntunites to make extra money and increase your head count at the same time -- summer camps for one. I don't do a lot of them, but I have a friend who does. You pick the right audience (middle school group that feeds to your high school for example), you have it made in the shade.
You can work on your own software projects. Most school years, I get about 3 20 minutes windows do to my own code, also there are summers and breaks.
If you work at for a while and are good at it, you can write curriculum. I started out reviewing textbooks for pay, got my master's and now write curriculum for the district.
The things I like about the teaching gig:
The lack of being on call. I always got maintenance gigs because I'm really good at looking at code and finding errors. 10 years of being at management's beck and call was about 6 years too many.
Reduction in crisis mood. Yeah, occasionally you get the parent who harasses you (Dean took care of that for me), but I was in financial systems are we worked in crisis mode all the time. I don't get off on that at all. Or the whole school standarized tests scores suck but most of the time you can ignore people who are getting off being in crisis.
Being the one in control at all times. It IS cool to be the smart person in the room. Yeah, I get kids that are smarter than me and have more initate talent but at least once in the year I get to dig them out of a whole. Taking a day or two off makes them appreciate you. Also, there isn't anyone else in the building that understands your subject -- well the new Dean has at least taken a programming class or two, as she is certified in math but doesn't "grok" it. She can tell I know what I'm doing, but acknowledges that is as far as it gets. However, there aren't a lot of math people in adminstration.
Hanging out with teenagers. Secret to teenagers: "The biggest reinforcer for a teenager is pissing off an adult" -- my favorite saying as it true. No matter how mad their behavior gets don't react. If you do have to react, walk them down to the office, fill out the paper work there and then walk back. If you don't do this often, the office will keep them, and you have time to cool off so teenager #2 doesn't piss you off. The best thing to do is get coverage, but I rarely have to do that (coverage means getting another adult to watch the class). I usually too mad for that. Also, if you find yourself doing that three times in a day -- ask for a sub to cover the class, as there will be more.... and it's YOUR fault not theirs. I've only had one day like that (in sixteen years), and leaving was the right thing to do. And if you have to do that more than once a year, you're not cut out to be a teacher.
Teenagers say and do some really cool things. The most intelligent conversations I have had, have been initiated by my students. Some of them have even been about computers or programming.
You get an opportunity to find some good programmers at a really young age. You have an opportunity to influence society at large about programming. I have about 120 students in my classes any given year. Less than 5 are going to major in computer science. But let me tell you, those kids excell. They know exactly what they are getting into.
About another 20 end up acing a programming class in college even though they are majoring in something else. It gives them more self confidence in their other classes as their peers think they are smart.
The rest at least know that a) software priracy is not a good thing b) programming is hard and worthy of respect. That's more than the rest of the kids in the school know about it -- well that's not true, word of mouth gets around and they influence others.
We need GOOD programmers to come teach and those people need to be willing to put a long term committement in it. It takes about 3 years to become a good teacher (a few months less if you come hang out with me -- only kidding). It takes another three years if you are lucky to build a good program.
Getting your foot in the door helps if you can do hardware and/or can train adults. It also helps if you can teach a hard to place subject, either math or one of the sciences. Also, don't go through alternative certification, find a good teaching school and get an "real" certification. I fought that tooth and nail, and I was luckly I had to do the certification the hard way.
AND if you think it might be right for you -- go volunteer at your local school They can always use math help and there isn't a programmer than can't do at least Algebra I.