
Ask HN: How are you teaching your children programming? - tchaffee
What websites, apps, tools, videos have you decided on to teach your children programming? Are you using only online resources, or also traditional classroom setting? What do you like about the apps and tools you are using, and what could be improved?
======
johnny313
This has been an interesting topic for my wife and I. Our kids have very
limited screen time, and do not have access to a computer / smart phone / iPad
on a regular basis.

Recently, though, my 1st grade son, the oldest, found the book "Coding
Projects in Python" ([https://www.dk.com/us/9781465461889-coding-projects-in-
pytho...](https://www.dk.com/us/9781465461889-coding-projects-in-python/)),
and read through it for about a week before asking if he could use my computer
to try some of the projects out. I set him up on an old linux box with no
internet access, opened a text editor (gedit), and showed him how to run his
scripts in the terminal.

Honestly, I thought he would loose interest after a few days. But he has stuck
with it for the last few weeks, working on the projects after school with
minimal help from me (I work from home). So far, he learns what he is
interested in, skipping around the book to find projects he likes. He has
learned a fair amount in that time, and importantly for me, is learning a bit
about how the computer works at the same time. Not sure where we will go from
here, but the self-directed path is working well so far.

~~~
softawre
Your son is impressive! My daughter is 3 now and I pray she follows a path
like this. Obviously I will love her regardless ;)

~~~
setr
Even if she picks the wrong editor?

~~~
aloisdg
Even if she mixes spaces and tabs?

~~~
TremendousJudge
children were thrown from cliffs in ancient Sparta for less

------
redleggedfrog
Organically, like just about everything else.

Both my sons showed interest in programming at various times. We toyed with
Scratch, then Visual Studio Community Edition to try textual input. Then some
Python through Khan Academy and "Learn Python the Hard Way." Enthusiasm for it
came and went and sometimes came back just like most things kids do.

One son went on to be a fairly competent programmer, using Mathematica in
pursuit of his engineering degree. The other still dabbles in it from time to
time, but likes other technical subjects more.

The important point is they really don't need a lot of programming when
they're young, just like they don't need a lot of any specific technical
field. They just need to know it exists and maybe pique their interest.

------
dclinton
My son is 12 and a half. I have recently handed him a copy of "Learn you a
Haskell..." and a laptop running ghci. He has been making his way through the
first couple of chapters with only a little help from me, and seems to be
understanding everything that's come up so far.

~~~
jamesmp98
I can't tell if this is a joke or real.

~~~
D3m0lish
its a dad joke

------
geebee
My kid has been to a couple of camp Edmo where he does some programming for
Minecraft, etc. He enjoys it, though most of his summer was outdoors stuff. I
haven't looked at the actual code produced in these camps, so I couldn't tell
you much more.

I actually have started doing some programming with him around his math
homework, using python. This doesn't replace doing things by hand, but it's
very different from just using a calculator. There's a different thought
process that goes into automating a solver through code that I think is a
valuable mental exercise, and that can lead to a deeper understanding that
repetitive drills.

The downside to this is that it's more homework-ish, but he actually seems to
enjoy learning and realizing how much busywork he can automate, and how much
this can scale.

Another wrinkle here is that I wouldn't recommend becoming a software
developer or programmer as a career path - however, I do think learning to
program is a great idea, especially where it comes to analyzing data.
Programming and math ability can become something of a super power when you
can apply it in a field where most people don't have those skills (law,
medicine, digital humanities, etc).

------
lucozade
When my children were young I wrote them some games using Love2d in which they
and their pets were the characters.

It was just intended to be a bit of fun, and it was, but they were actively
involved in the game design and the artwork. I also worked through some of the
maths and physics with them and they saw how it all came together in the code.

I'm not sure they did any coding per se other than tweaking parameters for
gerbil speed etc but I think they got an appreciation of where programming
fits in and how it's part of an interconnected whole.

Subsequently they have used Scratch at junior school and they all took to it
without any help from me.

None of them have shown a particularly strong interest in pursuing computing
either academically or as a profession and I haven't seen any need to push it.

If your children do show an interest though, I do recommend something like
Scratch or Love2d (I'm sure there are equivalents for other dynamic
languages). It's easy to produce a game that's surprisingly good and the
feedback loop is essentially instantaneous.

I particularly liked how, with a game, it naturally brings together art,
maths, science, computers and programming without feeling forced.

------
olkid
Nuture their curiosity.

After showing my children how a Caesar cipher works(on paper), I left them an
encoded message. They decoded it and then left me a message in return :-)
While this isn't programming, encryption is a solid CS topic.

We've covered the binary numeral system and logic circuit diagrams(again on
paper) and various simple programs on the command line like: output a message
1K times in different patterns. The engagement comes with asking them
questions like "what do you want the message to say?" and "what do you think
it will look like if we add another space? or another tab?".

We've tried some online resources like hourofcode.com, scratch.mit.edu,
tour.golang.org, codecombat.com. Minecraft command blocks allowed them to try
code written by other people, that was pretty cool.

As others have mentioned, it was all spontaneous and organic. It felt more
like playing then learning, like "check this out" or "here, let me show you
something".

All the topics and online resources were short lived. My children(11yrs, 7yrs)
are being exposed to logic and programming in a piecewise approach.

------
DonnyV
The best site I'v seen for kids. Is a site I ran across by accident on reddit.
[http://silentteacher.toxicode.fr/](http://silentteacher.toxicode.fr/) The
simplicity and slow progression of it is really great for kids. My daughter is
7 and she loved it.

------
jernfrost
I do it very haphazardly. I've used hour of code, apple's swift training
program on the iPad, scratch, cargobot, sprite-box, the new bbc micro with
some ms programming tool. But I've only spent a few minutes on each tool
ocassionally. My impression is that you don't necessarily need a concerted
effort. My youngest learned reading when he was 5 through a rather lazy
approch from me and my wife. We just did stuff ocassionally at the spur of the
moment. Some ideas seem to just need time with kids.

------
jasonkostempski
Currently, in the worst possible way, Roblox. I hate everything about their
business model but the environment is perfect for encouraging programming. For
starters, developers/hackers are often represented as heroes. Kids know who
they are because they're the subject of in-game lore and YouTubers talk about
them a lot. Second, Roblox Studio is a mostly complete, easy to work with game
making environment, assets are easy to obtain and scripting is in Lua. Most
importantly, kids can show off their work immediately to all of their friends
in a multi-player world.

The bad parts of Roblox provide an opportunity for me to explain exactly
what's bad about proprietary tools, centralization, pay-to-win, spending real
money on digital goods, etc. Roblox isn't much worse than AAA games in this
regard. My kid is showing forethought about spending his limited supply of
Robux and he's parroting some of my rants when he talks himself out of buying
something. Hopefully that parroting turns into genuine understanding.
Eventually, he'll want to move on from Roblox or they'll disappear and he'll
learn first-hand the pain of moving to a new platform and leaving all of your
code and digital goods behind; and that the only things that last are libre
code/assets, algorithms, concepts, ideas and memories.

------
pnathan
I change his diaper, hug him, and tell him I look forward to him crawling.

But seriously, I'm probably not going to Teach Programming; it'll be be one of
the Things Your Dad Does, and he's welcome to be interested; I'll push him to
understand the _computer_ as a building block and change agent of society, but
programming, meh.

If he really wants to fart with a tablet, I'll redirect him to a rasppi - to
be a _cocreator_ , not just a _consumer_.

------
vxxzy
I tend to give my kids (3 and 5) verbal logic puzzles to get their conditional
down. Something along the lines of "A cat has a tail and four legs and a dog
has a tail and four legs, so a cat must be a dog". It normally ends with them
pointing out why they are different... Just as an example but there are all
kinds of everyday occurrences that can be used to initiate a logic puzzle.

------
mverwijs
First get them hooked on minecraft. They'll use youtube to learn about mods
and plugins. And a few years later they're downloading Eclipse and starting to
code their own plugins again using youtube to learn how.

True story.

------
cortesoft
I kinda want to teach her the same way I learned, by giving her an old 1979
BASIC programming book at 7, and setting her up with an interpreter. Although,
it would be so much easier to learn with the internet....

------
deepnotderp
By cultivating interest, not by forcing them into it.

~~~
procrastinazy
And how to do that ?

~~~
racl101
By seeing all the fat stacks that mommy or daddy is bringing home?

~~~
Applejinx
Ew, on several orthogonal levels.

~~~
pbhjpbhj
Could you expand on your reaction a bit?

Seems like encouraging children to follow an interest that could lead them to
wealth through work isn't a bad thing?

~~~
uoaei
You're encouraging a money-grubbing attitude, which is not really a healthy
one to have for long-term happiness.

Furthermore, if they only see it as a path to money and not an end in itself
to construct great, helpful, beautiful programs, they're gonna burn out real
quick.

Also, "having money" as a goal is just somehow repulsive. Seemingly all the
sleazeballs of the world are oriented like this, and as a result they tend to
be very shady and use people as means to getting money rather than actually
people, with whom meaningful relationships can be forged.

------
sevensor
I try to make sure they understand mathematics, reading, writing, and logical
thought. I try to cultivate independence, common sense, and good judgement.
Teach them to tie their shoelaces and recognize poison ivy. Whenever they show
curiosity about computers, I take them seriously and explain until they're
satisfied. If they should decide to write programs, they'll have the
background they need. And they'll have my help, if they want it.

------
firimari
We're teaching our kids programming by having them on FIRST teams. The
youngest is on his second year FIRST LEGO League team, and the oldest is on a
FIRST Tech Challenge team. [http://ev3lessons.com](http://ev3lessons.com) is a
great resource for introducing robot concepts using the LEGO Mindstorms EV3,
which uses a block programming interface derived from LabView.

------
kchoudhu
I'm not.

But they do occasionally come over and ask me what I'm doing. When they do, I
explain.

------
edgartaor
I heard that many kids learn some programming to mod Minecraft. So if you want
your children learn programming, find a motivation and do not force it.

------
Dove
He discovered scratch.mit.edu on his own, and has been getting more
sophisticated by the day. I barely have to do more than help him debug things
sometimes.

I am pondering when to introduce him to more classical text-based scripting,
but I will admit that nothing I can think of at the moment competes with
Scratch for sheer ability to create and share games and animations easily.

------
PaulHoule
[https://scratch.mit.edu/](https://scratch.mit.edu/)

~~~
webslingerm
+1 for Scratch, especially if they are younger. My son (when he was 8) really
loved working through the Super Scratch Programming Adventure book
([https://www.nostarch.com/scratch](https://www.nostarch.com/scratch)).

------
jstewartmobile
I'd stick to the stuff actual programmers use.

You'd kind-of be dogging your kids if they didn't get at least a little dose
of the messes we have to deal with as developers.

It's like if you got them all excited about writing slick screensavers, and
they have a ball, then when it's time to get a job they realize it's all about
grinding out the same boring shit everyone else is doing, and having a million
little bullshit-meeting-micro-dominance struggles over everything from FP-vs-
OOP down to tabs-vs-spaces.

At least they'll have been warned.

~~~
whiskers08xmt
Programming doesn't necessarily have to be job training. It can be useful, and
even joyous, outside of a the modern office setting.

~~~
jstewartmobile
Never said it did, and most things can be joyous outside of the modern office
setting. Hell, I like cooking, but I wouldn't want to do it in institutional
quantities on a daily basis.

------
tmaly
I actually picked up this Code & Go Robot mouse activity set from a local
Micro Center this past weekend.

Its ages 5+, but a 4 year old can do it. you can command the mouse to go
forward, backward, turn right, and turn left. You build your own maze out of
the pieces. There are little cards with the action that they can place on the
maze to help plan out the steps.

I think this is a great option. Previously I had recommended the board game
robot turtles, but I think this is more appealing to a child.

------
20years
My now 13 year old son first started at age 9 through Minecraft hacking away
at mods. More recently he moved into creating JavaScript games and creating
Raspberry Pi projects with Python. Our latest project is a retro arcade system
built with the Pi.

So games and fun projects that we work on together. Also don't try and overly
force coding standards at this young age. Let them hack away and have fun.

------
lordnacho
I got my 5yo a Lego EV3 robot for his latest birthday. There's a good
combination of building a real thing and then messing about with the visual
program editor to make it move, shoot, turn, etc.

Seems to have figured out basics like how to change the number of repeats.

------
stnmrk
Man if I had focused on programming instead of gaming I would do myself such a
favor. Even though Im a dev I find it hard to do get much better nowdays,
finding time etc.

------
3l3ktr4
Has anyone ever used [https://www.tynker.com/](https://www.tynker.com/) ?

------
fulminatorz68
Very hard to teach. How are you guys doing it? I'm trying unix bash shell
scripting which I picked up at the age of 29 pretty easily and felt like I
could do useful things repeatably in 4 months?

My programming origin was trs-80 and basic, and for the last 20 years C, TCL,
python and csh|bash|awk|sed.

------
nether
I would not. Kids should be outside playing and interacting with other kids,
not coding.

~~~
danpalmer
Why are those two things mutually exclusive?

~~~
ams6110
Coding, in my experience, tends to consume a lot of time especially for a kid
who is getting into it. I think many of us here can recall the long hours or
even all-night coding sessions we did when we were young, learning, and
everything about programming was new, exciting, and frustrating at the same
time.

When I was young (12-15) I spent a lot of time programming and very little
interacting with other people outside of school hours.

The same thing can happen with video games or even reading of course.

