Over the last year and a half I’ve been working with a self-organised dev study group at Envato. The group was started by one of our juniors to help him and his peers to get better at software engineering and grow professionally faster.
I volunteered to help them with running most of their sessions by giving them talks and demos, answering their questions and sharing learning materials.
My goal was not only to help them with their professional development, I also wanted to better understand how to work efficiently with juniors, practice my public speaking skills, and get experience with mentoring others. It’s been a great experience so far. Sometimes even eye-opening.
For example, I realised how big that knowledge gap between experienced developers and juniors is. That helped me to learn to explain various technical things (my design approach, implementation details, etc.) much better without omitting details that already seem obvious to me.
I’ve noticed that our juniors are often interested in learning very practical things, something they could apply at work literally next day. For instance, they were particularly interested to learn how to refactor code, optimise SQL queries, use test-driven development efficiently, and how to understand which code is good and which is not.
Interactive learning sessions, like for example one where I demonstrated an approach to refactoring a piece of code into a loosely coupled set of reusable classes, or a demo of using NewRelic to detect a bottleneck in application code were really interesting to the group members.
Over time the group has changed significantly. It lost a few members. However, those who stayed (including the founder of the group) remain very motivated to learn.
Also published in my Medium account.