In my journey into teaching, I learned many things about the craft and its role in education, primarily in the programming realm. The challenges I encountered as a teacher are beyond many of the challenges I faced as even as a programmer. In the past year or so, I have been thinking of new ways to teach and bring new awareness to students. Here are a few things I have learned and would like to share.
Create different learning pathways
One of the most common challenges I faced was how to deal with the different skill levels students bring to the classroom. Some students have very little experience while others come with many years of programming knowledge. What I have found is that throwing students with varying skill levels into one class can result in mass confusion. It’s important that all of the students are at or close to the same skill level so they can keep up with the pace of instruction.
This is something I cannot stress enough and is crucial to your success as an educator. Having a good network of educators you can reach out to for help is something I have found useful. Getting advice and tips as well as having folks to bounce ideas off of will help strengthen your lessons and other materials.
And if you are lucky enough to have one, hiring a good teaching assistant is something I would also highly recommend. Your time is consistently in high demand as a teacher and having someone to help with the work load is something that will benefit you (and your students) in the long run.
Your feedback on your job is your students
I have typically been used to getting feedback on my job from bosses, other co-workers and colleagues.
As a teacher, it is sometimes hard to evaluate how you are doing on the job. Were my students learning anything? Am I a horrible teacher? I spent about a week really agonizing about this and had to do a lot of thinking before coming to the conclusion that your feedback is from your students. Are they grasping the concepts? How are their projects turning out? All of these things were appropriate questions to be asking myself whenever I felt anxious about my job performance.
You should like people
I love people. And I love helping people. It is why I started teaching programming, organized the Teen Tech Camp,helped found Girl Develop It RDU and now PyLadies RDU. If you don’t like people, confrontation or managing in general, don’t teach. You will be miserable and ineffective for the people who need you. Also, some of the best teachers I have had in my life are those I felt really cared about my education. It creates a level of trust and confidence between you and your students to show you care.
Also, while being empathetic is important, being able to stand your ground with your students is important too. Your students look to you as the expert running the ship and it’s crucial for you to stand firm in your steering.
Materials, materials, materials!
Creating well-designed lesson plans and materials to teach from and provide to your students is essential for achieving a successful classroom. Here are a few types of materials and teaching styles that I have used, plus some feedback on each:
- Live coding: While this method is primarily used for video tutorials, I have used this in the classroom setting too. Some colleagues have considered this method very effective for teaching coding, but I am a bit more skeptical. What I found was that this method is great for showing students where YOUR skills are and makes them possibly walk away feeling that they have a certain standard to live up to. I didn’t even realize how quickly I type until I was asked to slow down and came to realize how difficult new concepts were to learn with this method. It was even more overwhelming to my students who have slower typing abilities.
- Slides: Creating slides can be very effective when teaching. It provides a nice outline for students to follow and helps organize each concept in am efficient way so that all students can easily understand. Slides also serve as an artifact of the classroom learnings that the students can reference.
- In-class exercises: Muscle memory is a term that I often hear used when people are learning to code. It’s generally referred to as a way for students to start memorizing key strokes and general coding practices. Creating in-class exercises really helps students not only to practice with instruction, but also to apply directly what they have learned at the time. We do this a lot in Girl Develop It and typically break up lectures with hands-on exercises.
Another teaching style that I have not tried yet is something called the flipped classroom. It’s a technique in which students are given assignments prior to stepping into a lesson in order to work on their homework during class time. It then creates an environment in which the instructor is there to offer “personalized guidance” instead of the typical lecture. It’s an interesting concept and one that I can see being very effective in teaching programming.
And on a final note, one of the main things I have learned is that teaching is something of an art form. It takes practice to hone your craft to get really good at it. Be sure to remind yourself to get good at any art form takes time. Rome was not built in a day and neither is a good classroom experience.