Hacker Read top | best | new | newcomments | leaders | about | bookmarklet login

May I suggest that instead of Python, if the aim is for children, you consider a block based language such as Scratch or MakeCode?

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.



view as:

Block based programming languages are a bad idea for teaching kids programming and I would argue actually counter productive.

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).


Do you have any evidence to suggest this is the case? a case study or something or is it just your opinion?

Evidence is that every single programmer that exists in the world, and that started coding as a kid, had to and grasped a concept of a real programming language or they wouldn't be a programmer.

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?


> So a case study on a sample of 2 - does it count?

no :)

What would you have done if she was not interested in learning math or literacy?

Also when you were 8, you didnt have about 1 million developers making 500k per year trying to extract(and sell) every single bit of your attention in any possible way. From roblox to netflix to tiktok to supercell.

It took us like 300 years to learn how to teach math, and we are still improving, we are getting new tools every day, just look at https://www.youtube.com/3blue1brown can you imagine how many people he himself has reached and inspired? People that previously thought: "math is not for me".

We dont know neither pedagogy nor andragogy for programming, what is known is that tutoring + help software works really well (https://www.public.asu.edu/~kvanlehn/Stringent/PDF/Effective...), but we are still trying to find ways to teach mastery.


I dont know about the 'if they cant grasp BASIC' thing, but Scratch is not as inclusive as people think. My daughter was almost repulsed by it, but actually when I made a "laptop" (https://github.com/jackdoe/programming-for-kids/blob/master/...) of a pi zero and a small screen that boots into vim, and she started to make python do things, basic math things, she was much more engaged.

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'


I think this depends on the age of the child and on the child themselves.

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.


of course, that was my point scratch is great if kids like it, it is absolutely real programming language, i meant that just my kid didnt enjoy it

Block based programming languages are a bad idea for teaching kids programming and I would argue actually counter productive.

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.


She didn't like scratch at all, says it feels patronizing, so I didnt push much, but she is doing fine with python and c.

yeah my 14 yr old son says the same thing about scratch and the other similar targeted languages.

not surprising really he's taught himself c# to make games in unity.


Yeah, Scratch is is IMHO more an option for half that age.

I think there's a huge difference between a 14 year old and an 8 year old.

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.


> the poster's child is probably a native English speaker

She is not, but started learning english when she was 5 or 6 by watching netflix peppa pig in english and with english subtitles, now she is almost 11 and watches anime in japanese with english subtitles.

What pushed me to do that years ago was Stephetn Fry's turn on the subtitles video https://www.youtube.com/watch?v=I-zISnJ-oao (I cant actually find the one I watched at the time, but was the same content)


that's hugely impressive, learning to program in a language you dont speak.

actually given how messed up english can be at times i wonder if that actually helps :-P


Good on you for that.

This is my nephew, so I don't have a lot of control. My wife learned English around your daughter's age and she's at native level.

Nonetheless, human languages are a barrier :)


I believe typing in early age will lead to carpal-tunnel syndrome so I'm not pushing my kids to learn typing.

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.


> I believe typing in early age will lead to carpal-tunnel syndrome so I'm not pushing my kids to learn typing.

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.


I would argue there's no 'proper posture' for child's hands on adult sized keyboards and keys.

backspace and enter are especially an issue, i teach her to use ctrl+h and ctrl+j capslock being control, on windows i made https://github.com/jackdoe/programming-for-kids/tree/master/... to help with that

Spending half your time dragging with the mouse seems to cause way more wrist issues than typing. For me at least

At least pointing devices come in different shapes and forms, including vertical and trackballs. We used to enable chrome accessibility feature [1] to automatically drag-click when the mouse button is stopped. Although, as kids got faster they turned it off. It's a nice option to have.

[1]https://mcmw.abilitynet.org.uk/how-to-make-your-mouse-click-...

One of the reasons why we made auto-clicking mouse is so, when playing games, they don't have to click it crazy fast (besides it being fun project). To increase keyboard ergonomics I am thinking on a custom keyboard with programmable keys to, for example to turn long-press space into backspace, shift space to enter.


Legal | privacy