How do you support the ecosystem that supports you? By giving away your expertise.

This is the story of our Scala Study Group: an experiment in training and community building.

Scala Study Group
Tests vs. Types

Scala is our go-to language for our back-end services because it’s proven, reliable, and performant (and it’s really fun to work with). It’s a young language that is still gathering traction in universities, colleges, and industry so our interest was in trying to grow our local community of Scala enthusiasts through experiential education: free hands-on mentorship and social learning.

The Experiment

We ran the free Study Group using the “flipped classroom” model popularized by Khan Academy: students watch the videos at home in preparation for coming to our office once a week. To keep it simple, we opted to piggyback on existing course material and parallel Coursera’s Functional Programming Principles in Scala.

At each session, participants took part in group code reviews and worked through their challenges or the assignments in a group setting. They drove the questions and the agenda, and received guidance from their fellow students and their mentors: Hootsuite Scala software engineers who are actively writing code.

“Nice! I was signed up for the Coursera already. But now I am glad to find a bunch of folks to sync with!” – Johnny H.


Why? Everybody Wins.

We liked this experiment because there’s so much upside. We believe it:

  • Feels really good to help others learn
  • Connects you with other smart, collaborative people
  • Builds our local community of Scala / Akka / Functional Programming enthusiasts
  • Provides examples, tips, and tricks learned from running Scala in a real-world application
  • Provides a social incentive for you to work on the assignments
  • Leads to deeper learning by having to teach and by having sounding-boards for your questions
  • Provides a window into a collaborative engineering culture
First_Scala_Group_Study_Session__Coursera__-_Vancouver_Scala_Meetup__Vancouver__BC__-_Meetup
Scala Study Group on Meetup

Things That Worked

From comments, retrospectives, and my own observations:

  • Ending with a bang: Our last session was a Scalatron tournament. Scalatron bills itself as “what may be the quickest and most entertaining way to become productive in Scala” (they’re right).
  • Professional mentorship.

“The Scala Study group Hootsuite hosted was amazing because I had the opportunity every week to speak to people who know the ins and outs of the language, get advice, and understand functional programming. The study group encouraged me to actually LEARN the material rather than just completing it, which then helped me do really well in the Coursera course. Plus, the mentors at Hootsuite are wicked, you couldn’t ask for any better!” – Dorothy O.

  • “A/B” group code reviews where participants saw different perspectives on the same problem: two participants showed and explained their answers to the same question.
  • Soliciting themes at start of each session and tailoring mentorship to these themes.
  • Conducting retrospectives at the end of each sessions: participant feedback helped us to iterate towards making each session a little bit better. We published these retrospectives notes on the Meetups comments, so participants could hold us accountable.
  • Sharing practical applications of Scala as well as tips and tricks for everyday programming in Scala.
  • “Offline” help. A Google Doc (http://ow.ly/BCz7I) was the focal point for collecting questions from participants outside of the sessions. Google docs are universally accessible, easy to use and share, and allow for code formatting. The only downside of a Doc is discoverability. To truly work out loud, our questions and answers could be somewhere more public, like our Meetup comments.
  • VanScala Meetup group: an existing forum for contacting potential enthusiasts where the organizer helped us get our signal to that community.
  • Lastly, this model also looks promising for blending training with community involvement for other technical skills like Javascript, HTML/CSS, PHP, operations engineering, etc.
Hootsuite *hearts* Scala
We *heart* Scala

Things We Can Do Better

  • Broadcast this initiative to a wider audience such as students at local universities and high schools.
  • Interest and attendance was high and the beginning but petered out over time. Is this normal? Maybe. Feedback on the sessions was quite positive so I suspect participants dropped off as other things in their life took priority or the material became more challenging. Next time we’ll surface reasons and quantify our impact by following-up with an anonymous survey after the study group ends.
  • I’d love better gender balance too: of the 11 mentors, none were women; and of the 35 students, only 3 were women.

Takeaways

Build your community by giving away your knowledge and expertise for free. In the end, 46 participants and mentors are richer for this experience: a little more educated, a little more connected, a little more experienced, and a little more confident. So, we’re going to continue this experiment with Scala in mid-April alongside Principles of Reactive Programming on Coursera.

Thanks

To the mentors and all the students who made this such a rich and rewarding experience: Laurence Man, Johnny Bufu, Jim Riecken, Edward Soo, Yanik Berube, Steve Cullingworth, Toby Sullivan, Ken Ho, uji, Steve Song, Edd Steel, Andrew Gray, and Beier Cai.

To Lindsay Staniforth, Kimli Welsh, Luke Kysow, Jim Riecken and Laurence Man who read early drafts of this post.

Noel Pullen 200x200

 

About the Author: Noel focuses on culture, employee engagement, community involvement, and training for Hootsuite’s technical groups. He loves to exchange ideas and would like to hear how you do these things at your organization. Get in touch via Twitter @noelpullen.