Ask HN: Vetted homeschooling resources for kids (5-10) to learn coding?

31 points by elevaet ↗ HN
My wife and I are embarking on a year of the nomad lifestyle, and homeschooling our kids aged 7 and 9. They are both interested in learning about programming computers. There is a plethora of options, so I wanted to draw on the wisdom and experience of HN to highlight the best of what's out there.

What courses, apps, methods, have you found most worthwhile for introducing your kids to programming?

19 comments

[ 3.3 ms ] story [ 56.0 ms ] thread
Just chiming in here so I can see what is suggested
I kid you not, the way I learned computer programming as a kid was picking up a "C++ For Dummies" book and just reading it. The take away from this is to just get them to do programming. Python, Ruby, C++, whatever. If they really have a passion for it, they'll be hungry for more all by themselves.
Me too (well, it was the Borland C++ manual, pretty dry , but comprehensive. Yellow and Red as I recall), but I was about 13 at the time. 5-10 is a stretch for C++ IMO.
For me I think it was a manual for BASIC at age 10. It was fascinating, and I learned from an early age what a mess you can get into using GOTO statements. I have painful memories of having to renumber the lines in order to shoehorn new code blocks in.
My 10 year old is currently enjoying Swift Playground; I know a few other neighborhood kids who are doing well with that.

I thought it looked too basic when he initially started, but when I skipped ahead and looked at the content, it looks very solid.

Scratch is fun, and has the community element that kids expect and love these days. My sons have both enjoyed learning to program with it and explore what other kids have made.
I tried teacher my 7 yr old kid coding. Then I realized he doesn't have enough vocabulary yet. He also doesn't have enough logical skills yet.
I'd say don't underestimate your kids. Get a regular programming book, and if they can't understand it then you should focus on their english level first.
Start with blockly: https://blockly.games/ Don't push to get all stages done. Engagement/interest is the key.

Next take them into scratch: https://scratch.mit.edu/ Scratch will be sufficient to get their foundations strong in areas like conditions, loops, events, input, and many more. One important thing I recommend is to create the lessons yourself based on their interests e.g. take their favorite characters into scratch and build a lesson, game or comic.

Once graduated from scratch, I have experienced that they can easily jump into python or javascript based on their interest. If by that age, they get into minecraft, introduce them to modding (i think lua) or libraries like pygame. You will also be teaching them how to read API documentation and how to "google" for errors.

Overall, focus on practical applications that keep them engaged, instead of exhaustive topic learning. Once connected with their own interest, they will learn the rest as needed or in other educational setups.

That blockly games site is really nice, I think my kids have done scratch mini at school. I'm not really sure I want to "help" my kids to learn to program really, I'm more keen to see what they are into and then encourage them if they need help (but I'd prefer them to do it themselves).

I always preferred the stuff I discovered myself, which was mainly coding/games/computer art and music/guitar. Apart from buying me stuff occasionally, my parents mainly left me to it without too many other distractions.

My father had a massive bookshelf of programming books. As a 10 year old I'd wake up at 6am before class and read through more and more of his Visual Basic books before school. Really just allow freedom to material!
The frontal lobe and advanced logical reasoning doesn't develop in children until they're 12-13. I'd say, don't worry about coding until they're older and focus on basic life skills instead: being cautious around consuming media, privacy basics, personal fiscal responsibility...
That is true unless they express a desire. I was 'coding' at 7 with Basic. One of my kids, even earlier with scratch type languages.
Structure and Interpretations of Computer Programs
That book may be a masterpiece. But it will throw a kid off very fast. It assumes a lot of background knowledge in math for some of the early examples. It was written for MIT students and it shows.
No single course, method, or resource is going to do it for everyone.

IMHO (7 year old, at it since ~5) start with co-op games that include logic elements. An early one we loved is Koala Kids on Steam. Co-op + game = engagement guarantee.

From there I believe it's good to mix it in with maths learning. So with counting by X do a physical abacus and transfer the same process to an LED or similar screen-based sequence with programming.

Once the code shows the same sequence, change the code to calculate the answer to questions. Show how much faster it is to use the code version to figure things out.

Show how you can program a function to solve a type of homework question. Reward working functions above individual solutions.

Move gaming to more logic puzzle things, stuff that includes sequences, like Human Resource Machine, variants of the old "robot pushes blocks around", etc. When Shenzhen IO is engaging, you've won (we're not there yet).

I'll give a shout out to Apple here. Swift Playgrounds is engaging (even adults love it). XCode is a forgiving IDE for a 12 year old. And the materials are well grounded in CS. The advantage here is that programs run immediately on Apple hardware, which kids like and makes them feel like a pro.

https://www.apple.com/education/k12/teaching-code/

I grew up with Logo and Turtle Graphics and I loved it. Still obsessed with computer graphics to this day. I think the great thing about those old environments is that it wasn't really about "coding" as a path to a software engineering job. It was more about "applied geometry" and the wonderful patterns of nature emerging via simple iterative functions repeated endlessly ;)