For those who don’t know, my job, for the forseeable future, is that of an after school STEAM instructor at The Digital Arts Experience. This means that recently, I have taught kids to code in Python, and have directed them through fun coding exercises using Edison Robots and the EdPy program and Processing.

My degrees are not in education. Many of my friends who are teachers tell me that I will learn on the job, and that officially having a certification means nothing. To me, the certification implies that you know where to find the correct information to deal with situations that come up. Certified teachers still have to learn through trial and error, but have at least theoretic knowledge of the sorts of problems they may run into and ways to handle them gracefully.

As I do not have a degree, and I am concluding my first set of classes, I find that it’s important to record some of the lessons I’ve learned from my experiences, so that future me will make fewer mistakes.

Proper Preparation Prevents *\!~ Poor Performance

Someone who’s been in my life forever always says this, especially whenever something has gone wrong. It seems to hold pretty true for teaching. What I have found is that, not only is proper preparation important, but what counts as proper preparation depends drastically on the subject matter, age level, and the group of kids. I can’t just set aside an hour, and say that I’ve completed what I need to.

For me proper preparation includes

  • Coding through an entire lesson worth of work
  • Reading through any potential lesson plans
  • Listing a bunch of potential questions that students will have.
  • Thinking up extra-curricular exercises, and trying to at least write pseudocode for those, if not fully coding them out

I’ve found that while under the pressure of having a bunch of small humans solely focusing on me, I do not come up with complicated solutions well. I can definitely modify a lesson on the fly to make it more interesting to the students, but generally, if I did not come into the lesson with code, it’s not a good idea to write it for the students. Honestly, I have always had the same problem with coding interviews. It’s just a bad idea for me to come up with something novel under pressure.

However, there’s a tradeoff.

All of this requires time. Creating new things requires very much time, and if I am exploring how to do something, I can easily put 6 – 20 hours of into preparing for an 1.5 hour class. So, while I’m getting my bearing on new courses, I have found that unless I decide to dedicate my entire life to teaching, I cannot justify creating new courses. Also, I have made a promise to myself to be the best teacher I can, given the restriction that I will not spend more than \(x\) hours preparing for class.

Bored Students are Mischievous

When a student is not engaged, for whatever reason, that’s when I find that the student’s interactions negatively impact the class.

In the most benign cases, the bored students I have run into just distract their neighbors. Give a student a computer, and it is very easy for them to distract themselves and those around them. In some cases, they find internet sites and play games. In others, they don’t listen when asked to move forward with the work, and work on other work instead. Either way, the neighbors see this, and wonder why they should do their work when their classmates can goof off. With older students, I tell them that what they get out of the class is what they put in, sort of like in life. (Special thanks to Matt, one of my teaching assistants, for this pearl of wisdom.)

Sometimes, students are bored because they just don’t want to be in the class. This might be because they don’t want to learn to code, but their parents want them to, so they’re just there. It might also be because they’re advanced, and want to move faster than the class. Here, I’m stuck. When I give the advanced students more work, the less advanced students, also high achievers, don’t want to move on unless they finish the work. Also, the advanced students need someone to walk them through their work at the same time that the less advanced students need someone to walk them through their work, and I cannot show the code for both things at once. I haven’t yet found a good solution for this.

What I do try is to make lessons more engaging. I try to give the students a sense of choice, so that they have some say in what the code does, but are still working through the important concepts. In the same way that a parent may lay out 3 different shirts for a toddler to choose from, and 2 pairs of pants, and tell them to pick one of each, I try to provide a structure, and let the students pick some options from within that, but not let them choose other options. It’s like saying no to the toddler wearing only 2 shirts and no pants.

I also like to give the students a chance to make something cool on their own with what they learned, if possible. When they understand how to put the skills together to do something, they can direct the computer to do something much more interesting than they can just with individual skillsets.

Students Look Up to Me?

That’s right… when I’m the instructor, the students look up to me. It’s a strange feeling. It’s partially flattering, and partially terrifying. I feel like I need to be a particularly polished human being for them, because I would never want to accidentally influence them to do something bad. It’s one thing if I wander into unfortunate situations due to what I’ve said, or choices I’ve made, but it’s another if I’ve led someone else down a rabbit hole that they never would have found if they hadn’t met me.

This means, that I have to watch what I say. Not just word choice, but the topics I talk about as well. If I mention a current event, or even just a though about computers, they think that what I say is right.

I also need to make sure that I treat them all very equally, or some might internalize that I find them less valuable. The students I work with are typically very bright, but how do I connect with them in a way so that they don’t feel like they’re in competition with one another? This is an important skill.

Overall, the students I have taught so far are generally sweet, want to learn something cool, and just want to impress everyone around them. Like every other human, they want to feel special, and I think that one of my jobs as a teacher is to lead them to make something that makes them realize that they are special.


I don’t think this will be my forever job, but teaching is a great learning experience for the moment. While many go into teaching for stable jobs, my current experiences have reinforced that students deserve teachers who want to teach them.

Teaching requires a lot of time, a lot of dedication, and involves a lot of frustration and patience. If someone doesn’t want to deal with the students, they will be miserable.

As an exercises, I challenge you to think back on a teacher you had who lived for their job. Their every action in the classroom, and many outside of it, led to your enrichment as a student. If you were lucky enough to have one of those special individuals, please, send them a mental thank you!