(Why two parts? The post was getting a bit long. I do not read long posts so I figured no one else does either.)
To be a CS teacher you have to realize CS is not like teaching any other subject. It simply evolves too rapidly for a high school teacher to be an expert. You spend hours and hours cruising the internet looking for things you understand enough to teach. You pick a couple of programming languages to learn half way decently. One for Programming I kids (Small Basic, Scratch or the like) and one for the more advanced kids (Python, Java or something you have time for) and maybe one for fun like Corona or Game Maker. You search the blogging world for people who teach at the level you do, have comparable assets and have good ideas they like to share. Why are you spending so much time on the internet looking for ideas? Because the choice of good high school level text books is real close to zip and you are usually the only CS teach in the school so there are no convenient brains to pick.
You must realize that being the CS teacher means you know everything, and I mean everything there is to know about computers and servers and cell phones and projectors and copiers and Smart boards and, in my case, the #$%&* school bells. In a big school you may not need all this but in a small school you are it. You had better be familiar with Chromebooks, Windows in all its versions, Apple stuff (iPads, iPhones, Macs, iTunes accounts, Apple @#$% Configurator), and making simple and not so simple repairs on laptops. (Hey, that sounds like the IT departments job! In many schools the CS teacher is by default the IT department.)
To become a CS teacher you have to spend a ridiculous number hours debugging some little program in a language you are learning so the kids will get a chance to see something new. You also discover that teaching code is the easy part. CS is not programming. CS is program design and using a computer to solve problems. CS is teaching kids to think. Good luck with that. Teaching CS also means you have to teach the kids how to troubleshoot computer hardware and software issues. “That is what school tech support is for.” (Giggle, chuckle, laughter, louder laughter, roll around on the floor laughing too hard.)
To be a CS teacher you have to realize there are going to be kids that are just smarter at this than you are. Live with it. You have to pick their brains. You make them teach you and the rest of the class. You figure out what that kid needs to know to go to Carnegie-Mellon (or MIT or CalTech or where ever) and you find somebody to help them because you sure do not have time to do it. Remember, you teach for a living. But later when that kid comes by with the job of designing VR software for a company you never heard of and is making more in a month than you make in a year you do get to take all the credit.
A CS teacher has to realize there are no jobs in CS teaching, at least compared to everything else the average high school offers. Even the bigger schools usually only offer a couple of sections of CS. So to be a CS teacher you have to teach something else. No choice. That lovely and ideal CS plus Education degree is not worth a whole lot as a standalone. You will have to get a degree in math or science or English or basket weaving if you want to teach CS.
As a CS teacher you have to know you are in competition with every other elective in the school. CS is almost never a required course. CS is not easy for the kids. It involves work and thinking which is not a real winner for an elective. The average kid is going to take pottery instead. The number of computer geeks in any school is very low. Small numbers in an elective means the elective will go away. Be sure you enjoy that other teaching field. If you want to continue teaching CS you get imaginative. You offer a game programming course, usually in a language you know nothing about until you dreamed up the course. Suddenly you have more kids than computers. It is all in the marketing.
So my advice if you want to be a CS teacher is to forget it. Be an English teacher. The burn out rate is so high on them there are always jobs available. CS education has very few jobs available, is hard to ever feel “qualified” in, is very difficult to find any kind of pre-service or in-service education in, involves almost as much work as an English teacher (the reason they burn out), and at the moment is very unsecure.
There is the little detail that teaching CS can be more fun than anything else you might teach and may be the most immediately useful subject to a high school graduate but does that really count?