Tuesday 6 June 2017

Running A Code Club, Not A One Way Educational Street

You'd think that running a Code Club was a one way educational street, with the volunteer enthusing the children about what they could make these things called computers do, but after 5 years I've found the street to be very different with traffic flowing in both directions! You see by day I'm a software developer who once a week goes to a local primary school to run an after school coding club. You'd think that after 20+ years in the IT industry there would be nothing that the children could teach me, but every week I'm learning and being reminded of things!

Today primary school children are taught coding and computational thinking through environments like Scratch, a fantastic, welcoming and friendly place to start that firmly puts fun and creativity front and central. Individual commands are replaced with colourful blocks which can be snapped together to make programs that animate characters or control a robot. For developers who live in Microsoft's Visual Studio world, these definitely aren't fully fledged development environments! With a limited instruction set, few variable types and not the smallest hint of objects you are constantly having to go back to basics. And this is the thing that I am constantly reminded, "Keep it simple". At a time where new frameworks and developer tools are being thrown at us on a daily basis it's all too easy to get swept along with using them. Now I'm not saying that all these technological advances should be thrown away but a happy medium between the two should be striven for. Throwing in a "clever solutions" just for the sake of it while might seem like a good idea, could lead to others wondering how something works. Remember you’re not always the developer who will be doing the next change! If working as part of a team, code produced should not only do what is asked of it but also be easily manageable!

A child's head being full of ideas is the next thing I constantly face. Once they start seeing what they can create, ideas start tripping over each other. I want to create a game, a car driving game, through a maze, with monsters, and can shoot lasers! All this after they managed to make Felix the cat (Scratch's introductory character) bounce around the screen. This is the next skill the children constantly bring out in me, one of listening to someone's requirements. Then after listening, feeding back to them in achievable chunks and letting they know when something is impossible to do. Personally I want the children to leave each week feeling happy with what they have created and if they have some grand plan that they can see progression towards their goal. All of this isn't just applicable to the children's requests, as developers we can face these sort of challenges on a daily basis and if not handled properly can result in others not being happy with what is delivered and more stress on yourself.

Next is the children's level of creativity, it constantly reminds me to keep searching for new ways of doing things and to never accept the status quo. It's all too easy to just do something because it's the way it's always been done. But this doesn't mean it’s the right or best way. The children's creativity is never constrained by a box of what has gone before and neither should ours. Yes we may have been bitten by failures in the past and we bring these experiences to the table but that doesn't necessarily mean the same will happen now! Technologies change, advancements are made, so re-evaluate before casting an idea on the scrap heap.

Finally we have the children's boundless energy and enthusiasm. Sometimes it's all too easy to forget why you got into the IT industry, for me it was the love of coding, problem solving and logical thinking. Sometimes a job can end up being a mundane routine, something you do Monday to Friday, 9 till 5. Then every week the children's energy and enthusiasm remind me that I love to code too. Their attitude to all this coding lark is infectious. They remind me of my younger self, without the pressures of everyday life, where I was coding my own ideas, without deadlines. They remind me that within the confines of an IT job there are still places for everything they hold dear, keeping things simple, listening, realism, creativity, energy & enthusiasm. These kids aren't being forced to attend Code Club, they want to be there, they want to learn, they want to express themselves, they want to have FUN!

This blog post was written off the back of a lightning talk that I gave at a developers conference.