I have a nephew who is ~8 and is doing absolutely amazing with Scratch in his classroom. He's making little mini-games, understanding loops, variables, and he's learning the all-important skill of debugging.
When/if he transitions from a block based programming language to one that's purely textual, I feel like that transition will be smooth based on his existing understanding and skills.
So if the aim is puzzles for kids, having a setting that they are more familiar with, such as blocks, might make it easier.
Just a thought.
In my experience Scratch or SNAP! are great to learn programming. We recently made auto-clicking mouse with microPython and I could see they understood the code well because of their experience with Scratch.
My kids like to follow tutorials by griffpatch on YouTube which I think are superb.
Typing extensively and without proper ergonomics will lead to carpal-tunnel and other syndromes. Not teaching them proper posture and typing ergonomics as kids means when they inevitably have to use computers in school/college/work, they will be much more likely to develop a strain-based condition.
not surprising really he's taught himself c# to make games in unity.
Also there's a bit of cultural assumption going on here. Based on the amount of comments, the poster's child is probably a native English speaker. My nephew is not, and has only begun learning English in school.
If the goal is "Let's make something for my child" that's cool and needs no change. If the goal is "Let's make something to help children learn programming", a more difficult and noble goal, then removing barriers such as English fluency, is a way to do that.
There is no need to 'transition' as BASIC, and nowadays HTML or Python, are simple enough for anyone to grasp (like every programmer ever did, some starting with C "even").
If a kid can't grasp BASIC/HTML/Python, they won't be a programmer (with or without Scratch).
We made few arduino nano led controller, she helped to solder the mic sensors and etc, and also to program the delay between the 'claps', it just feels so real.
I also bought pi4 game hat (https://www.waveshare.com/game-hat.htm) that she assembled herself, and then I uploaded a 'hello world' snes game, showed her some assembly.
She played a lot of 'human resource machine' and '7 billion humans', and I was paying her sometimes 1 euro per completed level, and turns out it was time well spent.
She also helped me with some work on Ben Eater's kit (especially the clock and some registers).
I think the best lesson we had that got her hooked was when I made like 5 line python script that controlled the keyboard that was climbing an infinite staircase in Roblox using pyautogui.
What I am trying to say is that some kids will respond to scratch and some wont, and either way I dont think you should say 'oh programming is not for them'
Scratch is what they teach him in school, so that's what he knows.
Scratch is also a real programming language- it presents differently visually, but the concepts are all there, except some that I doubt many children use- such as closures, generators, threads, etc.
I disagree with this. Block based languages reduce the amount of text on the screen (less dependent on reading skill), reduce the amount of typing (dexterity and keyboarding skills) and reduce the number of confusing syntax errors (important if the learner has limited patience and emotional control skills).
All of these skills are important and can be learnt given time, but they are not the same as learning programming. The ideas of abstraction, repetition and problem solving are still there in block languages.
If a kid can't grasp BASIC/HTML/Python, they won't be a programmer (with or without Scratch).
We teach mathematics to everyone but don't expect everyone to become a mathematician. There's no need to handle programming education in such an extreme way.
I personally started coding at 8 with BASIC, using a book in another language (that I didn't speak) as a guide. This is the kind of thing a future programmer would do.
I tried teaching programming to my daughter when she was 8. We started with Python and it didn't go. I thought maybe we should try Scratch like everyone is telling us to do. It didn't go either because she was simply not interested in learning programming.
So a case study on a sample of 2 - does it count?