How to get students from Scratch to Python.

“My students have been learning to code on Scratch, but now they want to move on to the next thing: text-based coding. We’re trying to get them learning Python, but they’re struggling.”

At Codesters, we often hear quotes like this from teachers we meet at conferences such as ISTE and CSTA. I hate to hear that kids are struggling to learn to code.

Transitioning from Scratch to Python might appear daunting at first, but it doesn’t have to be a painful experience. In fact, a big reason we built Codesters was to make the transition from block-based programing to text-based programming intuitive and straightforward. Codesters is as easy as Scratch, except with Python. Here are a few common challenges students and teachers face when advancing beyond Scratch and how we tackled each.

Problem 1: Scratch is Fun. Text-based coding can feel boring by comparison.

The reason students sometimes struggle to learn text-based languages like Python is that they don’t have a coding environment that makes learning Python easy and fun in the same way Scratch does. So when we built Codesters it was important to create an environment that allowed kids the ability to view, edit, and work with code in text form, while also employing a similar style of engagement, ease-of-use, and ability to rapidly create using familiar drag-and-drop.

Problem 2: Block-based platforms provide kids a constrained set of contextual options. Text-based programming removes these training wheels. 

When students code in text-based languages they can be overwhelmed by the syntax and what to type into the editor. Students working in Scratch by comparison have a defined set of choices in a set of menu items that well organize the “syntax” options. Codesters blends the best of both worlds. Our unique Drag-to-Text Toolkit allows students toCodesters Python Learning Environment drag and modify the code, while preserving the ability for students to write text-based code when they are ready (Click here to see a short video of how our toolkit works). We have found that this 3-step process – drag in code blocks; modify variables and operators; then type and edit directly in text – is the natural way for students to learn coding syntax.

Problem 3: Scratch lets kids make visually interesting projects they can share with classmates immediately. In text-based languages this is often harder than it need be. 

Part of the fun of coding is showing off what you built, and that’s just as true for kids as it is for adults. A transition from block languages like Scratch must take that ease of sharing into account. This is why we built the “Create” assignment at the end of our structured classroom lessons – a feature teachers tell us again and again they love. These “Create” activities allow students to share projects with others from the get-go. And it’s all done in Python, with direct access to the text-based code.

More than 50,000 students have started learning Python on Codesters. We’ve learned that it’s possible to give students and educators both the ease-of-use and immediate gratification of block-based languages while providing direct instruction in an industrial-grade, widely-used, programming language – Python.

We believe the Codesters learning platform to be the most engaging and effective way for students to learn coding generally and Python specifically. It’s great for both students coming from a block-based background as well as those coding for the first time. If you want to try out Codesters, go to and click “SIGN UP FOR FREE”. And if you’re headed to CSTA, we hope you’ll stop by and check out our presentation, “Integrating Coding into Math and Science Lessons for Grades 5-9”, on Monday June 11 from 8:30 AM to 11:30 AM.

If498dfd6715eb9dd4ebe96422974b7d8d you have any questions about how to use Codesters to teach your students Python, send me an email. I’m at gordon(at)

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s