
Teaching my 10 year old niece how to program. - orangethirty
http://orangethirty.blogspot.com/2012/08/teaching-my-10-yeard-old-niece-how-to.html
======
elliottcarlson
I decided to teach my niece how to program at the age of 10 as well. She had
already just naturally gotten the hang of the computer since she was about 6
(though I had to reverse the mouse buttons because originally her small hands
couldn't left click). At 10 years old she was already telling my sister-in-law
how to do things, was a near master of google-fu and had all the game sites
she liked bookmarked. I wanted to show her what else was possible, without it
seeming 'sciencey' (apparently that is the new equivalent of 'nerdy').

I knew her weakness was video games - so I got her using DS Game Maker
(<http://dsgamemaker.com/>) which allows you to to create games for your
Nintendo DS. I had already set her up with a flash cart, so getting the games
on there was a breeze. She started off with some real simple things, but as
she learned how to do more and more (with some help from me on getting jump
'physics' going in Dynamic BASIC) and she eventually had a little game with
her dog as the star in a 30 room game that each had puzzles to solve.

It's amazing what someone so young can accomplish - sadly her interest has
dwindled and she is now on track to become a fashion designer. We shall see ;)

~~~
loumf
As a programmer with absolutely no interest in fashion, I found "Project
Runway" to be the closest thing to watching a programming reality show. They
talk about design and construction, and how they interrelate. If you can get
past the obvious shortcomings, there was some interesting problem solving
being done by the most talented contestants.

Ditto for cooking shows, but it's easier to judge the results of fashion
because I can't taste the cooking show results.

~~~
elliottcarlson
Well - it's pretty interesting that you mention the technical aspects of
fashion design. A friend of mines wife works as a technical designer for one
of the big fashion companies - her job is to take the designs made by
designers, and redesign them for mass-market so that they can be machine made.

I made it a point to tell my niece (just this last weekend) that she should
pay attention in school because with that knowledge she can do anything and
become anything she wants. If she wants to do fashion design, she will still
need to know math because it is important (giving her an example of how me and
my 6 year old nephew obviously don't wear the same size shirts - so how would
they figure that out?). I just want her to do good in life no matter what
route she takes :)

------
wccrawford
The other day, out of the blue, my young niece starts telling me about Scratch
(online visual programming site), and how she's written some stuff on it. She
then proceeds to start telling me about other people, how they had done things
wrong, and how she knew how to fix them.

I was so freaking proud. I had never tried to teach her to program because
she's as hardheaded as I am. Trying to force it on her was doomed to failure.
But because she discovered it, she bit in pretty good. She's playing at being
a cheerleader now, but I can't help but think the experience will help her
later, even if she never programs again.

~~~
tankbot
My niece, also 10, has been bugging me to teach her how to make computer games
of her own. After thinking about this for a couple of months the Raspberry Pi
came out so I ordered 2 (one for her, one for me!) and set her up with
Scratch. While waiting on the RasPis to arrive, I bought her a copy of Loren
Ipsum[0] and read it first to make sure it was good for kids and had the right
kind of information (it does!).

IMHO this might be the best way to introduce kids to programming. The book
teaches fundamental concepts (she was blown away by the infinite string being
less than 2 inches) without bogging them down in jargon and syntax (fuck
semicolons...). On top of that, Scratch has really great visual logic and
design pieces that fit together like a puzzle and let kids explore the
concepts themselves, again without all the nitpicky syntax. This keeps things
fun an interesting while they learn.

She is now a Scratch wiz and loves making stuff. Since she is an avid reader,
she likes to create characters from her books and make them do crazy stuff.
During the months I considered how to approach her education, she has amassed
an impressive amount of design notes on her first game, including characters
and levels. She is now working out the story to go with it and will begin
putting it all into scratch soon. I can't wait to see what she comes up with!

EDIT: Forgot the link for [0]!

[0] [http://www.amazon.com/Lauren-Ipsum-Carlos-
Bueno/dp/146117818...](http://www.amazon.com/Lauren-Ipsum-Carlos-
Bueno/dp/1461178185)

------
dkhenry
I am continually amazed at the capabilities of kids. Their ability to
understand whats presented to them is astounding. I really think one of the
problems with the education system is we have this idea that everyone must
progress in all areas at the same rate, and we stop teaching kids new things
until they understand the set of things they "should" know for their age.

In a structured school system she wouldn't be allowed to program a computer
until she learned the right amounts of geography and english.

~~~
arkitaip
Or maybe we're expecting too much of the school system when it should be the
responsibility of parents to teach their skills valuable skills. School isn't
the solution to all our problems.

~~~
dkhenry
So as a parent why can't I demand a system I pay for to provide that kind of
service to my children ? In the realm of computers its ok, I know computers,
and can fill in , but what if my child takes an interest to chemistry ? As a
society we can ( and should ) be able to provide the depth of education to our
kids that they will be able to absorb.

~~~
vacri
You can: send your child to a private school. Or do it on the cheap, send to a
government school, and get the mass produced education that's a poorer fit.

~~~
malandrew
I think that there are plenty of options that have yet to be explored in
education.

I'm honestly not surprised that there have not been groups of parents with
children around the same age getting together to "time-share" teaching their
collective group of kids skills according to their abilities as adults. It's a
very different experience to learn something from somebody with a passion for
subject X than someone who is paid to teach subject X. Were I a parent, I
would rather find 5-10 other talented/smart/skilled parents that each have
unique passions and share in the effort of teaching my kid and theirs whatever
it is that is in my ability to share.

The good teachers in school are those that are passionate enough that you as a
student forget that they are being paid to be there and impart knowledge upon
you.

TBH, the closest thing we have to such an arrangement today is Boy Scouts and
Girl Scouts. It would be great if a similar program arrangement occupied 6-8
hours of a kids day.

~~~
Evbn
Why not get a job as a teacher or open a school then?

~~~
malandrew
Because I'm passionate about what I do for a living and want to practice it
daily. I'm also passionate enough to share it with others. But when sharing it
with others becomes a full-time job, you no longer get to practice it. 80%
practicing, 20% sharing is a pretty good ratio in my book.

Plus being a teacher has become an institutionalized career, full of needless
bureaucracy that in many cases sucks the fun out of what is fun about that
job.

I think Google could try something out in this space as a way to attract more
talent, maybe by allowing employees who are parents to set up a school taught
by other Googlers in their 20% time. If I had a kid already, I would
definitely want to join Google if it meant my kid would be taught by the
really smart people that work there.

FWIW, I worked as a teacher for 1.5 years. English language teaching to ~11
year olds for 6 months and presentation skills to graduate students for 1
year.

------
cygwin98
I respect the efforts the author put in to teach kids how to program. That
being said, I really don't think HTML/Javascript is the right choice for kids.
The web stack is even considered messy from professional web programers'
perspective.

My son will turn seven soon. I did some research on programming languages/kits
for kids around that age. I finally settled down on Robomind, which is more or
less of a modern variant of LOGO. Instead of the well-known turtle, you have a
Robot that hovers around. We tried it the first time last night, the boy
seemed intrigued. I hope Robomind can warm him up and make him ready for the
more advanced kit like Lego MindStorm, which I promised him as the birthday
gift.

We'll see how it goes.

~~~
cbhl
I've always thought that you'd have to worry about "technical elitists"
dismissing HTML/JavaScript as "not programming", since that's what I
experienced when I was growing up.

On the other hand, Khan Academy CS chose JavaScript because it made it easy to
share the results with others. So... nowadays I wonder.

~~~
viscanti
Haters are going to hate. It doesn't matter what field/discipline you're in.
JavaScript is as much a proper programming language as Python or Ruby or Lua.
They're all high level scripting languages that do roughly the same things.
Only one of them is natively in every browser (JavaScript). JavaScript turns
out to be fairly forgiving (you can intentionally or unintentionally leave out
semicolons and it will generally still run as intended).

I wouldn't worry about "technical elitists". It's really the Dunning-Kruger
effect at play more than anything. The less someone knows, the more they think
they know, and the more likely they are to be outspoken about people they
think are "below" them. There's also a fair amount of disdain between people
in different programming paradigms (OO vs Functional, Low-level vs High-level
languages, etc). NONE of that matters though. Build cool stuff and keep
getting better. Let the "technical elitists" spend all their time worrying
about what is or is not proper programming while you get on with your life,
build cool stuff and continue to get better.

------
anuraj
Being an architect and developer for the last 14 years I should confess that I
would not want my kids or anybody I love to choose software as a career. The
job can become repetitive, alienate yourself from social circles and you may
loose all zest for outdoors. It is a job that can work for people of certain
temperament (which I believe I am one of), but rarely the best thing you can
do in life. Having a great life is important than developing software.

~~~
irahul
> Being an architect and developer for the last 14 years I should confess that
> I would not want my kids or anybody I love to choose software as a career.

Learning to program doesn't mean you have to choose software as a career. A
lot of jobs will become more productive and interesting if the people involved
could program in addition to their specialized knowledge - finance; almost all
sciences do simulations, machine learning etc; basic data crunching...

------
apaprocki
Has there ever been a serious study which tries to determine at what age
children are able to grasp programming constructs? (loops, functions, etc) We
were all once little children and I know my own personal timeline, but I can't
say I've ever seen a large collection of data points analyzed.

~~~
drharris
Not that I know of, but I would say that teaching "loops" and "functions" is
almost definitely going to bog them down. Loops are not interesting on their
own, but rather in terms of what you can do with them. So teaching them how to
count (which is easy for children to grasp) is the proper beginning, followed
by repetition (do something n times). They will learn loops, but only in terms
of fulfilling a purpose. Things like functions come in later, as they are
initially unnecessary. When they start to write the same lines of code over
and over, you can point out the idea of reusing parts of code that get stuck
in something called a function. Abstraction is thus quite easy to get them to
understand (I speak only from experience, not a studied truth).

Basically, you teach them what they need in order to accomplish a specific
task. Are arrays really useful to teach at first if they don't need serialized
access to data? Better to wait until they need something like that. The goal
is to give them problems that require those concepts and see if they ask for
it. Initially, they might make 20 variables (where an array would do), and
complain that it gets tiresome. Perfect opportunity to explain an array, while
the interest is at a peak.

------
biotech
This is great. I'm working with a local elementary school teacher this fall to
teach kids (9-10 year olds) programming. We plan to use Scratch as it gives
immediate results and demonstrates many core programming concepts (variables,
loops, conditionals, etc). If they take to it very quickly, we may try a real
programming language.

If anyone has experience teaching kids this age programming, or if you know of
any resources available, please let me know. This is a new experience for me.

~~~
ehsanu1
Khan Academy has a pretty amazing live environment inside the browser:
<http://khanacademy.org/cs>

It's been tested to work pretty well with middle school children, so it seems
right up your alley. John Resig (creator of jQuery) made it happen, his blog
post on it: <http://ejohn.org/blog/introducing-khan-cs/>

------
EliRivers
Are there plumbing pages where people teach their children to plumb, or dry-
walling speciality sites where folks discuss how to get their kids into
plasterwork? Is this just a few cases, or is there something about programming
that makes people think it should be done by everyone? I recall not so long
ago a thread about how programming should be taught at school alongside
English (read "mastery of relevant language" for non-English speaking nations)
and Maths.

~~~
patio11
_Are there plumbing pages where people teach their children to plumb, or dry-
walling speciality sites where folks discuss how to get their kids into
plasterwork?_

That sort of thing is _quite_ popular with Boy Scouts and the like. You can
get a special magazine for fun father&son activities like The Joy of Spackle.
Totally not joking.

~~~
mechanical_fish
I gave my niece a toy, which she reportedly loved, in which you build little
hydraulic systems out of toy pipes.

[http://www.fatbraintoys.com/search.cfm?q=%20bridge%20street%...](http://www.fatbraintoys.com/search.cfm?q=%20bridge%20street%20toys%20girder%20and%20panel%20300%20piece%20hydrodynamic%20deluxe%20set)

Meanwhile, there's little need for toy drywall compound. We have Play-Doh,
better in many ways, or for the older and wiser there is papier-mâché or real
modeling clay or, well, drywall compound. It's not that dangerous except to
your furniture and carpets.

Have we talked to any actual five-year-olds while constructing this metaphor?
The ones who are obsessed with Bob the Builder and Thomas the Tank Engine and
Wallace and Gromit (tinkerers, ya know) and who own little toy plastic
toolboxes and squeal at the sight of construction equipment? Is it only my
friends' kids who are like this?

------
sschaevitz
Kudos to you, good sir. As a woman in Computer Science, I applaud all efforts
to get girls interested in programming at a young age. It makes the university
CS department much less intimidating to know beforehand what you're getting
yourself into.

"What will I teach her next? We are going to build her own little startup."
This does reinforce the post that was on here a few days ago about the liberal
use of the term "startup"...

------
orangethirty
_Update_

Thank all of you for the amazing response. My focus with the post was to get
people motivated towards teaching children about science and technology. That
has been my focus with her. We have had many fun projects, including a
pressurized water bottle rocket, and a baking soda propelled boat.

She has agreed to ship her first software project. We will be working on it
during the weekend. Expect an update in the coming days. Why do I want her to
ship something so fast? Because I want her to design and build her own thing.
This will allow her to see that she has the abilities and skills to change the
world for the better. She also agreed to talk about her experiences with
programming. Something that I'm sure will be of interest to all.

Thank you * infinity.

PS. Keep posted to my blog @ orangethirty.blogspot.com for our updates.

------
xyzzyb
"A normal person would have told her computers are for nerds, and not to waste
her time with one."

I doubt that would actually be the case these days.

~~~
Samuel_Michon
Reading this story about a 10 year old who doesn't know what a computer is and
what it can be used to do, I had to check the date of the article. To me, it
doesn't seem like a plausible scenario in this day and age.

In 1986, my grade school classroom had 4 Acorn computers [0]. Each student
could use the computers for one hour every day — to program in Basic, do word
processing, and play educational games. It was an era when most people did not
own personal computers, but even back then, they would at least know what
computers were.

[0] <http://en.wikipedia.org/wiki/Acorn_Electron>

~~~
Evbn
Not having something specific in mind to learn is different from not knowing
what computers do.

------
zimmru
Another great resource for teaching kids programming that I haven't seen
mentioned in the discussion is Scratch (<http://scratch.mit.edu/>). My
daughter (just turned 11) has been playing with it for a couple years now and
it's pretty amazing the stuff she can create. The best part is that the
scratch website hosts projects for free, so she can share them with friends
and family. It's a great introduction to programming concepts.

As far as learning HTML/JavaScript, my daughter also liked Codecademy, and
went through several tutorials there. She would get bogged down a little on
syntax (Scratch is very visual), but I can't imagine an easier way to learn
HTML/JavaScript.

~~~
sunraa
I'm about to do an multi-week after school "Intro to Programming" session at
our local elementary/middle school in Scratch in Baltimore city. 8-10 weeks
for 5th to 7th graders. It is an urban school with quite a range in the kids'
abilities and not all kids have working computers at home. It'll be a
challenge but I think the kids will surprise me.

Last school year I taught 2nd graders a little bit using Scratch and many of
them got it and with a bit more exposure this year they could be creating
programs on their own.

------
dfischer
There's a great open source initiative to teach kids programming called Kids
Ruby: <http://www.kidsruby.org>

Anyone can host a class anywhere or just use the kidsruby program.

~~~
dhughes
Redditor Carlh's site is good too <http://www.computerscienceforeveryone.com/>

------
primitur
LOAD81 is good for this purpose too, thanks to antirez:

<http://github.com/anitrez/load81>

~~~
tremendo
typo in link, fixed: <https://github.com/antirez/load81> (and thanks!)

~~~
primitur
Oops .. sorry about that - and thanks for following up with the correction.
Did you try LOAD81? I really love it as a way of getting started with Lua
hacking, and I'd love to hear others experiences too ..

------
mapmeld
To teach for loops, I start with this example:

    
    
      word = "banana"
      for letter in word:
        print letter
    

It isn't a counter, but it makes it clear that print is happening for each
part of the word. Then you can write programs using arrays and other counters.

------
_wdh
That's a wonderful story. It's a real tragedy that most children don't have
role models like this.

~~~
orangethirty
Thank you. Ever since the death of her father I've been trying to find a way
to get her motivated about something. This seems to have been it.

I appreciate the kind words. Really do.

------
evolve2k
Beautiful story very inspiring thanks for sharing it with us.

~~~
dhume
Is it? I just get a blank page.

~~~
Paul_S
I just get gears turning forever and never loading anything.

------
mandlar
Wait, he didn't start her with jQuery first?! ;)

~~~
orangethirty
$(No);

I plan on introducing her to PHP and Joomla. Just kidding. :)

