I'm lucky enough to work for an organisation which gives its staff 5 days a year to volunteer in the local community. And it was through this initiative that I signed up for a digital volunteers register.
Through this I saw a request from the local library to run an after school computer club for primary school children. That sounded like a fun challenge and so I signed up.
They were following the courses on Code Club which is a brilliant resource and didn’t require excessive planning and preparation from me. From that initial run of 12 sessions I was hooked and I have been doing it for 3 years now.
I would thoroughly recommend to anyone who thinks they might be interested to get involved.
Making complicated concepts easy to understand
As well as sharing some of the enjoyment I get from programming with the group, I’ve learned a few other things which have helped me in my day job.
Firstly, my experience of working in software is that people tend to categorise themselves into technical and non-technical people. I have all too often witnessed the painful miscommunications and lack of understanding between these two groups.
Code Club uses a programming language called Scratch. What Scratch does is abstract the complicated concepts into a language the children can understand.
To me that is what software professionals should be aiming to do. What we do is complicated, I’m not trying to dispute that, but it’s not incomprehensibly so.
The onus should be on us to make sure that everyone involved understands the decisions we’re making. And tools like abstraction and visualisation can really help with this.
Also I’m increasingly coming round to the idea that the technical/non-technical divide is a myth. But that’s probably for another time.
Understanding the wider context
My next lesson comes from a realisation I had a few weeks in.
Every week I would give out the booklets for the children to work through. And although they got satisfaction from ticking off each task they completed (working in small chunks and showing progress feels good), they struggled to stay focused for the whole session.
The next session, I made sure we’d had a chat about what we were building first. It made a big difference to how invested they seemed in the small tasks when they knew what it was all working towards. It also allowed them to make their own decisions about how long to spend on tasks.
For example, is it worth spending ages designing a beautiful multicoloured rocket, if it meant they never got it flying?
I've seen this in a professional context so often. People can do the work without context, but the bigger picture provides focus and allows them to provide input into decision making and priorities.
For some of the children, the beautifully coloured rocket was worth sacrificing other parts of their space game. To them, a simpler game that looked exactly how they wanted it to was a compromise they were willing to make. Others were more inclined to focus on finishing everything and building as many features into their games as possible.
The fact that people are naturally more focused on different things is really interesting to me, and has made me think about my own motivations and those of my team.
I think it’s always good to have a mix of perspectives. It also showed the power of giving people space to work to their strengths on things that excite them, as everything the children produced was really cool.
Sadly, due to other commitments, I've run my last code club session for a while. So it felt like the right time to reflect on what I’ve got out of it.
I would encourage anyone out there who works in tech and loves it, to consider doing something like this. You may be planting the seed of someone else working in tech and loving it.