We've been having fun learning Python!

Since the start of August we’ve been running weekly sessions to teach some of our colleagues Python. I wanted to give some background about why we’re doing this, talk about a couple of the challenges we’ve come across and most importantly share the materials in the hope that other people may want to use and contribute to them.

Back in May, inspired by Stripe’s blog about teaching employees to code, we started talking about doing something similar at Made by Many. Stripe got someone external in to organise sessions for 24 employees, with a 5 hour per week commitment, covering a fair range of topics. We’re much smaller and need to be flexible around client work, so we decided to do something more contained and informal. We chose to teach Python (I won’t go in the reasons for this choice here, but they’re covered in the course) in sessions of one and a half hours per week.

The first big challenge was scheduling. From a poll of alternative times, including work hours and evenings, we went with the most popular choice: Thursday lunchtimes. I think there are pros and cons to this: it’s asking people to give up their free time, and taking a proper lunch break can be really important to mental health and afternoon productivity. On the other hand, client work and meetings would have made scheduling during working hours really difficult for people to consistently attend, and lunchtimes are better than evenings for inclusivity. We’ve found that between a third and a half of people wanting to attend will be unable to make each session, and we’ve been running catch up sessions at other times to help people not fall behind. I’m considering switching from the set timeslot to running a poll at the start of each week to try to find one or two slots that would enable everyone to come along.

Another challenge was getting the materials written. Having written and delivered courses before I knew this would be a big time commitment; in my experience the time to write materials is roughly one to 1.5 times the time it takes to deliver them. My first couple of sessions took a fair bit longer than this, as I was working out the right formats to put things in, what content should be covered, and the right order. I had initially imagined I would have a fair chunk of the course written before it started; this didn’t happen. That turned out to be a very good thing: it meant I could apply the lean and agile principles we use on our projects to writing and delivering the course. I ask for feedback after each session (I use a retrospective-like format of ‘what went well?’, ‘what could have gone better?’ and ‘what’s one thing you’d like to know more about?’) and try to tailor the next week’s session to take this into account. One very valuable suggestion after the first session was to flip the format of having an explanation of a concept followed by an exercise, to doing the exercise first and then having a ‘what happened there?’ explanation. This format seems to be working really well; it encourages people to experiment to try to work out what’s going on, and gets people talking and helping one another. It means that the exercises take a little longer to put together, as I have to make sure I’m not going to overwhelm people, but the slides became a bit simpler.

I think the sessions are going well so far. We’ve dwindled from fifteen or so in our first session to six or seven now. But having spoken to some of the people who didn’t come back, it doesn’t seem that there’s anything that could have been addressed directly in the materials or delivery, and some people would be interested in attending another run in the future. The remaining attendees seems to be enjoying themselves, which is definitely the main thing. My two favourite moments so far: people getting excited in the first session when we got their screens set up with black background and green text like 1337 h4x0r5 and one of our designers realising why developers always send him files with underscore and hyphens in them instead of spaces (“I thought you guys were just trying to annoy me”). I’ve planned the course to run for twelve sessions, although I’m not going to worry if we need a few more, so we’re about halfway through.

The materials we’re using are all available on github. They’re written primarily to be delivered in a classroom setting, but might also be useful for someone wanting to work through the exercises alone. They are a work in progress, and I’ll continue to regularly push up new material as I write it. If you’d like help, or to discuss or contribute (pull requests are very welcome!) please reach out to me @pinkhobgoblin or @madebymany.

Continue reading

Technology

A Year of React Native: Styling Part 2

Sam Murray   ·   21 September 2017

Digital Transformation

White collar thinking: why business management needs to shake off some core beliefs before it can ‘get’ digital

Business management shares a value system forged to solve 20th Century business problems centred on cost, price and marketing. Our century's challenge is ...

William Owen   ·   5 September 2017

People

Kaizen and minarai: Continuous improvement and the Made by Many summer internship

Charlotte Hillenbrand   ·   21 August 2017