Skip to main content

Things I Learned From Teaching a High School Class for a Semester

· 11 min read
Scottie Enriquez
Senior Solutions Developer at Amazon Web Services

A Semester in the Classroom

I volunteer co-teaching an advanced computer science class at a Houston high school. This involves me being in the classroom for up to three days per week. In addition to lecturing, lesson planning, and grading, I'm simultaneously mentoring and being mentored by an experienced science teacher who has never taught programming before. One of my majors was computer science, and I have years of real-world software engineering experience supplementing my formal education. In turn, the teacher provides excellent guidance on education methodologies and best practices, as well as moral support.

In order to make this schedule work with my full-time job, I make up my classroom time and additional commute by working from home early in the morning before school starts on days that I teach. This generally requires about two additional hours. These days can be brutally long, especially if the teacher and I meet after work too. I feel that I've learned even more than I've taught this semester, and I wanted to share some of my experiences and lessons.

Be Motivated by Both Failure and Success

After class one morning, a student bluntly told me, “That was the most boring lecture that I've ever seen in my entire life.” The overall classroom energy and participation was the lowest I'd ever experienced, so this statement wasn't exactly a shock to me. I maintained composure, but I remember fuming in my car for a couple of minutes before I left the campus. I had to remind myself that the student was being simply being honest and not trying to belittle my hard work and preparation. The student didn't understand the time and effort that I put into the slides, material, and dry runs for practice. Naturally, I was disheartened by the situation, and the next lecture I was extremely nervous. I felt like I was stammering and fumbling even though I rehearsed the material even more this time to compensate. The next several classes went the same way, and I began to let fear of failure creep in. What if the students never picked up the material? What if I was turning them away from computer science? What if I was just a bad teacher?

The thought of giving up on my volunteering never crossed my mind, but I realized that I needed to fundamentally rethink my approach. I kept trying new formats, activities, and techniques. I reminded myself of how difficult the material is and how it would take numerous attempts before students began to master the curriculum. It took some time before we had another successful class with lots of progress, participation, and positive feedback. I left that particular class feeling motivated and driven. The high of success wasn't the catalyst though. It was the realization of my efforts and my personal pride in dealing with the earlier setbacks in a positive way. If you're only motivated by success, your growth as an individual will be severely stunted.

It also made me realize that while lecture is a useful teaching technique, it's important to delegate some struggle and challenges back onto the students. It can feel like a lot of formal education devolves into spoon-feeding, rote memorization, and regurgitation, but computer science requires thinking analytically and synthesizing complex concepts. Even though my students would often much rather just have the answer or explanation given to them, they develop so much more when they're pushed to derive it for themselves. I can also tell that they're much more satisfied whether they realize it or not.

Students Aren't Any Different Today

I'll be honest that I expected my students to be completely foreign compared to me as a high school student. It had been ten years since I set foot in a live high school classroom. Plus, there seems to be a negative stereotype of decay in each generation that follows. The so-called greatest generation versus entitled millennials versus a new generation that will never know an existence without smartphones and the internet. Time and technology have shaped some undeniable social and behavioral differences, but these kids are just as motivated as I was. In fact, they're probably smarter and cover much more course material than my parents' generation or even I did. Shouldn't this absolutely be the case though?

My class will cover about twice as much material as I did in my high school computer science class. While I had to deal with the sluggish, groaning desktop behemoths running Windows 95 (already antiquated in the year 2007), every student in my class is assigned a laptop that's more than capable of running a Java IDE. We now have education web applications that we can assign homework through which provides much more targeted practice and instantaneous feedback on their work. People record and share high-quality lectures on all sorts of subject matter. Technology and learning techniques are constantly improving, so it only makes sense that the curriculum expands as well.

Even as someone who creates new software on a daily basis, I can't accurately tell you what the technology universe or computer science careers will look like in the next ten or fifteen years, but I do know that the barrier of entry for work is getting higher. More and more roles are getting automated, but there is still a near infinite number of problems for the next generation to solve. These students will have to rise up to previously unattained educational heights in order to be able to find lucrative careers and contribute to society. It's up to us to prepare them for the journey. Each generation must continually improve and adapt its education in order to adequately prepare its youths for the next iteration of society that they'll be soon enough shaping themselves.

It can be annoying that kids get distracted on social media during class. Sometimes it can even feel like I'm vying with that computer in their pocket for their attention. However, these are the tools that students will have going forward to solve the challenges they face, and there's no question in my mind that being exposed to technology from a young age does far more good than harm. I have the pleasure of working with some incredibly bright and promising students, and I refuse to subscribe to the idea that the greatest generation has already passed us by.

If Something Feels Thankless, Reconsider Your Motivations

I met up with my teacher at the high school a few days before school started in August to see the classroom and get acquainted with the administration. He invited me to join him for a teacher assembly in the gym. On the walk over, the entire marching band was lined up in a long hallway blaring the ESPN theme song to pump up the teachers returning to school. Little did I know that before the school year had even started, I was receiving the most external gratitude that I'd probably ever get as a volunteer.

Programming can be frustrating and stressful. I work diligently to build rapport with my students every time that I'm in classroom, but understandably they would much rather talk about why their code isn't working as opposed to how their day is going. They understand that having me around to answer technical questions is incredibly valuable, so they keep the personal talk to a minimum. It can feel like thankless and impersonal work sometimes. I give a lot of my precious spare time, and at first, I struggled with the lack of feeling appreciated. I'm not always able to see the impact that I'm making on my students. I won't see how it affects their academic and professional careers for some time either. I probably never will. I had to learn very quickly to derive personal satisfaction from within.

No one sees the odd schedule I work to be in the classroom, the hours I spend preparing, or the time I spend in the evening helping out with homework over email. Very few people have thanked me directly, but I've come to realize that I don't need it and wouldn't get far if I did. Everyone wants to be recognized for their dedication, but I've grown to love my role in the background because I truly believe in my motivations for teaching. I don't need a marching band, but it's nice when it happens that way.

I Didn't Realize How Much Time I Wasted Until I Didn't Have It

I'm reminded of an old adage about a family living in a one-bedroom house. The parents complain that it's too loud and there's no space. They ask someone for help who suggests that they bring in several animals into their already cramped, rambunctious home. The parents then complain that it's even louder and more crowded than ever before. Then, they are instructed to remove all the animals from their home. The family ultimately realizes that their house originally wasn't that bad in comparison.

I work full-time and try to have a social life, so one concern about accepting a commitment like teaching was how it would affect my work-life balance. For the first few weeks, I was constantly exhausted and felt like I didn't have enough time to do chores, go to work, exercise, teach, lesson plan, and so on. I began to examine my routine and realized how much time I was allocating for things that I didn't care about. Instead of de-stressing after work by consuming mindless social media, I should have been exercising to unwind. Instead of shirking chore duties until late Sunday night, I should have spread my duties across the week. Adding in more responsibility to my seemingly overbooked schedule made me realize that I needed to prioritize and organize my time better.

Stay in the Moment, But Always Have a Goal in Mind

When designing every single lecture or lesson plan or assignment, I'm constantly faced with a simple question: why? The specifics are often determined by the preferred learning styles of my students and culturally responsive teaching practices, but with each topic or skill that we introduce, I always focus on why they need to know it. How does this fit into the bigger picture? How can it be synthesized with other concepts? How can it be used in the real world?

Not everyone in the class wants to grow up to be a programmer like me, but I constantly ask myself what computer science can offer every single student regardless of interest or desired career path. Critical thinking and creating abstract algorithms are high-level concepts that can be applied to absolutely anything. Technology now affects nearly every facet of human life, so I bring in guest speakers to class to illustrate how what they're learning could be utilized in a wide array of careers.

But my 'why' isn't just limited to the curriculum or even computer science. Most importantly, I try to show my students passion. A decade ago, I was on the other side of the desk and at the start of a long and winding journey through college towards my current career. I mean no insult towards my parents and family, but I simply wasn't surrounded by very many university graduates growing up. I never thought of higher education as opening countless doors to the future. I couldn't even begin to fathom the implications of the major or school that I chose. For better or worse, our education system requires that young high school graduates make these life-altering decisions despite massive socioeconomic inequities and educational gaps.

I want every single student in my class to consider furthering their education after high school. I openly share my pitfalls and accomplishments with them in hopes that one day they'll be even more successful than me. I aim to be a voice of genuine encouragement that reminds them of what they're capable of and that where they come from doesn't have to dictate where they end up.

Everyone Can Give Back

If you're a technology professional, I'd encourage you to consider volunteering for a program like TEALS. Even if you're not, there are countless programs that offer opportunities to make a huge impact in shaping the lives and futures of students everywhere.