Meetup #49: A Clojure Dojo

These are the notes from the regular Amsterdam Clojurians meetup. Next time, why don't you join us?

In its #49 edition, the Amsterdam Clojure meetup was not about presenting or discussing about our beloved language: it was about getting our hands dirty and engage in a programming challenge.

This writeup will surely fail to capture how fun it was, but will hopefully give you some good ideas about how to organize a super fun event with your colleagues or your local clojure community.

Approach the dojo

There are many ways you can run a code dojo. The most adopted formula is the Randori, where

  • > you hook up one laptop to the projector
  • > the group chooses a problem to attack
  • > two folks start to pair program in front of the others
  • > after 5~10 minutes one new developer joins the pair and one leaves

Now, in my experience that can be an awesome format for a dojo when most of the developers in the audience are experienced. Participation is really key in a successful dojo experience, and if newbies are there they will likely be unable to follow the most experienced ones, disconnecting pretty soon from the collective stream of thought presented on screen.
The main reason for organizing our dojo was to make it easier for newcomers to enjoy and learn from the meetups, so clearly the randori was not the best option for us.

Extreme pair programming

Getting inspiration from various sources, I settled for the following structure:

  • > I chose a problem upfront, both challenging and accessible: the bowling kata
  • > the audience was split up in pairs
  • > every pair had three pomodoros to complete the task
  • > at the end of each pomodoro anyone gets to choose where to keep or change the partner
  • > each pair presents their solution, however partial or broken, hooking up to the projector

The result was great, both clojure veterans and complete newbies had the chance to progam, discuss and try to solve the riddle. Out of seven pairs, only one was eventually able to complete the assignment, and only at the very end of the time available.

Both pair progamming and the final show and tell sessions were particularly engaging. We didn't have many swapping pairs, IMO because of the almost perfect split between veterans and newbies: only one swap after the first pomodoro. But the idea seemed to tickle enough people to propose it again the next time.

Carlo Sciolla is a Clojure fanatic, open source addict and technology enthusiast. He likes to organize stuff, and runs the Amsterdam Clojure meetup in the last years. He also likes to write about himself in third person. <> @skuro