
Ask HN: How do you teach you kids about computers and coding? - lazydon
Please share what tools  &amp; approaches you use - it may Scratch, Python, any kids specific like Linux distros, Raspberry Pi or recent products like Lego Boost... Or your experiences with them.. thanks.
======
tmaly
My daughter is almost 5 and she picked up Scratch Jr in ten minutes. I am
writing my suggestions mostly from the context of a younger child.

I approached it this way, I bought a book on Scratch Jr so I could get up to
speed on it. I walked her through a few of the basics, and then I just let her
take over after that.

One other programming related activity we have done is the Learning Resources
Code & Go Robot Mouse Activity. She has a lot of fun with this as you have a
small mouse you program with simple directions to navigate a maze to find the
cheese. It uses a set of cards to help then grasp the steps needed. I switch
to not using the cards after a while. We now just step the mouse through the
maze manually adding steps as we go.

One other activity to consider is the robot turtles board game. This teaches
some basic logic concepts needed in programming.

For an older child, I did help my nephew to learn programming in Python when
he was a freshman in high school. I took the approach of having him type in
games from the free Python book. I have always though this was a good approach
for older kids to get the familiar with the syntax.

Something else I would consider would be a robot that can be programmer with
Scratch. While I have not done this yet, I think for kid seeing the physical
results of programming via a robot is a powerful way to capture interest.

~~~
dpeck
Thanks for sharing about Scratch Jr. I had never heard about it before that I
think my son is going to love it, not for the programming aspect of it but
because he loves to make up stories with characters and being able to make
them move around the screen I'm betting will be something he enjoys quite a
bit.

It feels like a nice mix of Kidpix and Flash, both of which I spent a lot of
time with as a youngster (obviously much less of a youngster during the Flash
time).

~~~
tmaly
one of the features kids seem to love most about Scratch Jr is the character
editing ability. You can also take pictures of yourself and super impose it on
the characters.

------
3chelon
I had heaps of trouble with this. Kids have an obscene amount of choice
nowadays, and it's crippling.

Back in the day, we had no choice: you learned BASIC, and when you realised it
was too slow, you learned assembler. I was shown my first ever BASIC program
on a Commodore PET by a sixth-form student when I was about 13 or 14. There
was no-one to teach you, so you were pretty much on your own. I swear that
experience of learning Z80 assembler by typing in the hex or decimal opcodes
(I couldn't afford an assembler), was the single most important event of my
programming career.

With my kids I was pretty hands-off. Pushing them too hard would probably
result in rebellion. But when my son started asking what language he should
start with, I found it very hard. We tried Minecraft modding, in Java. Then
some Python, which he took to fairly quickly (age 12 or 13). Now he's well
into C#, which is a language I'm not even fluent in, because they study it in
CS at school. He launched into it full throttle in his spare time and now he's
developing a game. He occasionally asks me to help with debugging a tricky
problem, which is where I think I'm most useful now.

My daughter is now 12 and she's also interested. She pretty much exhausted
Scratch in primary school. I'm trying to introduce her to Python and then
Arduino - she wants to build some colour-changing lights for her bedroom, so
it's an ideal Arduino project.

I'm trying not to go down the whole pink, let's-make-it-fun, girls-can-code-
too stereotype, but since she genuinely wants to build this project I can't
really refuse.

The key thing is wait until they feel the need - don't push it onto them too
young. There's a whole world of non-programming stuff they need to learn
first!

~~~
stevekemp
>I swear that experience of learning Z80 assembler by typing in the hex or
decimal opcodes (I couldn't afford an assembler), was the single most
important event of my programming career.

I eventually graduated to doing the same thing - in my case writing out
assembly programs on paper, putting the decimal opcodes next to each
instruction.

Once the main program was "assembled" you'd then go put in the jump targets -
which had to be calculated last, as you didn't know how many bytes each
instruction you'd used was until that time.

All my programming started by accident, as the family-computer arrived as a
Christmas-present one year. The tape-deck didn't work, so we couldn't load any
games, and I was "forced" to read the manual instead. At least back then
computers had decent manuals..

~~~
3chelon
The technique I used was to always leave a few bytes spare at the end of each
subroutine so I could add code later on without breaking every single jump
address. The pain we went through!

~~~
stevekemp
I'm all too familiar! I used to pad any routines with five NOPs at the start,
just in case I needed to add a jump, or call, to handle something I'd not
forseen.

------
hoodoof
I'm waiting till he shows significant interest. If that never comes then I'm
not going to try to make it happen. Much as I would like to be teaching
programming to my kids, if they aren't that interested then such is life.

~~~
tudorw
I've loved programming since I discovered it, while I'd love my daughter to
share my passion I've been reading around and largely agree with this point,
particularly poignant was a tennis forum, swathes of warning that if you want
your child to love tennis, let them discover it themselves, also anecdotal but
my friend tried to enforce a love of disco, that's not worked out to well
either...

------
dirktheman
What age range are we talking about? For most kids aged 6-12 writing code is
too abstract to start with. For my kids, I started making really simple
projects with a Makey Makey. After that, I taught them the basics with
Scratch, since there are tons of fun tutorials for kids. Right now, I'm
building a Raspberry Pi-powered robot with my 10yo (basically it's a poor
man's Lego Mindstorm).

The key is fun. The focus is much more on 'building something together' than
'I'll learn you how to code'. I'm pretty sure that if I were to press them
into learning how to code it will only put them off. Sometimes we go for weeks
without building on the robot, and all of the sudden she will ask me to work
on it with her again.

------
Lukman
[http://www.tynker.com](http://www.tynker.com). My daughter started with
Scratch Jr. When she turned 9, we got her a chromebook for her birthday, and I
read about this site in a WSJ article. She took to it right away. Kids can
progress through extensive programming-puzzle tutorials and make their own
projects, using a "block" language, python, or Javascript. They can switch
between the three supported languages within projects. She is still most
comfortable with the block style, given that it abstracts away free-form
syntax, but has started working through the python tutorials. A year later she
has made dozens of her own projects (mainly simple games) of increasing
complexity, which can be published and shared with other kids. She now
understands relatively complex concepts like generating random behavior,
method calls, variables and even physics engines. Highly recommended.

------
amrrs
While we are here, I'd like to ask another question that __If kids need to be
taught to code before they turn 12 __. First of all, HN being a place where
board games are lauded before Digital Smartphone games, How is teaching kids
to code (using digital devices) seen.

Also, a day back, Woz made this comment:

"Woz advice on coding for children. Meanwhile, Wozniak cautioned parents to
not force coding skills to their wards until the age of 12. He explained that
the first 12 years are pivotal and crucial in shaping cognitive and thinking
mind. “Coding is very important. It doesn't need to be taught before 12
years."

I'm seriously looking for some thoughts to validate my idea that coding could
be started from Kinder garden (as young as when they learn to count numbers)

~~~
yorwba
I don't think it's a question of "need to be taught". Rather, you can have a
lot of fun with code, but how are kids going to find out if nobody shows it to
them? If they don't show interest in any of the things you can do with code,
then don't push it.

I was a bit older than 12 when I learned programming with AutoIt, Ren'Py and
Blender, but I would absolutely have enjoyed it if I had found out earlier. I
didn't learn those because some adult told me to, I found out about them
through my friends.

AutoIt is a programming language geared towards automating interaction with
GUIs. A friend of mine was using a program written in it to bot in some
MMORPG, and being able to control the mouse pointer also lent itself to prank
programs we'd send each other. I learned quite a bit just by modifying that
original program, and later implemented Gaussian elimination in AutoIt to take
care of my math homework.

I learned Ren'Py when another friend showed me a simple visual novel he'd
written in it, and I got inspired to write my own. For some aspect of it (I
think it was to keep track of health points?) I needed to use Ren'Py's Python
scripting, and so I ended up learning a bit of Python.

Later, I was doing a stop-and-go movie with Lego figures together with that
same friend. We really wanted to have awesome 3D effects and had heard that it
was called animation or something. So I googled it, downloaded Blender, and
went through the tutorial on modeling. I mean, how hard could it be, right? I
think Blender is somewhat renowned for the complexity of its interface, but at
that time every interface was complex for me. After weeks of painstakingly
remodeling Lego pieces down to the little notches, we finally had our space
battle with lasers, and it was awesome. Later, I repurposed those models for a
game using Blender's built-in game engine, and it was easy in comparison
(although I _still_ don't fully understand how rotation in 3D space works).

In all of these cases, programming was something I lucked into as part of some
other activity. I wanted to do something else, and writing code happened to be
easily available as a solution. So I think what a parent can do is give their
children the opportunity to play around with lots of different things, and
when something they want to do requires a little code, show them how to do it.

------
Tepix
Minecraft with the Python API.

On the Java version of Minecraft you can get it with the Raspberry Juice mod
for bukkit:
[https://github.com/zhuowei/RaspberryJuice](https://github.com/zhuowei/RaspberryJuice)

On the Android version of Minecraft you can use the Raspberry Jam Mod
[https://play.google.com/store/apps/details?id=mobi.omegacent...](https://play.google.com/store/apps/details?id=mobi.omegacentauri.rjm)

The Minecraft version for the Raspberry Pi is very limited, unfortunately.

~~~
emeth
A bunch of guides for this Minecraft+Python option here, including lessons for
your kid to work through, and assistance in getting it all setup:

[https://teachcraft.net/](https://teachcraft.net/)

------
mverwijs
Minecraft. Redstone and commandblocks. Later set up a server that allows for
plugins to install (spigot). Then install the javascript plugin and the kids
can manipulate the minecraft worlds with javascript. Show them all the plugins
available and they'll become annoyed with that one plugin that does not quite
do what they want. And start to write their own. My 14 year old nephew is now
writing a Harry Potter world with the spells and wands, in java.

But the most important thing however is to keep it fun. Let the kid choose his
own path. ("Eclipse?! Really?! But Vscode is.... Oh well ")

------
fermigier
I have two kids aged 7. They've been playing, on and off, with ScratchJr over
the last two years. They were first interested mostly in the "Paint-like" part
of ScratchJr, but now are starting to make animations using the block
language, and have much fun doing it.

I've recently installed the Lightbot app on my phone for them, and they like
it too. It's a series of programming puzzles using a block language where you
need to program a robot to move around a circuit and do some actions. It
introduces programming concepts (subroutines, loops...) progressively and seem
quite fun and challenging.

A few months ago, I let them play with Human Resources Machine, another
similar game, but slightly more abstract, and with dark humoured theme. They
didn't get the humour, but enjoyed it nonetheless. However, it was a bit too
difficult for them, and I had to do most of the challenges for them.

When they get older, I hope to find a way (via emulation?) to have them play
Robot Odyssey (cf.
[http://www.slate.com/articles/technology/bitwise/2014/01/rob...](http://www.slate.com/articles/technology/bitwise/2014/01/robot_odyssey_the_hardest_computer_game_of_all_time.html)
), though I'm not sure how today's kids would react to a game made in the 80s.

------
pdm55
some coding sites found by me, a science teacher:
[https://studio.code.org/s/express](https://studio.code.org/s/express) I like
this - it's easy - if I am required to teach middle-school kids some coding I
will probably use this;
[https://www.computerscienceforkids.com/beginningvisualstudio...](https://www.computerscienceforkids.com/beginningvisualstudioexpresstutorialsforhighschoolstudentscomputersciencecurriculum/)
curricula for SmallBasic, C#, Java, VisualBasic for kids+ ;
[https://makecode.com/#about](https://makecode.com/#about) Microsoft IoT +
coding for kids
[http://interactivepython.org/runestone/static/thinkcspy/inde...](http://interactivepython.org/runestone/static/thinkcspy/index.html)
Interactive Python; [https://www.lazarus-ide.org/](https://www.lazarus-
ide.org/) Lazarus = Free Pascal - some teachers use this;
[https://jsfiddle.net/](https://jsfiddle.net/) some teachers like this -
nothing to install, code Javascript online;
[http://happyfuncoding.com/](http://happyfuncoding.com/) the one site I can
always remember the name of;
[http://physics.weber.edu/schroeder/html5/](http://physics.weber.edu/schroeder/html5/)
am I allowed to love Newton's Cannon, written in simple Javascript on one
page?

------
yoodenvranx
I wish Microsoft would invest 1 or 2 of its many million $ to re-include a
simple QBbasic like they did back in the DOS days. I can attribute 95% of my
interest in programming to that one single program.

~~~
na85
That game that came with Q basic where the gorillas throw exploding bananas at
each other was always a good time.

~~~
cjfont
Or the snake one called Nibbles - my 6th grade computer class teacher had made
modifications to it adding levels, etc., and had his class play with what he
had created. I was just starting to learn Qbasic at the time and he wouldn't
let me have the source code :(

~~~
pbhjpbhj
Perhaps he was hoping you'd write your own, or find the code? Weren't the
games plaintext?

~~~
cjfont
He used QuickBASIC to compile it into an EXE and that was the copy he gave the
students to play with.

------
jdietrich
The BBC Micro:bit would be a great starting point. It's a simple
microcontroller module with Bluetooth Low Energy, an accelerometer and easily
accessible IO. There are browser-based IDEs supporting drag-and-drop code
blocks, Javascript or Python; you can also program the device from a
smartphone app over Bluetooth. There are hundreds of lessons and projects for
the micro:bit, including a 14 week introduction to CS course. A starter kit
costs just $16.50 from AdaFruit.

In my opinion, it's the best introduction to computer science for children.

[http://microbit.org/guide/](http://microbit.org/guide/)

[https://www.adafruit.com/product/3362](https://www.adafruit.com/product/3362)

[https://makecode.microbit.org/courses/csintro](https://makecode.microbit.org/courses/csintro)

------
acutesoftware
Show them how computers can help them automate the things they want to do.

We play Minecraft on a local server, and sometimes try and build large
structures that take a lot of work - I showed her the /fill command which got
her interested in the command line.

She is a bit young to understand Cartesian coordinates to use it without help
but was very impressed with the automation side of things - it got her
interested to look up other commands (she has far too much fun with the /kill
command but that is another story).

I made a Python package to automate the building of castles
([https://github.com/acutesoftware/worldbuild/tree/master/scri...](https://github.com/acutesoftware/worldbuild/tree/master/scripts/minecraft))
so getting her learning Python will be the next step.

------
tonetheman
Minecraft Windows version absolutely has tools that let you program in
different languages. You need to download a program called code connection
(also from MS).

[https://education.minecraft.net/support/knowledge-
base/conne...](https://education.minecraft.net/support/knowledge-
base/connecting-code-connection-minecraft/)

Then you have some options to program minecraft.

I wrote a client in python which you can look at to see how to call commands.
[https://github.com/tonetheman/mctony](https://github.com/tonetheman/mctony)

------
jvvw
What age? I've got a 7 year old and recently started helping out a local 'Code
Club' for 9-11 year olds. The projects provided by Code Club are definitely
worth a look and include Scratch, Python as well as stuff for the Raspberry Pi
[https://codeclubprojects.org/](https://codeclubprojects.org/) They're quite
nicely structured with optional challenges.

I think reading ability and keyboard skills make a difference to what is
possible as well as the stage of cognitive development. Typing is hard even
for a kid who can read well - it takes my 7 year old forever to find keys on
the keyboard and although it's good for him to learn, I think python would be
frustrating for him at the moment (and I know the indentation makes it hard
even for older children!) We've had fun making stories in Scratch though and
he made a game of his own design with some help from me on the harder bits. We
played quite a lot of the board game Robot Turtles when he was younger too, so
that's worth looking up for smaller kids, although I have to admit that as an
adult I never really enjoyed it massively.

------
sus_007
I'd say we shouldn't try hard to teach our children about computers/coding
from an early age. Don’t get me wrong; I do believe that engineering and
programming are important skills. But only in the right context, and only for
a matured brain willing to put in the necessary blood, sweat and tears to
succeed. The same could be said of many other skills. I'm not sure about US
but, here in South East Asia, school mathematics & science courses are more
than enough of cognitive load for a 10 to 15 years old.

When I was in school, I was passionate about Chemistry, fascinated with the
idea that how proper composition of chemicals could produce useful compounds
until I got to play with actual physical instruments in the lab when I reached
high school. I'd decided that I was going to become the best mechanical
engineer to ever live (you know childish talks).

Alas, however, I started loving computers more than ever and now they are my
life. My point is, _Focusing on coding inflates the importance of finding the
“right” method to solve a problem rather than the importance of understanding
the problem._

------
allenleein
* Today My Son Learned About Tuples

[https://argumatronic.com/posts/2016-02-29-child-learns-
tuple...](https://argumatronic.com/posts/2016-02-29-child-learns-tuples.html)

* Teaching a 10-year-old Haskell

[https://argumatronic.com/posts/2015-04-08-Haskell-
to-10yo.ht...](https://argumatronic.com/posts/2015-04-08-Haskell-to-10yo.html)

------
pknerd
My elder one is 7 years old and more inclined towards drawing/arts(seems
natural though), he might not be in good stage to _write_ code but flow charts
could help him to build logic regardless of a computer. In this way he can
enjoy drawing while start building algorithm and logic too.

Thanks for this question which made me to think this idea. Will start working
on it soon.

~~~
dukoid
You may want to take a look at flowgrid.org. I think the main problem
(compared to tradtional code) is that drawing is quite "verbose"... Perhaps it
could make sense to re-focus the project on AndroidThings GPIO...

------
steve_taylor
I set up a Raspberry by with Kano OS for my 7-year-old (at the time) son.
There were some toy coding apps, like Make Art and Hack Minecraft, and he had
some interest, but I didn’t see anything that he could grow into over time, in
terms of making more sophisticated programs as he gets more practice. They all
seemed quite limited, although engaging.

I then set up my old Mac with Love 2D and Atom, but he wasn’t interested,
because he’d also have to learn about files, directories and the command line.

He spends a lot of time on the iPad, so I recently bought Codea. With a bit of
help, he was able to write code to draw some shapes and became very excited
about it. I evaluated it myself and was able to make Pong in a few hours. It
has loads of examples and can actually be (and has been) used to make quite
sophisticated iOS games, right on an iPad. It helps to have a Bluetooth
keyboard so the on-screen keyboard doesn’t occupy half the screen.

------
hugodahl
While shopping the toy section at Target a few weeks ago, in the
science/educational section, I came across a few variations of a "//code
programming game series"[0] by Thinkfun[1]. The titles I saw were "Robot
Repair" which focusses on boolean logic, and "On the Brink" focussing on
procedures.

The target age group indicated on the box says 8-adult, but I suspect it's
quite likely that younger ages can also play along, with some help or
guidance.

I haven't played or looked at them in depth, but from a superficial overview,
these do look quite beneficial for understanding some of the core concepts.

[0]: [https://www.thinkfun.com/learn-coding/](https://www.thinkfun.com/learn-
coding/) [1]: [https://www.thinkfun.com/](https://www.thinkfun.com/)

------
eitland
My two oldest kids have created plain html web pages with me.

They run on my NAS so not available to the Internet. I try to teach different
things to each of them and hopefully they'll start copying and pasting.

I also created the "guess a number" game in Java with my oldest (~10 y.o.)
recently. We started by writing comments explaining what would happen, then I
filled in the code and we ran it and single stepped our way through it a few
times.

I love the debugger as it helps new coders get a feeling for how the computer
"thinks".

Java might seem like a weird language to teach kids but for all its verbosity
and comments it ended at less than 50 LOC, is extremely readable and has
really good support for single stepping, peeking into variables etc.

~~~
drcongo

      We started by writing comments explaining what would happen, then I filled in the code and we ran it and single stepped our way through it a few times.`
    

That's a nice idea.

------
jweather
The most traditional tool we've used is probably
[http://www.codecombat.com](http://www.codecombat.com) Also PBS has a Crash
Course in Computer Science video series that's excellent for ages 10+ -- we
pause it a lot to make sure they caught the main points.

I also show them what I'm working on for fun and invite them to help with
parts of it. Usually Arduino and 3D printing/modeling. We've started (but not
finished) a few web-based games together. I don't know if either of them will
ever catch "the bug" like I did at their age (9 and 11 now), but I want it to
be an option for them if they do.

------
msravi
Rather than just coding, which can be pretty abstract for kids, I introduced
my (almost) 11-yo son to the Arduino. The interface is pretty simple to
explain for kids of that age - you have 2 places to put your code - the
setup() and loop(), and the results are concrete - an led blinks, a motor
turns, a car moves forward, etc. My son "got" Arduino programming easier than
the graphical programming languages, but that might just be him.

He was also introduced to QBASIC at school (a year later), and he loves it.
There are no INTs to declare, etc. Just your program. And graphics, sound,
etc. is so easy to program.

------
anonytrary
A long time ago, I saw someone else's brilliant answer to a similar question,
so I will repeat it here. All you need is paper and pencil for your students.
The idea here is to focus on concepts, not code:

Ask them to write down all of the steps required to to make a peanut butter
and jelly sandwich. For example, a student may come up with the following
solution:

    
    
      1. Get the peanut butter and jelly.
    
      2. Spread on bread.
    
      3. Put other bread on top.
    

As the instructor, you must "break" their solution with a funny skit (as
opposed to being pedantic). Try to do step 1 in front of the class: You flail
your arms around like an absolute madman, reaching for the peanut butter, but
you cannot reach it. Eventually, the students realize step 1 isn't clear
enough for you. They come up with:

    
    
      1a. Walk to cupboard from table (i.e. the peanut butter is stored somewhere; we need to go there).
    
      1b. Pull out peanut butter and jelly (we need to acquire the goods).
    
      1c. Walk back to table.
    

If you think about step 1b, you can see a potential problem if your hands are
full. So, you proceed to get the ingredients with full hands, only to drop the
jelly on the way back to the table; you didn't have enough free hands to get
the jelly! At this point the students are facepalming you, _which is good_ ,
and it encourages them to be even more explicit in their instructions; perhaps
they include a check to make sure your hands aren't full before getting the
ingredients.

This comedic, adversarial process between the students and the teacher
continues until the students land upon an imperative, explicit way to make a
peanut butter and jelly sandwich. Breaking down problems into imperative,
unmistakeable steps is exactly the kind of skill which is used in programming,
as computers lack linguistic pragmatism.

The lesson here is that computers are dumber than we think, and programming is
the art of making them smart. The instructor plays the role of a dumb computer
acting out the students' instructions. The students quickly get the point:
their instructions aren't good enough for a computer, even if they are good
enough for a human, and it's not that hard to be explicit if you take some
time to think about it!

------
koonsolo
Awesome question, because I'm in the mids of teaching my 9 and 7 year olds how
to program.

They get Scratch in school (and like it), so I wanted to dip their toes into
'real' programming. I thought a lot about it, but decided to start with the
interactive shell of Python and let them do basic calculations, variable
assignments, etc.

I then went on to simple scripts such as "What is your name?" input, with a
print of "Hello <name>"

Next up with be the guess a number game, and go on from there. I want to end
up with programming games of course :D

------
slavik81
I was introduced to Turing Tumble today, and I thought it looked pretty rad.
It's not out yet, but the idea is to solve puzzles by building mechanical
systems that do computation. Ages 8+.

[https://www.kickstarter.com/projects/871405126/turing-
tumble...](https://www.kickstarter.com/projects/871405126/turing-tumble-
gaming-on-a-mechanical-computer)

------
cproctor
Read Mindstorms (Papert, 1980).

------
indescions_2018
Ideally, I'd like to dive right into Android Studio and Kotlin. Since the
inherent interest with phones, mobile gaming, cameras, videos, etc is already
extant ;)

Another alternative, and I think a strong curriculum could be built around
this. Is an intro to systems via Nintendo GameBoy and GBA. Using emulators and
custom ROM development. A few college level courses already experiment with
this route.

------
catcontent
(due to horrible layout and inability to edit, here is the list again, second
attempt)

here is a incomplete list of my findings:

soft skills list: * don't push; * accept if they are not (yet) interested; *
support emotionally ; * trust your kids; _be patient even if it looks like
bullshit;_ even if you know the solution, wait for the question;

tools: * coderdojo; * guest net; * don't try to create a website whitelist; *
buy / borrow hardware they like to try out;

misc: * watch spin offs;

some remarks might need explanation.

don't push: if you do, any kind of motivation will turn to become the
opposite.

support emotionally: one of the differences between adults and kids in terms
of learning is how to deal with ambition. kids might start to cry or get
aggressive when things don't work the way they planned. dealing with ambition
is part of the learning process. the best answer for your kid might be non-
technical, just hugging.

even if you know the solution, wait for the question: you can only learn when
it feels like you have control on how to do it. if it's not yet time for the
answer, there is no problem and no learning motivation.

coderdojo: look it up and discover how kids learn programming. best to wait
for your child to discover projects of other kids.

guest net: separate your internet from your kid's internet. the risk of
viruses or exploits caught from discovery journeys on the internet is
extremely decreased.

don't try to create a website whitelist: I tried to maintain a whitelist of
allowed websites and waited for requests to come. after less than a week I
gave up. same is true for search platforms or websites designed for children.
trusting your kid looks like the better choice to me.

buy / borrow hardware kids like to try out: we are buying heaps of hardware
(raspberry pi / arduino / camera / smartphone), most of which financed out of
our child's pocket money. his decision.

spin offs: spin offs are the most interesting discovery to me. my kid writes
short stories to be integrated into his self created apps, so he can share
them with other kids. math is easy if it is related to solving computer
problems (compared to torture if the only reason is memorizing unrelated
stuff)

comments welcome

------
dukoid
I have been working on a programming environment for Android phones / tablets
for a while in my spare time. I'll do a proper ShowHN when I have some more
reasonable writeup about the motivation and background:
[https://github.com/stefanhaustein/codechat](https://github.com/stefanhaustein/codechat)
O:)

------
PerRutherford
I used Python to introduce my son to the concepts of programming. I found it
very interesting that his school used Construct as an introduction. I was
skeptical, however it DID reinforce his logical construct skills and his
understanding in python is increasing quickly. I will start pointing him to
javascript next (as well as others down the road).

------
abrookewood
Lots of people have mentioned Scratch Jnr, which is a great place to start,
but don't stop there. The full version of Scratch is fantastic. My daughter
(9) and son (11) both enjoy it, though my son is really into it. They both
particularly like the fact that you can remix other people's code - it's a
great way to get started.

------
vitoralmeida
I believe PICO-8
([https://www.lexaloffle.com/pico-8.php](https://www.lexaloffle.com/pico-8.php))
is one of the most simple and fun environments for kids to learn programming
(specially game programming). It's very accessible and affordable.

------
naren87
A friend of mine runs Code Wizards HQ, a startup that teaches coding to kids
through teacher-led online classes. Check out their website:
[http://www.codewizardshq.com/](http://www.codewizardshq.com/)

------
drawnic
Check out this comic book for kids that teaches numeric systems and how they
relate to computers (binary)
[https://techbooksforkids.com](https://techbooksforkids.com)

------
akkartik
[http://akkartik.name/post/mu](http://akkartik.name/post/mu)

------
tekknikk
Our solution is TinkerTank, a STEAM school startup. Student lead, project
based learning style.

------
doug1001
in Roblox; i am building a simple game with my 7-year old daughter on the
Roblox platform. A nice combination of gui-based building and scripting and a
cool objective (a completed game added to the registry of games on the
platform so others can play it.

i am

------
z3t4
Buy a programmable toy. Where you "program" by pushing buttons ...

