For a long time, coding was text-based. It pretty much went without saying. You would need to write a computer program using letters, numbers, and words. For example, let’s say you had a picture of a monkey, and you wanted it to move across the screen. You might write something like this:
This code would tell the monkey to move a distance of 10 units. If you changed the number in the brackets, you could make it move more or less. This is an example of text-based coding. There are loads of text-based programming languages, which work in different ways, but they all use letters, numbers, and words to tell the monkey what to do.
In the 1980s, people began to experiment with a new type of programming language. Visual coding, as it’s usually known, doesn’t use words and numbers. Instead, it uses pictures and symbols. For example:
Those are just emojis. They wouldn’t actually do anything. But they should help you to imagine what a visual language looks like. The pictures are nice, clear, and intuitive, and a lot easier to work with than text-based code. But at the same time, it’s more limited than text-based coding – there’s only so much you can do with it.
In general, visual coding (which is also called block-based coding) is great for beginners, but if someone wants to code at a higher level, they’ll need to learn to use a text-based language eventually. You can use visual code to move a monkey around, but not to build a complex website or app.
Should kids start with visual coding?
In a lot of cases: yes.
A visual coding language will help a child to understand some basic coding principles in a nice, easy way. They don’t need to worry about remembering syntax, or spelling words correctly, or anything else like that. They can just drop pictures into place, and run the code, and watch the monkey slide across the screen.
Pictures are more fun than words. They’re bright, interesting, and nice to look at. For a child, it can often feel boring and daunting to stare at a wall of text. That’s why children’s books have pictures in them – it’s more likely to grab their attention.
Because of all this, most kids do better when they start with a visual programming language. They can use something like Scratch or Blockly, which let them drag colorful blocks around the computer screen, and arrange them into lines of code. Kids can even get started with this before they’ve learned how to read and write. With no words to worry about, reading levels are irrelevant.
At some point, children will outgrow whichever visual language they’re working with. When they do, they’ll need to move on to a text-based language. This is the most popular way of doing things: learn the basics of code through a visual language, then progress onto text-based when you’re ready.
But is that the only way to do things? Of course not. Even though it isn’t the norm, there’s nothing stopping a kid from learning a text-based language first. It’s a lot more work, but it has some benefits. That’s what we’ll be talking about next.
Getting started with text-based coding
Of the three, Python is probably the best place to start. It uses simplified syntax, which makes it easier to read and write compared to other text-based languages. There are also lots of apps and websites which can help a child learn Python. One thing’s for certain: when you’re learning Python, you’ll never run out of resources.
- Banana Tales is also an excellent resource for Python learning. This is an educational video game, where players need to control their character by writing lines of code. For example, they might tell their character to move forward, stop, pick up a key, turn left, move forward, and pick a banana.
- ‘Python for Kids’ is a book written by Jason Briggs, with an emphasis on fun and excitement. The book guides kids through all kinds of Python-based coding challenges, featuring monsters, secret agents, and more.
Whichever resources you choose, there is something important to remember. This won’t be as easy as visual coding. Even the simplified syntax of the Python language is considerably harder than learning to code with nice, simple pictures.
For starters, there’s the keyboard to think about. You can’t write a text-based coding language without knowing how to type. But small children don’t have the best motor skills, and high-speed typing is usually out of reach. They don’t even know where to find all the letters. They’ll type an M, then spend several seconds searching for the O, then several more seconds searching for the N, the K, the E, the Y…
It could take a child well over a minute to type that out. Well over a minute, with some typos and backspaces along the way. When that’s the kind of speed you’re working at, coding can feel like a slog. Especially compared to visual code, when you don’t need to type a thing.
Text-based programming is also more likely to go wrong. A misspelled word, or a missing bracket, will stop a program in its tracks. Children will find themselves debugging, and debugging, and debugging again – far more than they would when they’re using a visual programming language.
And we aren’t just talking about the kid here. As a teacher or parent, you must also be patient with the process. Support them, encourage them, and congratulate them on every small achievement, even if it’s as small and simple as finishing a line of code. This long journey will feel a lot more bearable if you celebrate every step.
Is it worth all that time?
For most kids, probably not. It would be easier to start with a visual language, which lets them relax, have fun, and worry about learning a text-based language later. In some cases, starting with a text-based language will even cause more harm than good. Children will decide that they hate coding, and never touch it again when they’re older.
But it definitely depends on the kid. While some children will hate the slow process of text-based languages, others will excel, and rise to the challenge. They love how difficult it is, and feel proud and excited when they finally manage to fix a bug and get the code to run.
For a kid like this, text-based programming might be worth a go. After all, there are some benefits of starting early, without learning a visual language first.
#1. Text-based languages have a higher ceiling
With a visual language, the ceiling is extremely low. Kids can have some fun, and build some cool little programs, but that’s all they can really do. Text-based languages don’t have that problem. As kids get better and better, they create more and more things – the sky is the only limit.
#2. You can get through the struggles early on
Let’s say your kid starts off with a visual programming language. They learn the basics, have some fun, then hit that ceiling we just talked about. They realize it’s time to move on to a text-based coding language, just as so many children do.
They’ll still need to go through a bunch of struggles and mistakes. They’ll have to unlearn some of the things they used to take for granted with their visual language, and start over with a bunch of new rules and techniques for their text-based language. They’ll also need to practice typing, and get into the habit of debugging lines of code.
It might be slightly easier after doing some visual coding first, but it will still be slow, and a lot of hard work. Some people think, if you’re going to go through this process anyway, it makes more sense just to get it out the way as early as possible.
#3. The struggles are good for character building
In the past, we’ve talked about the transferable skills that children can learn through coding. They become more patient, and resilient, and calm in the face of problems. They’ll still learn these skills through visual coding, but if they manage to navigate a text-based language, their patience and resilience will develop on a whole other level.
Just to be clear, this will only work if a child is already strong, and hard-working, and really wants to do this. It won’t help anyone if you force them to learn a text-based language when it isn’t something they want to do. Instead of becoming more patient and resilient, they’ll be left feeling sad, frustrated and demoralized.
As we’ve already mentioned, in the majority of cases, it’s better to start with a visual language. Once children have learned the basics of coding – and most importantly, decided if they like it – they can start to learn a text-based language later. It’s like learning any skill: it’s best to start with something fun and simple, and worry about complexity later.
But in certain cases, if a child is keen to learn a text-based language, and you think they have the patience to see it through, there’s no harm in giving it a go. At the end of the day, they’ll be getting a headstart on the kids who don’t start a text-based language until they’re older.
But remember: if your kid finds it slow, or boring, or difficult, don’t force them to keep going forever. The last thing you want is for them to develop a hatred of coding in general because they started text-based coding too soon. If they’re not having fun, it’s never too late for them to change their mind, and try visual coding instead.