Mark Guzdial asks the question What’s the argument for becoming a computer science teacher? on his blog. It’s a good question. While as a former computer science teacher I may appear to be a strange one to make the case but I’m going to try. Being a computer science teacher is a great job. Really being a teacher in any subject is a great job and a lot of the reasons for teaching other subjects are part of teaching computer science. The student interaction, seeing students learn new and exciting things, and generally making a difference for good in the world. But there are of course some special things about teaching computer science that complicate the picture somewhat.
One is that if you are really qualified to teach computer science you are probably qualified to get a much better paying job in industry. If this is true, and generally it is, why take the lower paying teaching job?
Well besides the teacher benefits there is a certain amount of freedom to learn new things that one doesn’t always have in industry. In industry your learning can be channeled in certain directions by management. And with work hours in the computer industry often being as time consuming as those in teaching (trust me – I’ve done both) one doesn’t always have the time to learn about ones own interests. Computer science education is somewhat directed by the AP CS exam but that is only for one course. And while some teachers, by desire or necessity, focus all their courses around that one course many find the time and incentives to learn things in other directions. Game development for example using C# and XNA. Or more web development (perhaps using Expression Web with some free curriculum) In all of this, because of the nature of teaching, one can often focus on breath over depth. So rather than being confined to digging deeply into one of two technologies teachers can often dig lightly into a wide variety of technologies.
Of course this brings up the fact that some people are not excited about learning a lot of new technologies and having the curriculum change on a regular basis. I have no doubt at all that this is true. I have met teachers who are totally resistant to change and want to do the same thing year after year. To that I ask, do we really want people like that teaching (period – let alone computer science)?
The biggest problem is the law of supply and demand. There is not enough of a demand. Yes, NSF has a 10,000 computer science teacher effort but I don’t see much of a sign that the states or even school districts are buying this. If there were lots of advertisements for full-time computer science teachers we’d probably see more people looking at doing it. Many people don’t want to teach several sections of Math or history or English that they can teach one or two sections of computer science. This is widely true I think. We don’t make the jobs common enough or interesting enough (and by interesting I am not talking about money) for excited young people to move into the field of CS education.
When done correctly, allowing some teacher freedom to develop new curriculum for new technologies, availability of in-service training, providing support in both facilities and recruiting help (not hindrance) from guidance, teaching computer science to high school students is a really great job. It is a chance to start the next generation of world changing computer/computing scientists and industry professions with a solid base. It is a chance to work with smart kids who have a real passion for the subject. Why become a computer science teacher? It’s a fun job and a world changing job. If you love computer science it is even more fun than any other teaching job you can have.
Note: Take a look at Computing in the Core which is an effort to help get computer science adopted into the core curriculum in schools.