Ask HN: How to teach my young children to program?

10 points by SeanDav ↗ HN
I have 2 young children (below 8 years) and would like to start teaching them programming skills. They are already fairly competent using a laptop for navigating, playing games and watching online TV/Videos.

I personally got started hacking around with a Commodore VIC-20 but there is nothing as basic (excuse the pun) as this, which would create a nice gentle learning curve, around these days.

Really looking for suggestions from others that might have done this or know something about it.

I would assume it would have to be an interpreter-like environment, with easy ways to make pretty and interesting graphics/sound effects but some ability to increase complexity to simple game programming levels.

Open to all suggestions.

15 comments

[ 0.22 ms ] story [ 42.7 ms ] thread
While bleedingly simple, Code Academy does have a lot of merits.

I find that if my son (8) is on his own, he has trouble making it through sections, but if I'm in the room with him, he can ask me questions about why things work the way they do.

In my experience, trying to teach him to program before this year was very difficult. Kids these days just don't seem to have the patience.

I have never tried this, but I do know that children thrive on the attention that what they're doing is important. Especially if what they're doing requires hard work. If and when you do find the right environment (one doesn't automatically come to mind if the Python or Racket interpreters aren't good enough for you), giving your children little puzzles that you think up and solve yourself -- so they can come to you for constant hints or suggestive half-examples -- is important. Your constant interest in their hard efforts will go a long way.
A raspberry pi with the appropriate programs installed might be a good choice. Its what I plan on giving my nephew when its more avialable.
Alice http://www.alice.org/ is a great resource for learning basic coding ideas in a way that lets you visually see what different logical structures do. It can be used to create a 3D virtual world, but it also has a view where you can see just the code part.
My nephew and I have had some success with "Hello World! Computer Programming for Kids and Other Beginners". Many parts of the book direct the student to try out the examples in the interpreter, which I think is a nice way of demonstrating the concepts immediately. It starts with strings and other basics, and gets gradually more complex. By the end of the book you will have "written" a basic skiing game with pygame.

http://www.amazon.com/Hello-World-Computer-Programming-Begin...

I don't like that book. I tried it with my kid (almost 8). The first 3 chapters are okay, but then chapter 4 goes into the discussion about floating points, integer vs. doubles, integer-to-double conversion, arithmetic precision etc.

I'd say what the heck? I want to introduce the concept of variables, control flow, for/while loops, etc. I didn't expect that he has to jump through those unnecessary concepts to get to the basic.

Granted, the book was written with good intention (father "co-wrote" the book with the kid while trying to teach him programming), but I thought the book turned into something else that IMHO is not very good. Perhaps this book is geared towards older kids, but I think kids (and certainly adults) that are any older than 8 would have been bored to death by its very slow pacing.

I may try Learning Python the hard way... still looking at it.

Why do you want to teach your kids programming at that age?
We are working on a site to teach CS to complete beginners (geared towards high school students), with a focus on providing good personal feedback. We using some javascript teaching libraries that make it really easy to get started writing games and animations. We just applied to YC with the idea--got an interview, but not accepted.

Your kids may be a bit young for this, but if you interested the site is codehs.com, and you can email me at jkeeshin@cs.stanford.edu.

Quick on my background: I'm a senior in cs at Stanford, and have been teaching the intro cs classes for three years, and running the main intro class (cs106a) for this entire year.

I started with Logo Turtle...