Let’s get started with a little background – I’m one of those ‘self-taught’ people who started learning how to build websites with the help of the internet and a couple of clued-up school buddies. I was using languages such as HTML, CSS and JS, as well as tools like Dreamweaver, Photoshop, FTP applications (to publish my work online) and even Flash back in the early days of dial-up internet.
I was eager to learn and curious about new technologies, which has never changed! The feeling of seeing something you have developed and deployed to the world wide web transformed into a working prototype in front of your eyes is very gratifying!
After years of working and studying within various industries and returning to university to expand my knowledge in other programming languages and tools, I’ve turned what was a hobby into a career as a Web Developer here at Storm. The past couple of years, I’ve also been involving myself with the CoderDojo coding clubs and running my own in various venues throughout Edinburgh – we now have one running within the office, check out our page for future events!
Teaching young people has definitely given me a different perspective on the challenges that the next generation and digital age is facing nowadays. People as young as three are now using iPads on a daily basis, as technology has become a major part of everyday life. Education itself has even changed to include computer science as part of the curriculum. I wanted to share some of the things I’ve learned from teaching young people to gain a better understanding of the direction we’re headed and how to tackle the road ahead.
The importance of mentors
I’ve had various mentors at the CoderDojo clubs, some with a programming background and some with no coding knowledge whatsoever. There is no requirement to know how to code in order to lend a hand; it’s actually quite refreshing to see how young people and mentors can interact around a given task. Everyone tends to have different interests, whether that’s improving an existing skill, developing a new one or even curiosity in general. Patience, problem solving and an open mind are a good start to teach people how to code!
I’ve found that in set sessions with a given theme, it was best to have a good worksheet available to hand out. This means that young people who prefer to follow instructions and have a base to refer to can get on with the task at hand and those that prefer to just do their own thing also have the freedom to do so. It’s also very handy for the mentors to refer to and follow the instructions themselves.
Setting goals & expectations
At the start of the sessions, we usually detail the task and the expected outcome. We also stress the fact that there is also some freedom and that we’re there to help with every step of the way or any questions that might come up. There is usually a lot more than one way to achieve something in code, so there are no wrong questions!
Find out about individuals
It’s important to have an idea of what each individual’s background is, whether that is very basic knowledge of how to use a computer or they have parents that teach computer science themselves. Both parents and young people have very different expectations of what these sessions should be, but free and interactive access to digital skills is what we are aiming for!
Cover the basics
Coding can be challenging, especially if you have never tried it before and it’s important to make sure that young people understand the basic concepts we’re trying to introduce (such as variables, loops, the logic stuff, but also colour codes and design placements). This can prove challenging depending on age, attention span, level of education and the task, but we always ensure they leave with some new knowledge by the end of the session.
Supporting young people
Anyone can sign up online to the sessions. Despite advertising the task ahead and setting an age range, this comes with challenges of its own. The attendees that turn up come from various backgrounds with different interests, skills or level of coding and education.
Most of the time, young people are interested themselves in learning some digital skills, but sometimes their parents are the ones pushing them to do so. We try to introduce more interactive tasks with some creative aspect in order to attract a more diverse range of young people and keep it fun (like building an interactive flute with some cardboard and conductive paint!).
Some prefer to follow some given steps and are happy to be left alone, whereas others prefer to learn by doing. The level of attention that can be paid to the task and the length of it also plays a large role in what can be achieved within a session.
Depending on the level and interest, we can introduce some new ideas or challenges for them to get through in the next hour or so. This keeps it entertaining and interesting on an individual level.
Some schools, areas and parents have different ways of teaching and ideas of what is more important or deserves more attention. The basic knowledge in subjects such as geometry, maths, arts and so on, can be very different. If identified, those knowledge gaps are targeted and new challenges can be set that fit the knowledge or interest of the young person. This can be done by aiming for more logic-based or design-based exercises, for example.
Trying something new can be scary. We make sure that each individual is looked after and has an appropriate understanding of the task but without overshadowing them and letting them think for themselves as well. We try our best to send them home with some extra knowledge and increased confidence in what they can achieve, or something to show off to their friends and teachers!
Learn about teamwork
For some of the sessions, we try to group the young people in pairs or make sure that everyone checks out the other results from their fellow coders. Some results are very different or have been achieved in a totally different manner, so it’s good to witness how one task can be done in various different ways. This is to increase the understanding of how teams work, but also for creativity!
Both mentors and young people have a certain enthusiasm about new tasks and learning something fresh, which usually means they leave the session with a smile on their face looking forward to the next one, which is what we like to see!
There is a very wide array of free online resources available to learn how to code, which we sometimes use ourselves at the sessions. We also suggest some reading or help via a few links or even use in our personal endeavours.
Choosing the tasks
Coming up with the tasks to run and preparing for it is probably the biggest challenge. Finding something that new and returning young people, but also mentors can both tackle is vital.
Regularity of the sessions
Another thing we might look at, pending the pool of mentors available in future, is having sessions that are more regular or even letting people bring in their own projects. This would however require a certain level of coding skills and knowledge of the language that the project is built in, for instance.
A more interactive approach is encouraged to render the activities more enjoyable and open to a diverse crowd. However, those activities require some specific materials. We’ve been using a lot of the BBC micro:bit resources to achieve this, even creating various types of emoticons that show by pressing buttons on the LEDs given to the kids, which can be a lot of fun!
Hopes for the future
I hope that what we have been choosing so far contributes to a vast range of skills that young people can take home, reproduce and add to their curriculum.
Coding definitely develops all kinds of skills but problem solving, analytical thinking, curiosity and patience when debugging errors are part of any coder’s daily life. Continuous personal development is definitely something that comes with it, from a young age to a perfectly developed career. The industry is constantly evolving, bringing out new technologies, tools and skills to improve and learn. Teaching anyone, including young people, how to code is definitely a step in the right direction.
I would like to take this opportunity to invite anyone that would like to get involved in future CoderDojo sessions, whether as a mentor or leading a session, to get in touch at firstname.lastname@example.org. Any ideas, comments or suggestions are also welcome!