Should my Child Learn to Code with Scratch or Python?
But still, I can understand the question - if you have a child who is between 8 and 13 years old… which language should they start with? It might come down to your personal preference or your personal goals in the end, but I have written out some of my thoughts and tips below.
A Case for Scratch
Simply put, Scratch (and all block programming) is a visually simplified programming language. It is a programming language like the others, or at least a strong simulation of other languages, and you can achieve a high level of complexity with projects in Scratch. As a matter of fact, if you visit scratch.mit.edu, you will probably see some rather advanced games and animations that people have created in Scratch.
However, Scratch is not a “professional” programming language. It was designed for kids. It has no practical purpose in the world other than giving kids early exposure to computer science. All of the blocks, which could be considered functions in their own right, are pre-programmed for the student. So in another programming language, getting a character to move 10 steps might require some more creative looping, while in Scratch, there is literally a block that says “move 10 steps”. So even though kids can create some really cool stuff and it is a fun challenge, practically speaking Scratch will not prepare you for a career of any kind.
I have met multiple people who tell me they programmed in Scratch for 8-10 years, then decided to pursue a degree in computer science, and now they know multiple languages. I do not see Scratch as an impediment at all to a long-term professional career as a software developer.
So why do we teach Scratch, or why would we recommend it to a 10 year old? I have summed it up to 6 basic reasons, which you can see below. If you feel like your child is beyond the reasons below, it might be time to consider Python as a starting point for your child.
1. Scratch is a fun, creative outlet
From your first lesson, your child can create a fun animation, add music loops, make things bigger and smaller and whirl all around. Later on, they can create their own game using their own custom objects. Literally no two projects on Scratch need to be the same - it is a true sandbox of creativity.
2. Scratch builds fundamental logic skills
If you want your child to be a pro-level programmer, or even just develop their mind in that way, Scratch is a great starting point. Having taught hundreds of kids Scratch, I can tell you that it usually doesn’t take long for kids to hit their first logic roadblock. Overcoming those obstacles is one of the most important attributes of being a pro coder, and Scratch gives you good practice.
3. Scratch is visually appealing and good for animators
When I was a kid I was obsessed with MS Paint. But we were only making 2D drawings at the time. Nowadays, kids can make drawing after drawing and then piece them all together into stories and animations in Scratch. These stories and drawings can be a precursor to other animations software that might be designed for professionals. Plus there is a huge anime community on Scratch.
4. Scratch is easy to grasp without books, help, or typing ability
It is easy for your child to be held back from learning a professional computer programming language because maybe they don’t have the right teacher, or they have trouble sticking with a book, or they don’t know how to type and move very slowly. With Scratch, the visual drag and drop allows kids to move quickly and have fun, no matter their skill level.
5. Scratch is highly accessible through the web
Anyone all over the world can use Scratch. One of the benefits of it being a pre-programmed programming language is that it can be translated into any language. All anyone needs is an internet connection (or Scratch desktop) and you can create projects and connect with people from everywhere.
6. Scratch has hardware extensions that are really neat
The fact that you can run motors and other hardware sensors off Scratch is a huge game changer. With tools like Microbit and Makey-Makey, kids can make their own game controllers. So basically they can create a full-on video game (like Super Nintendo) in Scratch!
A Case for Python
Python is a programming language used by professionals in industry. It is a lightweight and simple to read programming language compared to others. In industry and based on my experience, Python is primarily used for data science and finance. So many of the powerful data-crunching algorithms that a high-frequency trading algorithm might use would likely be programmed in Python. Many web apps run on Python as well! Of course there are many other applications for Python, even at a young age. We recommend Python to curious kids and parents who want to take the next steps in their coding journey.
It is funny to me that Java is the language of choice in most high school computer science classes because Python has much less challenging syntax than Java in my experience. Students who have a strong grasp on logic and typing can typically complete a simple project quickly. As you have probably gathered, Python also has the ability to create extremely high-level projects.
So here are my 3 reasons why your child should consider Python for learning to code INSTEAD OF Scratch:
1. Your child likes text-based coding more than block-based visual coding
I have known many kids who are just “over” the way Scratch looks. I know this could have something to do with a tween attitude, but we are trying to motivate kids to take their first steps in coding. If they are turned off by something, for whatever reason, let them try something else. They can try all sorts of stuff, and hopefully they will find something that sticks for them.
2. Your child is serious about pursuing computer programming or building an app
I have only known a few kids who have the focus and dedication to build out a full website, app, game, etc. without some serious help from a parent. But if your child is all in, and is spending their evenings every night working on learning to code (and they don’t like the block coding), then I think pushing them to pursue Python is great. It is great preparation for a career, and learning Python is going to set them up better to learn a language like Swift or Java where they can create a phone app.
3. Your child is scoring high in math and is not a creative type
Looking back on my own childhood, I really enjoyed the complexity of a computer. I loved looking inside the computers and getting my hands dirty with technology. I also loved trying to break software programs. While I think I would have found Scratch to be enjoyable for a time, by 6th grade or so, I think I would have preferred Python. It just provides more technical challenges - just keep in mind that technical challenges come with more frustrations.
Summing it up - Scratch or Python?
At Coder Kids, we recommend Scratch as a starting point for at least grades 3-6. I have met many exceptions who fall into the categories I described above, but if I were making a recommendation for 80% of the population, I would say start with Scratch because it is a lot of fun, it teaches great principles, and ultimately we want people to have a positive experience with coding instead of stressing about it from a young age.
We typically transition kids from Scratch to Python around 6th or 7th grade, depending on their ability level. One book we love for this purpose is listed below. It is a Python book but shows how Python code relates to Scratch in a kid friendly way. We recommend checking it out and please include any other thoughts or comments below!
As an Amazon Associate, Coder Kids earns from qualifying purchases.