There are two things that I gained from my experience as a tutor that is helping me become a better programmer: the ability to simplify complex topics to basic principles and the communication skills to clearly convey my ideas. Although teaching and development are completely different professions, the skills needed to excel in them are quite similar.
The ability to simplify complex topics to basic principles has enabled me to pick up new tools and programming concepts quickly. As a junior developer, I’ve had to pick up lots of new things like design patterns and algorithms. Being able to simplify these tricky concepts has enabled me to not only learn them quickly, but also teach them to others and form meaningful realtionships.
My communication skills have saved me in more ways than I can count. It’s especially useful in pair programming because I need to explain my views to my partner when I make a design choice. It’s also helpful to be able to communicate with non-technical people effectively as they’re the ones who will use most of the software we create.
My experience as a tutor has helped me learn new topics quickly, and communicate with fellow developers and non-technical people effectively. I will continue to improve these skills and you should too!