Learning by Teaching

For the last few weeks I’ve been working with Kickstart Academy teaching the On The Beach ruby academy. We’ve been introducing a group of graduate and experienced developers to software development using ruby, bdd and git. Much of the teaching in the academy was based on ideas from Training from the Back of the Room by Sharon Bowman and I wanted to share one of the exercises that we ran.

Bowman’s book has had quite an influence on the way that I approach training. The book focuses on leaving behind traditional training methods where learners are a passive audience as the trainer pushes information through lectures and slides. Instead, Bowman suggests that trainers should try to connect learners to past experiences, use shorter presented segments, and focus on giving learners lots of oppurtunity for concrete practice through exercises and activities.

Another major theme in the book is the idea that trainers should “step aside” and let the learners teach and learn from each other. This really stood out to me as I have found that whenever I’m teaching something to someone else, it helps me understand it more.

We set the group a task to go and spend some time researching the SOLID principles. They worked in twos or threes and each group took one of the principles.

We gave them 45 minutes to produce a poster about the principle before we got back together and presented back to the group. Each group had the chance to think about their principle and how it affected some of the things we’d been working on. After each presentation we had a group discussion about the benefits and drawbacks that following the principle presented. Working through them together made the connections between the principles obvious.

This exercise, it’s output and the discussion between the learners really highlighted to me the role of a trainer. As a trainer we aren’t there to teach, or to talk at learners. We are trying to facilitate learning. We want to create an environment where the learners are able to discover ideas and try them out for themselves, offering guidance and help when they are stuck. Not only does this make the training more interesting and relevant for the learners, but it makes it more satisfying to teach. You get fast feedback about how the group are doing, and what topics you might need to spend more time on.

Here are the posters the group created.

Single Responsibility Principle

Single Responsibility Principle

Open-Closed Principle

Open-Closed Principle

Liskov Substitution Principle

Liskov Substitution Principle

Interface Segregation Principle

Interface Segregation Principle

Dependency Inversion Principle

Dependency Inversion Principle