Learning by teaching — what I’ve discovered by coaching others to code

Zone’s front-end developer Fran Haines tells us how mentoring for the charity Codebar has helped her build up a deeper understanding of her own skills…

Fran at work with fellow front end developer at Zone, Silvia.

Have you ever heard the phrase ‘teaching others is the best way to learn’? Some may dismiss it as illogical — what can you possibly learn from teaching other people? Back in June 2020, I started coaching at Codebar, a charity that helps runs regular free workshops to help people from underrepresented groups learn to code. I started mentoring at the workshops because I wanted to give back to the tech community — but I wasn’t prepared for what it would give back to me.

Language is key

Some may go into teaching knowing they want to become a better communicator. With this in mind, new teachers may find it difficult to translate technical terms to students. A really useful habit to get into is to explain a new technical term when it is first introduced.

This could be anything from explaining what vanilla JavaScript is, to describing the concept of an MVC pattern. Simple and concise language is important. As you can imagine, the more you do it, the easier it becomes. Before you know it, this new-found skill in simplifying your language may find its way into your work too.

The ‘spot the difference’ game is important

We all have times when it seems like our build has broken for absolutely no reason at all. Before we admit defeat, we’ll ask for help from a colleague to give our code a second look. They spot the syntax error right before our eyes — we just never saw it.

Sometimes it’s easy to overlook how important it is to have that second pair of eyes. We typically work in large teams of developers who are always open to helping one another out. However, some students may be learning alone or in a remote environment where it’s harder to reach out to people with smaller issues like this. We can all agree that this game of ‘spot the difference’ is all the more important when we first start out and it’s harder to recognise these syntax issues. What you may notice by helping someone with their errors is that the more you do it in a project you’ve never seen before, the more efficient you’ll be at debugging and picking up common mistakes.

You know more than you think

One aspect of coaching that may come as a pleasant surprise is you’ll realise you know more than you think. Being asked about problems that you potentially haven’t faced in over a year, yet being able to recall how to fix them, is such a quick win.

The student you are helping may ask how you knew the answer without having to look it up, which is a great way to make you really think about why you are using that particular approach. Being able to explain it will not only help the student understand your thought process but will reaffirm to you that you thoroughly understand the approach and why it is being used.

If you ever feel you suffer from imposter syndrome, these moments in mentoring may help you greatly. However, if you don’t know the answer to something — that’s okay! Which leads nicely on to this next point…

You learn together

When a student asks you something you don’t know, you can work it out together. Unless you’re a wizard, you will never be able to predict what anyone asks you. But this is a really good opportunity to show the student how you work it out.

A good example could be that a student asks what a particular JavaScript array method does, but you can’t remember. So together you decide to open up MDN Web Docs and do a bit of reading about it. You could start looking at how it works in a simple project together. Once you’ve understood its use, you could talk about whether you could potentially use it within the student’s project. This could be a really great way to introduce the student to the concept of pair programming. From this, you have managed to refresh your memory over something you had forgotten about — result!

Stay curious

All developers, both beginner and experienced, ask questions — it’s one of the best ways to learn. But if you want to really expand your learning experience in coding, helping beginners in areas that are outside your current knowledge base can be transformative. Students may ask questions or discover things about a coding language that you have never thought about before. If there’s an area that you haven’t touched on much previously, rather than being intimidated about it, embrace it as another learning experience.

Final thoughts

Teaching is a great way of measuring your current skills and building up a deeper understanding of them. It can be challenging and intimidating at first, but understanding that you don’t have to know everything and seeing it as an opportunity can really help shape your mindset .

Forward-thinking initiatives such as Codebar are imperative to helping bridge the diversity gap within the tech industry — something that we, as an industry, should all be striving for.

We write about design, content, strategy & technology to share our knowledge with the wider community.