How to learn to program

In my last post I shared some tutorials for Making Classic Games in Python, these have proven to very popular in our code club, helping kids learn Python with Pygame Zero.

A key part of successful learning is the learner’s motivation. If this is strong then they will be focussed and determined to make progress, even when they hit challenges or get frustrated (which is very common when learning to code).

However, what exactly is their motivation?

Often it is to re-create the classic game on their computer so that they can play it. Nothing wrong with that… it helps them work their way through the tutorials. But it does mean that often they are not trying to understand the code, just get it working.

When kids get stuck we often see a real lack knowledge of coding to solve the problem they face.

So what? We have a great team of mentors and we feel useful helping kids make progress and sharing our knowledge of coding to help them solve problems. That’s rewarding for the mentors.

However, our primary aim is to help kids learn how to learn. This is hard and takes time, but results in much more resiliant learners. A sign of success is that many of our older kids become mentors themselves, either informally helping their neighbours or by stepping into the mentor role.

So how do we help kids discover a motivation to understand the code? Really understand what it is doing and why it works?

We give them the choice to explore this path, and refer to the path as an interesting thing they might like to try.

That’s the theory anyway!

We have created a tutorial series called The Little Pythoner (inspired by classic book The Little Schemer) and we’ll be testing this out over the coming weeks. We’ll let you know how we get on…

A final point for now. It is important for the kids to have lots of good choices – e.g. making games, understanding coding, making something new – our role is to help them explore these paths when it is right for them.