5 Things I Learned from Teaching Programming
Over the past two weeks I have been teaching a coding bootcamp for high school students. Though I have a background in teaching, teaching code is very different from teaching middle school math. The first day of the bootcamp reminded me of my first day of teaching EVER. Here are some things I learned from this teaching experience.
1: Teaching makes me spot bugs FASTER.
From looking at 30 different student laptops a day, MULTIPLE times a day, it became pretty easy for me to spot a missing semi-color or quotation mark. A student would come up to me and say, “But I have EXACTLY the same code as on the board.” Clearly, if you did, you wouldn’t have any errors! I can now look at a student’s screen and spot the typo, the misspelled word, the missing punctuation. Looking at multiples bugs in other people’s code has helped me recognize them and resolve them more efficiently.
2: It’s OK if I don’t know the answer to something.
One of the skills I’m teaching this week is HTML and CSS. A student asked me, “How can we center the h1 (first header)?” I couldn’t remember the exact name of the CSS property, but I felt comfortable saying to the entire class, “Good question, what should we type into Google to help us find the answer?” We searched together as a class and found the text-align property was the solution to our question. Finding answers as a GROUP is part of teaching programming.
3: Coding is about creativity.
One of my Flatiron instructors used to say, “There’s different ways to skin a cat.” Meaning, coding is about solving problems and doing it over and over again in creative ways. The students this week have been working on their final projects and it’s so interesting to see what inspires them, what fonts they use, what layout they chose and how they write code to support this. It’s refreshing to hear one student say to another, “Oh I didn’t do that, I did this instead and it still worked.” It’s inspiring to hear the student reply, “Wait I wanna know, show me how you did it your way.” With coding, students really do want to see THE OTHER WAY. It’s not like solving a math problem, where your goal is to get the right answer as fast as possible.
4: A coding lesson is successful when students feel accomplished.
At the end of today’s lesson, one of my 9th grade students came up to me and said, “WOW, I can’t believe I made four website files today, I feel so accomplished.” I can’t speak for all of my students, but 100% of them were engaged, none of them seemed to HATE code, but sure, there was the normal amount of programmer frustration. Amongst the frustration, I could see real pride in the websites they had started to make today and excitement that they were finally couldn’t to use the skills I had taught them to make something that was their own.
5: Girls are doing the thing.
I’m teaching two classes right now — 9th and 10th grade. In both classes, the girls are BY FAR exceeding the boys in terms of speed of grasping material, being able to teach their classmates, and going the extra mile by looking up concepts we haven’t even learned in class yet. Girls are EXTREMELY interested in learning how to code and especially how to use code to build things that they are interested in. The boys needed a little more convincing about why coding is an important tool they’ll need in their academic and possibly professional toolbox. Meanwhile, the girls were happy to go deep into unexplored coding “territory” and try things they had never done before.
Overall, the most important thing I learned while teaching how to code is the same thing as the most important thing I learned while LEARNING how to code: LEARNING HOW TO LEARN. Embrace failure, break it, fix it, break it, fix it again.