This past week, Garth Flint wrote a couple of posts on how he got to be a CS teacher and on being a CS teacher. You can find them here:
They're both well worth a read.
It got me thinking about how I got my start.
I never planned on being a teacher. I figured I'd just work in tech. After working my way through college, fresh CS degree in hand, I landed at Goldman Sachs. I had other opportunities but the tech scene was very different. You could (basically):
- Work for a financial house or insurance company
- Do niche consulting
- travel out of the city to Bellcore, AT&T or IBM.
Well, I didn't drive and wasn't going to do consulting so I ended up on Wall Street. I worked there for a bit but it didn't do it for me, then tried a consulting gig. No better. Wall street never appealed to me and at the time, more programming type jobs involved you working alone on a computer in an office or a cube all day.
So, for no particular reason, I decided to give teaching a go.
I always wonder, if I had come along a few years later if I would have stayed in pure tech.
I had zero teaching credentials but there was a math teacher shortage at the time. By taking a couple of CS classes as math classes (numerical methods, algorithms) they justified giving me temporary license. I would have to take a handful of Ed credits within a couple of years and later get a masters (which I knew would be in CS, no way was I getting an Education degree).
So, I started at Seward Park High School as a math teacher. Best thing that could have happened to me. I was working with an incredibly diverse population - high achieving kids, low achieving kids, immigrants, multi-generational Americans, delightful kids and kids on parole. That's where I developed my chops.
Knowing that I was a CS guy the math chairman started having me teach the basic programming course and later APCS.
A couple of years later, I was bumped to Stuy. Taught math and the rest of my history can be seen here.
Garth talks about requirements and Alfred Thompson, in his link to Garth's posts talks about the problems of CS teacher isolation. It took a long time and it was hard work, but I started in a school with no CS to speak and no CS teachers and now we have a required course, between six and 10 CS teachers depending on the year, and a thoroughly oversubscribed program. Of course, if you're at a small school, you can't really do that. I remember in the early years, when it came to course signup time, I'd have to visit every math class in the building on one day to hock my courses. I'm glad those days are gone.
Garth also makes a great point about all there is to learn as a real CS teacher. The best math teachers I know love doing math and love solving problems but by and large, they're not learning new subfields every year. Over my time as a teacher I've learned, either by choice or necessity:
- new fields such as
- relearning AI, which is radically different then when I was in college
- Data mining
- Machine Learning
- new languages
- Haskell (a bit)
- And tons of technologies
- Unix as a toolset
- system administration
- network administration.
and many more.
On the other hand, since I do work with many other CS teachers, I might be a little bit of an outlier. Some of my colleagues also work to keep current and learn new things while others are content with their knowledge base and are happy to teach what they're currently teaching. That's not to say that they don't work on their craft, but rather, they're in a comfort zone of knowledge.
So what's next? As initiatives like CS4All progress, CS education will become more formalized. You all know my fear about the current efforts - CS Ed will go the way of Math Ed and we'll be left with Meh CS education for all. If that's the case, and I hope I'm wrong, many of Garth's issues will disappear. CS across the nation will become more generic but more accessible and CS teachers will hopefully know how to teach their courses but maybe not too much more.
Even if that is the case, there will hopefully still be places for us old time gluttons for punishment.