March was a pretty busy month for me. All the work with the AI society, final stretch of my degree (exams, projects, etc.); oh and I also started teaching 4 nights per week ๐ .
As previously mentioned, I realized I enjoyed mentoring and helping others learn to code (mentoring at hackathons, giving workshops, etc.), so when the opportunity came up to kickstart a free coding workshop program at a non-profit, I decided to jump in and start teaching.
The purpose of that initiative was to bridge the gap in tech literacy and make quality classes accessible to everyone. The target audience was beginners who have never really touched code before. So I prepared a curriculum and started teaching introduction to Python twice/week and introduction to web development twice/week.
The classroom
In my classes there were people studying physics, arts, biology, and there were even high school students. On top of that, there were a few students currently enrolled in computer science at University and skipping their equivalent class to attend my lecture, citing it was more helpful ๐.
One of the biggest challenges was to keep the material engaging for an audience with such a high level of contrasting backgrounds.
Class size started at around 25 for each course and trimmed down to about 15-20 by the end of the month. I did reach out to people when they would stop coming and reasons mainly involved other scheduling conflicts (it is a free class after all), difficulty to add another course on an already heavy university course-load, and difficulty keeping up with the course material ๐ฉ.
Teaching
When building my slides/curriculum and problem sets, I went in with the target audience in mind: how do I introduce the basics and cover enough in 8 lectures to allow them to continue exploring the topic independently. My goal wasnโt to teach the latest in web development frameworks or PyTorch for beginners, but for students to be able to write/read code and to understand the fundamentals behind how the web is built.
But I quickly realized that pre-course preparation was only useful for guidance, and to truly be effective I had to adapt the course material/pace/timeline based on the progress and response of my students on a daily basis.
During the whole month, I couldnโt stop thinking about how I can help students with their struggles, always trying to come up with better exercises, it was constantly occupying my mind even before my own class assignments and exams. Understanding that any attempt at a one size fits all solution would not be successful, I always worried about how to not bore the highest performers but still keep the ones having the most difficulty engaged & not feeling left behind.
Overall Iโm incredibly satisfied in my experience as a first time teacher. Programming can be intimidating to those trying it for the first time, I knew I could help not only teach, but also breed confidence in people through empathy and the way I simplify and parallelize concepts with other aspects of life they can relate to. That personal connection and understanding I built with students was the key to success.
Conclusion
Often time, people who have skills in an area find it difficult to empathize with people who are new and not equipped with as much experience in the field. This is my strength, and I hope that as I progress in my career I never lose this ability. Teaching others from the start is a great way of working on my own empathy in tech.
Iโve always appreciated the work teachers do in educating generations after generations of people, building the foundation of our society, but I built even stronger empathy through this experience. The work of a teacher extends far beyond the confines of a classroom and should never be underappreciated. Its more than a fulltime job, itโs an immense burden of responsibility. Thank you to all the teachers whoโve played a part in my development, you are the real MVPs.
EDIT:
Another semester is now underway! ๐๐