Skip to content

Introducing text-based coding

Introducing text-based coding

Making the move from block-based programming, such as using Scratch, to coding with a text-based language like Python can be challenging. While text-based languages are generally more flexible and powerful, they also tend to require more effort from beginners to achieve results.

Why move on from Scratch?

For Ninjas who are just starting to learn to code, Scratch is completely sufficient for at least the first year, unless they want to create something specific that Scratch can't do but another tool can. Examples of this are a web page, a mobile app, or a 3D video game.

Once Ninjas are confident with Scratch, they need to develop an understanding of the principles of coding and of how computers work in order to be able to learn text-based programming. Scratch, and similar block-based tools, conceals a lot of the functionality and power of the computer in order to make learning the basics of programming easy; using text-based languages like HTML (and JavaScript), Python, C#, Java, or Swift requires some understanding of how computers actually work.

How to move on

To motivate more experienced Ninjas, you can demonstrate examples of what is possible with a text-based language, such as the visually impressive results of using a tool like Unity, or the fact that YouTube is based on Python. But even then, the transition can initially be frustrating.

Moving to web development

My preferred method is to use HTML (and CSS) as the bridge from Scratch to text-based programming, because web pages are generally familiar but are impossible to re-create in Scratch. HTML is forgiving as a language, and using it quickly produces visual results, which provides encouragement and a sense of progress. Furthermore, the ease of including images and embedding videos in a web page helps Ninjas connect their HTML projects to their passions.

Web development also naturally builds on itself: learners can soon pair the structural language of HTML with the design language of CSS. Further down the line, they will be able to add JavaScript to create interactive web page elements. Depending on the skills of your mentors, languages like Python, PHP, C#, or Java can eventually come in as 'back-end' components of a Ninja's website. They can even expand to include advanced topics like databases (SQL) and version control (Git), all without ever leaving the topic of building a website.

Moving to Python

An option that allows Ninjas to more directly transfer the skills they learned from using Scratch, is to move on to Python. This is an easy-to-read programming language that happens to be my personal favourite to work with, because it does so much of the heavy lifting for me!

Another free FutureLearn course the Raspberry Pi Foundation has created is a thorough guide on how to make the transition from Scratch to Python, and how to help learners do the same. I would recommend you take a look at it if you're considering this direction for your Dojo. The course runs in regular cycles, so sign up now for the next round!

Encourage, but don't push

Initially, Ninjas may not want to move on from Scratch, particularly if they find the lack of quick results in a new language frustrating. Encourage them to try the new language for a few sessions. If they’re still frustrated, let them know they can return to Scratch, but to perhaps tackle a more challenging or complex project than they have previously. This could for example be a multi-level video game, or an interactive story with lots of different decisions the player will need to make.

What do you think?

When do you think might be the right time to move on from Scratch? What concerns would you have with trying to make this transition with your Ninjas? Share your thoughts with us in the discussion below.