I’ve helped to run Women Who Code Sydney for about a year (along with Lucy Bain and Peggy Kuo), and it’s been a blast. We organise practical hands-on workshops for a variety of technology like Arduino, Golang, Sass, Scala and Swift.
Participants spend about 1.5-2 hours working through a tutorial or problem set on their laptops, and can ask volunteers for help if needed, so it’s slightly different to a typical user group: the attendees are expected to code at every event. I know that I personally learn more when I’m forced to do something, as opposed to listening to someone’s experience, and after you’ve done the workshop, everything’s installed on your laptop ready to experiment more at home.
A typical event might be:
- 6:00pm: Arrive and dinner, chat to others
- 6:30pm: Announcements and introductions
- 6:40pm: Speaker topic for the night (e.g. introduction to Reactive Extensions)
- 7:00pm: Commence hacking
- 8:45pm: Feedback forms
- 9:00pm: Finish
Things I’ve learned while running a hands-on user group:
Have a target that people can aim for
Inviting people to “learn some javascript” where there’s no specific learning material makes for a confusing meetup, because there’s no target to aim for. People will ask a variety of questions from all different angles (e.g. “what does var mean?”, “what do you think of angular vs react?”, “can you explain promises?”). If you provide a tutorial or set of exercises, there’s a defined path that is supposed to be followed to learn something, which cuts down lines of questioning and also provides people with a goal.
Designing a tutorial from scratch takes a lot of work (and rework).
You’re not likely to get it right on the first go, so unless you’re aiming for something you can re-use, you are better off going with already published material.
Utilise existing interactive online tutorials
They’re a big win. The tutorials have already been tested by hundreds of people before you, and someone has put a lot of effort into designing them. They explain concepts step-by-step probably better than you will first time.
Always try out the tutorial first
It’s important to gauge difficulty and identify what prerequisites are required. Also, sometimes the instructions change and it’s not the same tutorial any more!
Give people the answers upfront
If you are writing a custom set of exercises or tutorial, give everyone access to the answers. When people start with a working solution, it’s a lot easier to break various bits to see what they do, rather than having broken code and trying to diagnose what needs fixing.
Have some helpers available to answer questions
This is the thing that people don’t have access to at home. It really helps.
Aim to maximise everyone’s learning experience
You won’t actually cover that much material in a two hour window, so try to pick content that people can try at their own pace – that way everyone learns something.
Select an audience for your meetup
Choose either beginners, or people who are already familiar with programming. It is very difficult to cater for both at the same meetup.
Clarify prerequisites
State whether people need to understand simple if/else statements, or something more involved like recursion. If people turn up to an advanced tutorial but only know basic programming, they might start feeling like they don’t know anything and get discouraged – that’s the last thing you want!
Limit the speaker’s time in chunks
A 10 or 15 minute window is a good amount of time to keep people’s attention (especially after they’ve done a full day of work). Talk for a bit, let people experiment and try what you talked about. Repeat. This is difficult to keep in balance with a self-paced set of exercises, because some people will be ready for the next section before others, but it keeps people focused.