
Why I Taught My Daughter To Code (A Little) - nreece
http://weblogs.asp.net/jgalloway/archive/2012/05/16/why-i-taught-my-daughter-to-code-a-little.aspx
======
fabricode
I cannot believe you missed the most important reason: you shared some of your
life with your daughter.

My dad was a programmer, and I was always hacking away on the computers that
we had around the house (sure... it was an Atari 800.... but you'd be amazed
at what you can do on that little thing). Unfortunately, he never worked with
me on any of my code ever. He never taught me anything about design, about
computer languages, --nothing--. Perhaps I could have been more aggressive
about getting him to help me, but I was an introvert's introvert. I was the
kid in school who blushed when his name was called during attendance.

Looking back, I can't believe the wasted opportunity. You should enjoy this
activity with your daughter for what it is. Forget the other 1,000 paragraphs
you wrote about why.

I'm glad that you did this, and your daughter will be too.

( I read your article twice to make sure I didn't miss it, but I sometimes
skip a sentence, so please pardon me if I got this wrong. )

~~~
bad_user
My son is almost 2 years old and I'm dreaming about all the things we'll be
able to do together.

My dad was also too busy to do stuff with me while I grew up. He worked hard
for a living, so I don't blame him. Life is hard and somebody needs to put
money on the table.

Don't be too harsh on your dad. He may have been too tired or fed up with what
he did to have energy left to teach you about programming.

And on the " _waisted opportunity_ " I don't necessarily agree. You probably
became a programmer because he was one, and because you had computers around.
You started hacking stuff because it was fun, but if you had a father that was
a bad teacher and that pushed you in areas you didn't like, then your passion
could have faded away, because passion is a fragile thing.

~~~
drbawb
Agreed. My father didn't help as directly as he could've. But he worked hard,
provided a good life, and because of his job all the materials I needed were
either readily available or easily borrowed.

Honestly the greatest thing my dad ever did was give me his work phone-number
(before e-mail was considered strictly a necessity.) Granted you can't answer
for your kid all the time - but _demonstrating your willingness to be
available_ goes a long way in the mind of a child.

------
ericabiz
I cannot overstate how important this is.

My dad really helped me out as a young girl. He taught me how to invest in the
stock market. (I still own stock I purchased as a kid with my own money.) My
parents bought (or helped me borrow from the library) any book I wanted.

My parents bought me my first computer--a 286--when I was 9. When I was a
teenager, I finally got Internet access--long-distance dialup on my brand new
486--and that's when I knew that "this Internet thing" was what I wanted to do
for the rest of my life.

(I recently posted an old photo of my dad, his stockbroker, and a young me
absorbing all this info:
[https://www.facebook.com/photo.php?fbid=10150342009128305...](https://www.facebook.com/photo.php?fbid=10150342009128305&set=t.678673304&type=3&theater)
)

Because of all this, I became a successful tech company CEO. I've been running
my own businesses for 11 years now and have had some amazing successes.

When I look back, it all started with my parents helping me out with
computers, business, and money (and books!)

If we want to see more women in the tech industry, this is where it starts.

~~~
mark_integerdsv
>>If we want to see more women in the tech industry, this is where it starts.

As a dad of two young girls: thank you for affirming that my efforts and
approach to parenting are sound and good and desireable. I just got my ten
year old her first computer that's hers and no one else's.

As a guy in tech: thank you for using a positive example and showing that a
point can be beautifully put without slinging mud.

Your post actually had me welling up a little.

------
agentultra
Amen. I have an orgfile with the exact points you just outlined. The
discussion over the Jeff Atwood post has been rather poor. I hope this article
will help sort out some of the main talking points.

The plumber metaphor is so weak it's not even funny.

We don't teach mathematics to kids so they will all become mathematicians.
It's a fundamental tool that lets you solve other problems. Unfortunately you
can't use it alone to write programs to tell computers how to solve problems!
If everyone just knew a bit, just the primitive bits, then at least they'd
have an intuition for the kinds of problems they can use computers to solve
and how to go about getting more information when they need it.

Bravo and thanks for this article.

------
rmATinnovafy
Even though my parents did not teach me how to program (they are both nurses),
they did the best next thing. They brought us (my brothers and me) a Commodore
C64. With a VGA monitor, a 1541 disk drive, and a host of games and
peripherals.

I still remember sitting down and typing little basic programs made up of GOTO
and PRINT statements.

Back when children where wasting away on the NES, I was hacking in my C64 (and
playing Ultima).

I'm prepearing to teach my 10 year old niece how to code this summer. She got
a netbook for her birthday, and I want her to learn how to use it. Planning to
teach her how to install ubuntu with it, and then jump to python. Looking
forward to it.

------
eande
When is a good time to get started?

When my daughter was 4.5 years old she started piano playing based on a
specific early children education. Now 3 years later she is doing really well
and still enjoys it a lot. It sounds early, but if the education is done right
I believe there is nothing wrong exposing them early on.

For learning how to code (a little) I am not sure when it is a good starting
point. It seems to me at 4th grade they have enough comprehension to learn
some basic coding skills. For a parent finding the right balance for the child
of having fun, learning and accomplishing something is probably the crucial
part.

~~~
Egregore
Now my son is 7 and he showed interest in learning programming, but I found
out that he is very slow typist and it slows the experience, so now I'm
looking for good typing trainer games, so far the best I found is:

<http://www.bbc.co.uk/schools/typing/levels/level1.shtml>

If you know better keyboard trainers for kids please let me know.

~~~
drbawb
I learned strictly on Mavis Beacon. It was all they used at my two private
K-12 schools. However it clearly did something right, as I was typing ~120WPM
by the end of grade 7.

I guess I hold an unpopular opinion, but I think typing is honestly my
greatest asset. Not because you have to be a fast typist to program - but it
honestly feels like theres less barrier between the computer and my thoughts.

If I could make one suggestion: focus on accuracy over speed. I took the
opposite approach and it frustrated me to no end when I made mistakes because
I'd instinctively backspace.

Touch typing and accuracy, in hindsight, are more important than raw
throughput.

------
incomethax
I've often thought about a basic computer literacy course I would give my
parents. I've never really been able to define what that would actually be,
given that for me, all of the things have become an internalized second
nature, and I myself don't really know how to "dumb it down" far enough that
we can share a common vocabulary for most basic computing.

I can't help but thinking that with all the focus on teaching people how basic
code works is just too different from what they need. It seems to me that most
people actually need to be able to make small improvements in their computer
use habits, like utilize tabbed browsing more effectively by learning how to
install addons, learning how to learn about which programs and tools are
better for their needs than just "something that my local techie" recommended.

IMO think the entire Jeff Atwood "controversy" has gotten blown out of
proportion. It's helpful for people to learn how a computer thinks (ie learn
to code), but its much more necessary for people to learn how to use the code
that is often already out there.

~~~
jongalloway2
Good points. I agree that it's really hard to think about how to communicate
things that are just obvious to programmers.

But having spent some time teaching my daughter, I see some real value in
starting with very (very!) basic programming. She was amazed that a one
character typo made her program break. Nothing in everyday life - with the
possible exception of government bureaucracy - is that unthinkingly
inflexible. So she learned that computers follow directions explicitly, and
what that means.

She also learned the positive side of this - that she was in charge. The
computer did exactly what she told it to. I think that's empowering and
revolutionary. It wasn't magic, it was a simple series of instructions.

From there, we've got a real basis on which to learn, ask intelligent
questions, and figure things out.

EDIT: I agree with the comments, a lot of things are unthinkingly flexible.
and the one of the best things to learn about computers is that for the most
part you can mess around without causing real physical harm.

~~~
Cushman
I like what you're saying, but I wanted to pick this out:

> Nothing in everyday life - with the possible exception of government
> bureaucracy - is that unthinkingly inflexible.

If you've never made anything else in your life, maybe. "I left one seemingly
unimportant detail out and the whole thing exploded" is a statement you could
make about a lot of things you might teach to kids-- fixing a car, baking a
cake, shooting a gun, building a treehouse. Only difference is when it's code,
the exploding is figurative, and if you just change that thing back it works
again.

That's part of what makes programming so magical, especially for kids. You can
break things completely with zero damage done. In fact, breaking things is one
of the best ways to find out how they work.

On a tangent: when you work with computer-illiterate people, one of the things
you notice is that they're a little afraid to physically touch the computer
for fear of messing things up (which is presumably a common occurrence for
computer-illiterate people). When you're teaching someone to code, the first
thing you have to teach them is to stop being afraid to change things. Not
because they won't break it -- they undoubtedly will -- but because breaking
it is the _point_.

As with many activities, I suspect the main reason children display such an
affinity for programming is not having to be trained out of such bad habits.

------
kellishaver
This is a great article. Learning to code a little and do some simple
programming is something my own daughter wants to tackle this summer. I'm not
the world's most patient person, so I've been a little intimidated about the
idea of teaching programming to a 10yr old, but it is something we are going
to tackle.

I'm curious as to how other parents have gone about this. I was considering
some kind of pair programming environment and possibly beginning Ruby or some
basic HTML/CSS/JavaScript. I feel like either would be easy to get into, but
the more fragmented nature of the latter would make things more confusing
(having to learn 3 technologies instead of one language).

~~~
mark_integerdsv
I have been wondering the same thing... What is today's equivalent of Logo?

EDIT: these are the droids...
<http://m.wired.com/wiredscience/2007/10/forward-40-wher/> ...thanks for
spurring me on to find this!

~~~
kellishaver
Scratch may be worth looking into: <http://scratch.mit.edu/>

I've also considered this beginning Python book: [http://www.amazon.com/Hello-
World-Computer-Programming-Begin...](http://www.amazon.com/Hello-World-
Computer-Programming-Beginners/dp/1933988495)

My daughter seemed kind of "meh" on Scratch, but still interested in learning
to program. I think she sees me spending most of my day working within an
editor or the command line and the highly graphical authoring environment of
Scratch doesn't fit the idea she's got in her head of what "real" programming
should be. I'm not sure if I should correct her or embrace the fact that she
wants to learn "the hard way."

------
hkarthik
Great post, Jon. I hope I can connect with my daughters and teach them to code
when they get older. Very inspirational.

