Andy Kent gave a great talk at Forward about things that he has learnt through CoderDojo about kids and what they do and don’t understand when trying to learn. I’m going to reiterate some of his points here and add a few of my own on top.
Kids don’t get the file system. Our guess is that with the advent of mobile devices that hide the file system from you, knowledge of files and folders has just bypassed the younger generation. The phrase “Save that file in My Documents” literally doesn’t mean anything to the average 8-10 year old.
Kids don’t like typing. This is one that I found out the hard way when doing a simple HTML session for Hackney Pirates. Asking them to copy some example code just doesn’t fly. It sounds obvious when phrased like that but my reasoning at the time was that if they wrote the code out, it would stick with them better. The truth is they just get bored and stop listening.
Kids don’t know what or where on the keyboard you would find “angle brackets”. Who knew?
camelCase will almost always trip a kid up. You will find that, even though it might not be an idiom of the language, it is always better to use snake_case. It is clearer and will save some annoying, unintuitive error messages for them when they inevitably don’t realise which letters are capital and which aren’t.
Enough of the negatives, here’s a list of awesome things that kids are capable of and how to try and help them make the most of their time learning to program:
Phrase tasks in terms of the end goal, rather than “learning objectives”. Good: “Today we’re going to make music with code!”, bad: “Today we’re going to learn MIDI!”. The prospect of creating something is way more fun than the prospect of learning something, despite the latter being a side effect of the former.
Kids love Minecraft. We find in CoderDojo that roughly half of the kids will play Minecraft at some point in the session. We’re hoping to plan something around Minecraft in the near future.
Kids whose parents get actively involved in the session tend to do better and have more fun. One of the sessions we did involved creating an HTML5 canvas fireworks display and one of the parents got into a competition with his two kids about who could create the most epic fireworks display. It was fantastic to watch and all three of them had fun and learnt new things.
If you give them the right tools, preparation and environment, kids will consistently surprise you. I’ve seen 10 year olds recreate theme tunes from the Legend of Zelda using a simple Ruby script. I’ve seen kids create sparklers that follow your mouse in a web browser. Their creativity is endless and giving them the tools to express it will yield great results.
Kids have awesome and fun things to show you. Showing an interest in what they’re doing before/after sessions has always been rewarding for me.
That’s my brief list of things learnt in about 4 months of CoderDojo and other teaching related ventures with young people. If you are thinking of starting up or getting involved with a CoderDojo in the future, don’t hesitate to get in touch. We’re happy to share our resources with anyone :)