Which programming language should my kid learn? - A guide for parents.

It doesn't matter; what matters is that they learn the fundamental concepts and building blocks of coding in any language. The main reason people fail to learn to code isn't that they chose the incorrect language for a future career; rather, it's because they gave up because learning to code is hard. What matters, then, is what language they begin with to ignite their interest in coding and get them hooked on it; from there, learning any other language is simple.

But, if you must have an answer, in 80% of cases, ages 6-9 should learn Scratch, and ages 10+ should learn Python.

What is coding, and why on earth are there so many programming languages?

Coding is a way of directing a computer to take a specific set of actions. In much the same way we use English to communicate with others, we use coding to communicate with machines.

Deeper down, 1s and 0s (binary) are the only real 'language' that computers understand. Programming languages are a way to translate 1s and 0s into words and sentences that humans can understand and use to tell a computer what to do.

Cool, so why couldn't we just use one language?

Programming languages are like tools, and for different jobs, we use different tools. A tractor trailer, a bicycle, and a Tesla are all vehicles. They all can get you from point A to point B, but we use them for different things. Programming languages are similar. Ruby and JavaScript are great for building websites. Java and C++ are used for trading. Python and R analyze data. Like cars, languages often make trade-offs between ease of use, safety, and speed. The trade-off is based on what needs to be done.

Why it doesn't really matter which language you learn

The next three images show the C++, Python, and JavaScript code to tell if a number is even or odd. You don't need to understand how this works; just notice how they look similar. They all have the words "if" and "else," and they seem to have the same structure with ();, they all have a line saying this weird n%2 thing

JavaScript

Python

C++

The key takeaway is that 99% of programming languages share the same fundamental building blocks or patterns. Logic, loops, input, and output are concepts found in all languages. Though they are all utilized in various ways across programming languages, the fundamental concept remains the same. It is simple to learn any programming language on your own once you have a firm grasp of these fundamental building blocks from just one language.

In one sentence, when you really understand how to code in Python, it will be straightforward to learn how to code in C++ or any other language.

What matters is what language you start with to spark a joy for coding.

It doesn't matter what programming language you learn; what's important is that you learn any language. The biggest limiting factor in learning to code is that kids give up; learning to code can be hard.

When you're starting, the amount of information is overwhelming, you don't have enough knowledge to build anything really exciting, and it's hard to debug error messages you don't understand. So many people quit coding after their first few classes because it's either too hard or it'll take them too long to build anything they're really passionate about.

There are two key ingredients to choosing the right programming language to get your kid hooked on coding.

  1. How quickly your kid can build something they care about, how quickly they get to the aha moment of coding.

  2. The complexity of the language and how beginner-friendly the language is.

I remember the first time I finished my first real coding project and built my first game. I was over the moon excited; I was showing it to all my friends and family, and I would play my own game for hours. The jolt of excitement I got from finishing this project motivated me to continue to learn to code despite challenges.

We want to get kids to that "aha!" moment as soon as possible. Once a student understands how coding can be used to create something they care about and getting to that point of knowledge is achievable, learning to code is like rolling a ball down a hill. Yes, they will still experience challenges, but they have a strong enough reason to overcome them.

Python is often suggested as the best language for beginners, which has its merits. It is one of the simpler languages to learn. But if a kid absolutely loves Roblox, learning to code in Lua (the language used to make Roblox games) will likely be more successful. If a kid really wants to build a website, learning to code in JavaScript will be more motivating.

The next part is how beginner-friendly the language is. Scratch is a language that is very easy to learn because it is drag-and-drop and visual. On the other hand, C++ has a lot of complicated symbols and signs and is much harder to learn than Scratch. This means that students have to figure out a lot of small things before they can even think about making a full-scale app that they can use or share with friends.

Still not sure where to start? Start with Python, which can create games.

Games tend to be the universal language among kids; virtually every kid plays or enjoys games. I originally started coding because I wanted to code my own games; Bill Gates started for the same reason as Elon Musk.

The challenge is that the way Python is usually taught is very dry, and takes a long time to create anything visual, like a game.

But there's a version of Python that lets you create visual output from your first line of code, and within just 1-3 hours of coding, you can learn to create a basic version of the game Pong. The beauty is that kids don't even have to wait for 3 hours to get to the "aha!" moment. It can happen within their first two lines of code because it becomes immediately obvious how what they are learning can be used to create games and other beautiful visuals that they care about.

Python + games + your own world-class teacher?

At Strive, kids learn to code games in 1-on-1 classes. What's more is that the games kids build challenge them to apply what they learn in math, science, and other school subjects to real-world applications. As a result, kids develop a passion for coding while deepening their curiosity about what they learn at school.

Go to strivemath.com now to book a free trial class and get your kid hooked on coding.


Previous
Previous

We Raised $1.3M to Transform How Kids Learn to Code

Next
Next

What is C-STEAM, and how does it affect my kids’ education?