I'm 20+ years into career life, and never would I have imagined that teaching computer science to high school students is where I would find myself at this stage of life. In fact, teaching was never even on the agenda. As a college and graduate school student, my aspirations were to work for one of the big five consulting firms of the time (Deloitte and Anderson being my top two picks), but after extensive interview rounds with each, found myself growing more and more trepidatious of the work-life balance that was being presented to me. Which was probably a good thing in hindsight; neither place offered me a job. Perhaps a blow to my 23 year old ego at the time, but in reality, quite a blessing in disguise. I would have been miserable in those jobs and that lifestyle.
Plan B turned out to be moving to a different state and working for a large cancer hospital, first in Human Resources, and then as a data analyst for clinical research trials, eventually working my way up to a systems analyst role for a software implementation project. The irony was my knowledge of software at the time was just that I used it. I had never tried to write any software myself, any programming I did was editing canned programs already established by biostatisticians I was working with, and I didn't really have the interest to learn SAS - I was fine getting by with my SPSS skills from my graduate school days.
My work at the publishing company coincided with the economic downturn of 2008, as well as the birth of my daughter. After salary reductions for all employees of the company, and suspended 401K contributions, I decided to read the writing on the wall and take a step back. My daughter was still an infant, daycare costs were astronomical, and I was pretty sure my company was headed for more cuts, so I took the opportunity to be a stay at home mother for a year. I'm not going to lie, I didn't love it. I loved being with my child, was grateful that I had the opportunity to stay home with her, but I was bored out of my mind. And exhausted. Parenting is no joke.
I ended up going back to work part-time as a reference librarian (while at that previous publishing company I also pursued a master's degree in library and information science - because why not) at a community college. This job I loved. I loved the students, I loved the work and I enjoyed being surrounded by books. I eventually found myself in a school librarian position at a local high school - a job I applied for on a whim, and ended up getting. What I didn't expect was to enjoy working in a high school. I figured it was a good fit for our family, my daughter was still quite young, my hours reflected her daycare, and then preschool hours, and the income was decent for what it was (not a busy library).
Eventually, I moved on to the district I am currently in, and one thing led to another. I started out as the school librarian here too, but after a few years and some random stints of teaching single classes for a staff member on leave, I started to realize I was kind of bored in the library. A full-time teaching position opened up, I took it, and haven't really looked back. The subject matter I teach was definitely not something I would call a "natural progression" though. Most people I told (outside of work) made the assumption that I was now teaching English or history. Not computer science. I was as mystified as them - how had I gotten here and where was I going? Quite frankly, many days of being in a classroom with teenagers, trying to teach content that was new to me too, had me asking myself "what have I done by accepting this job???".
Imposter syndrome is a real thing. I felt like a fish out of water most days. I had students who were suspicious of my ability to teach the classes (they knew me as the school librarian after all), and some were even pretty vocal about their suspicions (reminding yourself that you are the adult, and teenagers are still children, helps). I didn't feel great a lot of those days, but I was teaching AP Computer Science Principles for the first time and learning a TON. I picked a rigorous curriculum to teach the class which I think was the right decision for both my students and myself. We dove headfirst into CS50 and became budding C programmers within weeks of starting the class. We learned about internet protocols, big data, algorithmic thinking, hardware components, and even had some time to dabble in data science. Everything I learned that first year has helped me fine-tune the class each year I teach it.
Along the way, I also picked up teaching classes in Web Design, Game Design, Lego Robotics, and my current course schedule today includes teaching several sections of AP Computer Science Principles, AP Computer Science A (Java), and an Intro to Computer Science Class, which I typically teach in Python, with some web design (HTML & CSS) thrown into the mix. My journey as a high school computer science teacher has encompassed a lot of long hours, some sleepless nights, and I'll be honest - at this point in my teaching career the work-life balance is still not the best, but it's the first job I have had that I can say I am never bored. It's a content area where there is always something new to learn, and you also need to accept that you are never going to know everything. To me, this adds to the excitement. It's that excitement that I think helps keep students going on those days where they tell me they "want to smash their laptops against the wall". Debugging rage is also a real thing. We've all felt it.
Now that I am the thick of it, I find myself collecting more and more things I want to teach my students. I binge listen to tech podcasts (Code Newbie, Command Line Heroes, and Reset are my top three), am a faithful subscriber of Wired magazine, and an avid reader of Medium content. YouTube has been a fabulous resource as well, for introducing concepts (thank you, Crash Course). My most recent cause in the computer science classroom is to try and reach a better gender balance. I have had classes of only male students, or one lone female student in the room. As a female myself, I can say that this is not always a great feeling. Once upon a time, I was also that lone female student in a programming class my mother made me take when I was in high school. I ended up really liking the class, but I never pursued it further because I hated being the only girl. I should have pursued it, I would have saved myself a lot of time and career jumping ;)
My department has started a Girls Who Code club at my current school, hosts "Girls Day" robotics events, and have done more concentrated outreach to try and attract female students to the computer science and engineering classrooms. I do think having a female computer science teacher has helped with that initiative; I have had female students tell me the only reason they finally decided to try a comp sci class was because they saw that "the teacher was also a girl". Thankfully, several of those female students have gone on to take more computer science classes, and pulled in a few of their friends, so slowly, but surely we are getting there. It's tough to walk into a room, where no one in the room looks like you - there can be safety in numbers. Which I do notice by how my students seat themselves. We sit at group tables in my classroom, and in almost every class period, the girls group themselves at a table together, whether they know each other or not. It's interesting to observe.
We need more computer science teachers, period. With the hold that technology currently has on our society, and the workforce being what it is, students are going to need solid technical skills to be successful. Coding is not for everyone, but everyone can benefit from having some basic knowledge. The problem-solving skills it teaches, as well as the resiliency it helps students develop can't be matched. And as I mentioned earlier, you'll never be bored. There will always be work to do, things to learn, and students who are interested. You just need to have the passion and determination to learn it yourself too. Make time for code every day - take the #100DaysofCode challenge to keep yourself accountable, try some Codecademy classes to see if it's for you, do some Codewars challenges with your students. The interest will build, and there is room for everyone at the table, you just have to invite yourself to take a seat.