Less noise, more data. Get the biggest data report on software developer careers in South Africa.

Dev Report mobile

5 lessons teaching children coding taught me

19 September 2023 , by Phindulo Ratshilumela

Teaching is also a great way to learn. You have to break down complex topics in order to teach them to someone else - this allows us to get a deeper understanding on a topic. Here I will share some of the things I’ve learnt from teaching children coding and tutoring university students.


How I got into teaching coding

I got my first taste of teaching while I was studying. I was lucky enough to be chosen as a tutor at the University of Cape Town for second-year Information Systems majors. The course covered software analysis, design, and development. Tutoring started my passion for teaching as I got to work with others and helped others improve their skills.

I later had the opportunity to work at Algorithmics, an educational startup focused on teaching children computer programming. Algorithmics combined offline and online education to teach children from 7 to 17 years old and works to integrate information technologies into our students' education.

My experience at Algorithmics further solidified my passion for teaching, as I witnessed firsthand the transformative power of education in shaping young minds and preparing them for the technological challenges of the future.

Lesson 1: Be prepared

The primary lesson I acquired during my time as a tutor at the University of Cape Town and later at Algorithmics was the profound significance of proper preparation.

It became clear to me that regardless of how well-acquainted or knowledgeable one might be with a subject, effective teaching, especially when it comes to children, demands a meticulously structured approach.

In order to be prepared to teach my students, I take the following steps:

  1. Utilize a solid structure on how I am going to teach a topic.
  2. Gain a deeper knowledge of the topic in order to understand every aspect of it.
  3. Plan my lesson topics in such a way avoids excessive technicality and is instead easy to follow and understand.

By adopting this approach, I found that I could facilitate not only a better understanding of the subjects but also a deeper engagement and connection with the students. This revelation played a pivotal role in shaping my teaching philosophy and significantly impacted my subsequent interactions with students of varying age groups and backgrounds.

Lesson 2: Breaking down topics and simplifying them

Breaking down complex subjects and simplifying technical concepts when teaching is very important. This applies not only to children who struggle with technical terms but also to adults who are not in the industry. That is why it's essential for me to strive for clarity by translating complex jargon into plain, everyday English.

In order to ensure my students understand concepts and jargon, I do the following:

  1. Break down topics using relatable examples, such as likening a loop to a traffic robot,
  2. Constantly repeat terms and get students used to talking about them,
  3. Provide detailed explanations whenever the student needs more clarification,
  4. Havepatience and empathy when explaining topics the first time or the fifth time

Lesson 3: Improved my communication skills

I used to be someone who avoided conversations. Talking to groups or in unfamiliar settings was never my forte. However, my perspective shifted after I embarked on the journey of teaching groups of children and interacting with their parents.

This shift isn't just about addressing a class of students – it's about delving deeper into understanding how to engage with distressed learners effectively.

Navigating this path has enriched my communication skills by exposing me to diverse challenges. I found myself conversing with a wide range of parents – those who have compassion and empathy, as well as those who possess a solid grasp of technical subjects. Each encounter added a layer of complexity to my communication repertoire:

  • Engaging with parents who deeply care about their children's education enabled me to fine-tune my ability to convey information clearly and empathetically.
  • While conversing with knowledgeable parents required me to adapt my language and approach to match their understanding, elevating my capacity for nuanced communication.

Through this experience, I’ve recognised communication is not merely a tool to impart knowledge. It isa bridge that connects minds, transcending barriers and fosters a profound exchange of ideas.

This journey has been an invaluable opportunity for me to refine an essential soft skill, one that not only enhances my role as an educator but also bolsters my efficacy as a developer working with clients.

Lesson 4: Improved my presentation skills

I have also found that teaching has enhanced my presentation skills - not just in terms of delivery, but even in terms of my role as a developer, here’s how:

  • Crafting lessons honed my ability to organize and structure information, mirroring the importance of code organization in development.
  • Adapting content for young learners parallels simplifying technical details for end-users.
  • Utilizing visual aids aligns with modern UI/UX trends as I’m able to design slides and content that looks visually appealing.
  • Breaking down complex topics sharpened my problem-solving skills.

This experience equips me to create software that's not only functional but user-friendly, engaging, and well-structured.

Lesson 5: You can always learn something from the person you’re teaching

This realization was initially surprising. It's easy to assume that your own knowledge is the definitive truth, yet time and again, my students have demonstrated more effective problem-solving approaches.

For instance, during a coding session, a student introduced me to a clever technique for optimizing code execution that I hadn't encountered before. The technique involved using a specific type of data arrangement that's commonly used in programming, kind of like organizing items in a specific way to find them more quickly later.

Learning from my students has taught me the importance of staying receptive to unconventional ideas and alternative viewpoints.

As a developer, this newfound openness has spurred me to explore different strategies, experiment with innovative solutions, and ultimately enhance the quality and efficiency of my code.


The journey of teaching has been a transformative experience, enriching both my personal and professional growth. The skills I've gained in communication, presentation, and adaptability have seamlessly integrated into my role as a developer, enhancing my ability to create software that is not only functional but user-centric and innovative.

Looking ahead, I foresee these skills continuing to shape my career trajectory. The lessons learned from teaching, such as the importance of open-mindedness, creative problem-solving, and collaborative learning, will undoubtedly contribute to my ongoing success as a developer. Embracing diverse perspectives and constantly seeking opportunities to learn, whether from students or peers, will be instrumental in navigating the ever-evolving landscape of technology.

I invite you to consider the power of teaching and mentoring in your own journey. Just as I have benefited from sharing knowledge and learning from others, you too can find fulfillment and growth in guiding others along their paths. Whether it's through formal teaching or informal mentorship, the act of imparting knowledge not only shapes individuals but also fosters a stronger and more vibrant community of learners. So, I encourage you to embrace the role of educator and mentor, and together, let's continue to inspire and uplift those around us.

Phindulo Ratshilumela is an aspiring developer currently working at Algorithmics. He is known for his strong work ethic and unwavering commitment to continuous learning. He’s passionate about collaborating with young and talented individuals in the tech industry.

Recent posts

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.