The wrong first question is, “Which language should our school teach?” The right first question is, “What should learners be ready to think, make and explain at this stage?” Scratch, Python and JavaScript are not competing badges. They are different tools inside a broader progression.
A coding pathway is successful when learners can transfer their thinking—not when they remain dependent on one interface.
Begin before the language
Sequence, decomposition, pattern, condition, repetition and debugging can begin with stories, games, classroom routines and paper models. Unplugged work is not a lesser form of computing. It gives every learner access to the ideas before device availability becomes the gatekeeper.
Stage 1: Block-based creation
Scratch and similar environments make program structure visible. Learners can create stories, animations, games, simulations and interactive explanations without syntax errors dominating the experience. The goal is not to rush through blocks. Learners should predict behaviour, explain scripts, locate bugs and change a project for a new user.
Stage 2: Physical computing
Connecting code to light, sound, sensing and motion helps learners understand that programs act on systems. This stage can use block or text interfaces. The important step is modelling inputs, decisions and outputs, then testing against physical evidence.
Stage 3: Python for clarity and data
Python offers a readable transition into text-based programming, reusable functions, data and automation. It is useful for modelling, analysis, introductory AI and back-end logic. Learners should enter Python when they already understand core structures and have a reason to use greater precision.
Stage 4: JavaScript for interactive public products
JavaScript becomes valuable when learners want to build for the web: interactive pages, interfaces and applications that can reach users. HTML and CSS should be taught as part of product communication, while JavaScript handles behaviour and data.
Do not make the transition a cliff
Use bridge activities: show a familiar block project beside pseudocode and a small text program; trace the same loop in each representation; convert one function at a time; and keep the project goal stable while the notation changes.
A practical age-and-readiness model
- Early and upper primary: logic, sequence, patterns, responsible use and block-based expression.
- Junior high: deeper block projects, physical computing, data and a supported transition to text.
- Secondary: Python, web development, data, APIs, physical systems and complete products for real users.
Age is a guide, not a gate. Previous access varies widely. Diagnose capability rather than assuming it from class level.
Assessment that travels across languages
Ask whether the learner can predict, debug, modify, explain and justify. These signals remain useful when the language changes. A polished copied program is weaker evidence than a small project the learner can fully explain and improve.
Design for African access realities
Use pair programming, rotating roles, local servers, offline documentation, small project files and activities that survive intermittent connectivity. Let learners build around agriculture, language, transport, health, energy, commerce and community life. Relevance broadens the routes into computing.
The answer
Use Scratch when visibility and creative confidence matter most. Use Python when learners need text, data and clear general-purpose programming. Use JavaScript when interactive web products serve the goal. Use all three when the pathway—not the brand—determines the sequence.
Download the K-12 Coding Progression Framework for African Schools.
The language debate hides the more important design question
Schools often ask which language is best as though one choice will determine the quality of the programme. The more consequential question is whether learners are progressing from visible logic to abstraction, from guided tasks to independent design and from producing output to explaining systems. A weak pathway can misuse any language. A strong pathway can use several without becoming fragmented.
Scratch lowers the cost of expressing an idea. Python lowers the cost of working with text, data and automation. JavaScript lowers the cost of creating for the web. Their value comes from the intellectual transition each enables, not from labour-market slogans attached to the language.
The bridge that many programmes forget
The difficult move is not from blocks to typed syntax. It is from seeing structure to holding structure mentally. Learners need explicit bridges: compare a block and text version of the same algorithm, predict before running, trace variables by hand, reconstruct a familiar project in a new environment and explain error messages as information rather than punishment.
Without these bridges, text programming feels like an abrupt loss of competence. With them, learners discover that the thinking they developed already travels.
A pathway should create increasingly public work
Early projects can be personal stories and games. Later projects should interact with data, physical devices, users and community questions. Public work changes the standard: code must be understandable, interfaces must consider another person and claims must survive scrutiny. That is where coding becomes education for agency rather than software rehearsal.
Four signs the pathway is working
- Learners can explain the same idea across more than one language or medium.
- They spend less time waiting for the teacher when something fails.
- Projects show increasing originality, complexity and attention to users.
- Assessment rewards reasoning, debugging and revision—not only a functioning final screen.
African learners do not need a diluted pathway. They need a well-sequenced one that respects how expertise grows and connects technical fluency to problems worth solving.
My own pathway did not begin with the “right” language
At 13, I left a school without the practical technology access I was searching for and began learning in a small internet café in Teshie. Time on the computer depended on the coins I could find. Progress came through free tutorials, repeated failure and a willingness to return after code I did not understand refused to work.
That experience makes me sceptical of pathways that confuse tool selection with educational design. What changed my trajectory was not loyalty to one language. It was the gradual discovery that instructions could become behaviour and that I could move from consuming technology to shaping it.
The design principle behind KodeVR follows the same insight at institutional scale: lower the cost of beginning, make logic visible and let learners build confidence before expensive hardware becomes a gatekeeper. With 10,000+ active learners, the platform offers a growing opportunity to study how African learners move between simulation, code and physical systems. The future pathway will not be Scratch versus Python versus JavaScript. It will be a coherent progression that uses each when it best advances learner agency.




