Skip to content

Advancing

As your programs become more advanced, blocks based programming can become more challenging to use as the programs can bet large and unwieldy. At this point you will want to transition from blocks to text based programming. One of the best languages to use to make this transition is Python.

The easiest way to get started writing Python is to use an online IDE which helps minimise the barrier to entry as no software needs to be installed. My favourite and recommended online IDE is Replit and is what I use at my Code Club as it has a free tier. Replit can also be used from pretty much any device including Windows PCs, Macs, Linux, Raspberry Pi, Android tablets or iPads. See the Replit guide to get started.

Python is also supported on all the MakeCode platforms including MakeCode Arcade, MakeCode Mindstorms and BBC micro:bit platforms. This gives a natural migration pathway when using those platforms.

If you enjoyed physical computing projects, the natural next step is to run Python on microcontrollers to control sensors, lights and sounds. For this there is CircuitPython. To give you a flavour of what can be done with CircuitPython (or its cousin MicroPython) take a look at these short YouTube videos of the Halloween 2023 project and Halloween 2024 project projects which my daughter and I worked on. You can read more about that adventure and see some other projects we've worked on at Coding Clubs by heading over to my GitHub project pages pico-interactive-halloween and pico-interactive.

Python

See my recommended books on Python in books.

For a gentle introduction to Python, start with the Code Club Python materials.

To start writing Python with greater depth, progress onto the Python materials by Al Sweigart.

More some more in-depth games written in Pygame Zero, see my collection of Games with Pygame Zero.

If you feel confident in your Python abilities, have a go at my Python Challenges.

To explore Pygame Zero a bit more, work through Coding Games with Pygame Zero & Python by Richard Smith.

MakeCode Arcade Python

MakeCode Arcade also allows you to write your games in Python (though it is more limited than Replit and not as mature as the MakeCode Arcade TypeScript tooling). The materials that I initially produced highlighted some issues with the early access Python tooling so we stopped using it. In time, I'm sure the tooling will mature enough for us to use it again. The materials are marked as alpha, beta or final based on the quality/stage of development of the material. The alpha materials will be first stage PDFs, beta are updated web based materials but not necessarily battle tested in the Coding Club yet so may contain errors and final will be the tested materials.

1 - OXO, alpha

2 - Invaders, alpha

3 - Smash, alpha

4 - Frog, coming

5 - Muncher, coming

CircuitPython

Now is time to move onto the Raspberry Pi Pico with CircuitPython! This takes you on a journey of physical computing where you write Python code to control microcontrollers.

Don't be scared by any complex looking electronics. Getting started with CircuitPython or MicroPython is super easy and there are plenty of guides available. For some great places to start, take a look at the my CircuitPython links.