Online vs In-Person Coding Classes for Kids: Which Fits Better? (2026)

Which Is Better?

Dimas Prasetyo
Education Analyst, Algonova

A child's first programming language should be Scratch for ages 5-9 and Python from age 10 onwards. Scratch uses visual blocks, so a child does not need to type quickly or memorise syntax. Python fits once a child reads comfortably and can think in steps. Roblox, which runs on Lua, works as a bridge for children aged 9-12 who already play Roblox every day.
Algonova is an online school for coding, maths, AI, and design for children aged 5-17, with more than 1,000,000 alumni across 97 countries since 2016. Classes run live with certified teachers in small groups of up to 10 students, not recorded video, with 45, 60, or 90-minute options and prices from Rp 102,000 per session.
A child who starts with a language that is too hard usually quits within the first two months, not from lack of talent, but because the obstacle was the wrong one. Typing print("hello") without a typo sounds trivial to an adult. To a seven-year-old still sounding out words, one missing bracket means a red screen and a sense of failure.
Scratch removes that obstacle. The child drags blocks while the logic stays identical to Python: loops, conditions, variables. Only the typing burden disappears.
So the right question is not "which language is best" but "which language gets least in my child's way right now". The basics are covered in What a Programming Language Is.
Answer these seven questions. Whichever direction most answers point is your starting place.

If five or more answers point at one language, start there. If they split, take the easier one: the cost of erring towards too easy is far smaller than erring towards too hard.
The fastest way to be sure is not guessing but watching your child try once. A free 60-minute masterclass exists for exactly that: the teacher watches how your child works and recommends the starting point.
For children aged 5-17 in Indonesia, three languages cover almost every starting need: Scratch, Lua in Roblox, and Python.
| Language | Ideal age | Form | First result |
|---|---|---|---|
| Scratch | 5-9 | Visual blocks | An animation or simple game within 1-2 sessions |
| Lua (Roblox) | 9-12 | Text, but light | An obby or map friends can actually play |
| Python | 10-17 | Full text | A calculator, a quiz, then data or AI projects |

Three things decide it: age, reading ability, and what your child already likes.
Age is the first filter but not the only one. A ten-year-old who has never touched coding is still better off with Scratch for 2-3 months before moving to text. An eight-year-old who reads fluently and is bored by blocks can try Lua earlier.
Reading ability matters more than maths marks. Text-based coding asks a child to read error messages and locate the mistake. If reading is still heavy work, start with visual blocks.
Interest is the fuel. A child who loves drawing often moves faster through design and animation than through games. Graphic Design for Kids is a different door into the same thinking.
The most expensive mistake is choosing a language for its job prospects rather than for the child.
A parent hears Python is used for AI and enrols a seven-year-old in a Python class. The child lasts three sessions and announces that coding is boring. What breaks is not one course but their interest for several years.
The second mistake is switching languages too fast. A child who goes from Scratch to Python to JavaScript inside a year masters none of them. Stay with one language for at least six months.
The third is judging progress by lines of code. A child who spends an hour fixing one bug is learning the most valuable thing there is, which is systematic thinking. The wider context is in
A child is ready to move when the tool starts to feel limiting, not when the calendar says so.
The signs are concrete. Your child complains that Scratch cannot build what they have in mind. They ask how to save a score permanently. They start copying the same block over and over and get annoyed with themselves. That is the moment to move to text.
The typical gap is 6-12 months in Scratch before Python, depending on practice frequency. Once a week for 60 minutes plus short independent practice is enough for a primary-school child. On healthy screen limits, see Screen Time for Kids.
The class path by age is at Coding for Ages 5-7, Coding for Primary School, and Coding for Teens.
Lua is compelling because the motivation already exists at home. A child who plays Roblox every afternoon is far easier to teach once they learn they can build their own map. The first steps resemble those in How to Make Your First Scratch Game.
Python is a language used for real work, from data analysis to AI. For a child the value is different: its syntax reads closest to plain English. A concrete example lives in A Child's First Python Program.
Scratch is the best choice for beginners aged 5 to 9, while Python suits children from age 10 who already read fluently. The reason is not that one language is superior. Scratch uses drag-and-drop blocks, so a child does not need to type quickly or remember punctuation. The logic being learned is identical to Python: loops, conditions, and variables. Take a seven-year-old who cannot yet touch-type. In Python, one missing bracket breaks the program and the child feels stupid. In Scratch, a wrong block is simply pulled out and tried again with no sense of failure. For children aged 9 to 12 who already play Roblox daily, Lua in Roblox Studio makes a strong bridge between blocks and text.
A child can start Scratch from age 5 using ScratchJr, and full Scratch usually becomes comfortable from around age 7. The limit is not the birth certificate but reading ability. ScratchJr uses picture icons with no text, so a kindergarten child who cannot read yet can still build an animation. Full Scratch labels every block with words, so a child needs to recognise short words. As a benchmark, a six-year-old can usually make a character move and speak within one 45-minute session. That immediately visible result is what makes a child want to come back next week. At Algonova, classes for ages 5 to 7 run 45 minutes because that is roughly the attention span at that age.
No. A child does not need strong maths marks to start coding, because early coding uses sequential logic rather than complex calculation. In Scratch and Roblox, the maths that appears goes as far as addition, subtraction, and x and y coordinates for moving a character. All of that is early primary-school material. The reverse often happens instead. Many parents report their child becoming interested in numbers after starting coding, because there numbers produce a visible consequence on screen. A child managing a game score understands addition without feeling they are doing maths. Maths only becomes genuinely necessary later, for instance when a child builds a physics simulation or a data project in Python from around age 13.
On average 6 to 12 months in Scratch before moving to Python, depending on how often the child practises. The calendar matters less than the readiness signs. A child is ready when they start complaining that Scratch cannot build what they imagine, ask how to save a score permanently, or get frustrated copying the same block repeatedly. For example, a ten-year-old studying once a week for nine months has typically built three or four games of their own. At that point blocks start to feel slow and text feels liberating. What to avoid is switching too early. A child who changes language three times in a year masters none of the three.
Yes. Building games in Roblox Studio uses Lua, which is a genuine text-based programming language rather than a toy. A child making an obby writes code to detect touches, move players, save scores, and manage timers. The concepts match Python exactly: variables, functions, conditions, and loops. The advantage is motivation. A child who already plays Roblox every afternoon has an obvious reason to learn, which is wanting friends to play a map they built. That desire for peer recognition is far stronger fuel than parental encouragement. The limit is that Lua in Roblox is tied to the game world. For a child aiming at data or AI, Python still needs to follow later.
One 45 to 60-minute session per week is enough for a primary-school child, plus 20 to 30 minutes of independent practice. More frequent is not automatically better. Children aged 7 to 11 typically lose focus after about 45 minutes of directed work, and overly long sessions make coding feel like a punishment. Take a family that schedules a 60-minute Saturday morning class plus one free 20-minute session midweek. That pattern keeps the material fresh without adding load on school days. Regularity matters more than duration. A child who studies 45 minutes every week for a year progresses far further than one who does three hours once a month.
Not fluency, but a child should recognise short English words such as print, if, and while before starting Python. Python keywords are English, but there are only about thirty of them in regular use. Children usually memorise them as symbols, much as they memorise button names in a game. For instance, a fifth-grader learning Python in an Indonesian-language class follows along fine, because the teacher explains concepts in Indonesian and only the keywords stay English. At Algonova, classes for the Indonesian market are taught in Bahasa Indonesia, so language is not a barrier to starting.
A standard laptop or computer with a camera and a stable internet connection is enough for both Scratch and Python. High specifications are unnecessary because Scratch runs directly in the browser with nothing to install, and beginner Python uses only a lightweight text editor. Connection stability matters far more than processor speed. For online classes a headset helps a great deal, so the child can talk to the teacher without background noise. A tablet works for ScratchJr but becomes awkward once a child moves to text-based coding. Roblox Studio is the exception, since it needs a Windows or Mac computer and does not run in a browser.
Boredom after a few weeks usually signals that the difficulty level is wrong, not that the child lacks talent. The two causes are opposites. If material is too hard, the child keeps failing and gives up. If it is too easy, the child feels their time is wasted. Both look identical from outside: the child refuses to open the laptop. Telling them apart is simple. Ask what they built last. A child bored by ease can explain it fluently; a child who is overwhelmed avoids answering. The fix is usually changing the project, not the language. A child bored with animations often comes alive when asked to build a game their younger sibling can play.
Yes. There is no difference in coding ability between girls and boys aged 5 to 17. What often differs is the kind of project that sparks initial interest. Some girls engage faster through story projects, animation, and character design than through shooting games, and that is a fully valid route to the same concepts. Take a nine-year-old building a story animation in Scratch. She still uses loops, conditions, and variables, exactly like a child building a racing game. In Algonova classes the balance of girls and boys is relatively even, and a graphic design track is available for children drawn more to the visual side.
Coworking Area, Gedung IT 6 Lantai Dasar, Nongsa Digital Park, Jalan Hang Lekiu, Kelurahan Sambau, Kecamatan Nongsa, Batam, Indonesia Directorate General of Consumer Protection and Trade Compliance – Ministry of Trade of the Republic of Indonesia. WhatsApp Ditjen PKTN: 0853-1111-1010.
PT Algonova Indonesia Cerdas All rights reserved 2026