Programming Languages for Kids
Rogelio Valdés
Oct 7, 2020
See the Video Game Programming Course at robinacademy.com/vg
We all understand how important programming has become. Technology is taking up a bigger role in our lives every year, and we are realizing that we do not only need to learn how to use technology, but also how to create it.
So how should I begin? Or how can my children begin creating technology? I want to share a little about how I started when I was young, and some of the paths I think are better avoided.
First, let me explain what a programming language is. The native language of all computers is made of ones and zeros. Computers think, act, and communicate through signals such as on or off, true or false, 1 or 0. This language is called binary, and in theory I could control any computer directly if I knew how to communicate in binary. Humans can learn to do simple operations in binary, but it is incredibly difficult to express more complex instructions that way.
That is why we invented higher-level code that is easier for us to understand and can then be translated into binary so the computer can follow it. Over the years, we have developed languages that look more and more like human language, usually English, and that makes it easier for us to communicate with computers.
In general, the languages that are closer to human language have to be translated multiple times before becoming binary. Imagine that someone is speaking to you in Chinese and you do not know Chinese, but you have a friend who translates from Chinese to Spanish. Now imagine that the message had to go through two, three, or four translators before it finally reached you in Spanish. Something similar happens with programming languages. If you already knew Chinese, that would be very convenient, just like knowing binary would be convenient for computers. But it is much easier and faster to rely on those translators than to first learn Chinese from scratch. Programming works in a similar way.
In computing, the languages that are closer to binary and require fewer translation layers are called “low-level languages,” while the ones that require more layers of translation are called “high-level languages.” I almost always recommend that children begin with high-level languages.
When children are starting from zero, the important thing is that they can build something as quickly and simply as possible. Once they see that their creation begins to take shape, motivation usually rises fast, and they naturally start exploring more complex projects.
Block-based languages
I recommend starting with a block-based language because it is highly intuitive for children and sits at a high level of abstraction. Platforms like Scratch, GameMaker, and code.org use block-based approaches, and many others do as well. Some of these platforms are more intuitive than others. Some, like Scratch, limit you more, while others, like GameMaker, let you build much more complex games. From about age eight and up, I think these are excellent places to start.
Once a child has built their first projects, I recommend moving into a slightly more complex language such as Python, JavaScript, or Swift. These are still high-level languages, but they open many more possibilities.
Python
Python is widely used to develop websites, servers, artificial intelligence systems, and data-processing tools. It is a very interesting language, but because of the kinds of applications it is commonly used for, I recommend it more for slightly older children, around ages ten to twelve and up.
JavaScript
JavaScript is one of the most popular and fastest-growing languages today. It is used mainly for websites, but it can also control robots, power servers, build Android and iOS applications, and even create games. It is one of the most versatile languages available.
Swift
Finally, Swift is probably the best option if a child already knows they want to build apps for iOS. It is relatively easy to learn, but it is limited to creating apps for Apple devices.
If a child is already certain they want to build video games, then I recommend downloading Unity and learning C#. That is something I would suggest closer to ages thirteen or fourteen because it is a bit more complex.
In any case, I recommend beginning with block-based languages like the ones we use in Robin’s introductory game development and robotics courses. Then, if students want to keep learning a bit of everything and still are not fully sure which area interests them most, JavaScript is a strong next step because it will be useful for almost anything.
See the Video Game Programming Course at robinacademy.com/vg