I have worked for many years (over 15 years) with/for children between 7-12 years old. I offered them workshops on video game creativity and scientific experiences.
I used The Game Factory at first, then Scratch in its early versions.
N.B. The Game Factory was something similar to Gdevelop (it still exists).
I also worked with teenagers and in parallel I discovered Processing which allowed me to start coding again what I started doing when I was a teenager myself : Basics, Forth… I even coded a program in assembler directly on paper after having read a book on the Z80 (which worked on a ZX81 : a prehistoric computer now lol).
More recently, using Processing and P5js in my classes, I finally came to the following reflection:
It’s better to start with tools like Scratch or Snap to learn the basics “without being scary”
- The variables
- the choices (if else)
- the events
- and some other things…
The interest of Scratch (/Gdevelop) is that, at the the concepts level, it’s the same approach as in the code. In fact : it is code with the mouse and not the keyboard.
Then, to go further, Processing is ideal because one can start directly without worrying about a complicated IDE or with impossible code to understand for a beginner as in Java directly.
It seems to me (it’s just an opinion) that Processing is better to start with than Python or Javascript because having to explain the types of variables allows for a better understanding of what exactly happens / the variables and that the error messages that the presence of the compiler allows as soon as the code is entered facilitate greatly the learning.
Afterwards, the understanding of the “world of objects (the OOP)” makes it possible to understand the famous lines of bizarre code from the beginning in Java.
Switch to another language like Python, Javascript, Java itself, C#, Object Pascal… is not difficult at all especially if we realize that we do not actually program in this or that language but that we program in object programming (with Design Patterns) using the syntax of this or that language…
If someone have learn OOP, generally, it’s for a professional goal !
… after OOP, I think one should learn about Design Patterns