Why I Taught My Daughter To Code (A Little)(weblogs.asp.net)
weblogs.asp.net
Why I Taught My Daughter To Code (A Little)
http://weblogs.asp.net/jgalloway/archive/2012/05/16/why-i-taught-my-daughter-to-code-a-little.aspx
8 comments
I did say "We had fun." :-)
But, yes, that was by far the best part. And we had something to talk about later. You're right.
But, yes, that was by far the best part. And we had something to talk about later. You're right.
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.
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.
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.
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.
Although I recognize that this topic is specifically about girls, this is important with kids in general and not just daughters. My uncle is a programmer with more than a few lines running in Red Hat and various other large projects. He works for a large company writing code in C, assembly, Python, whatever is needed. He is a programmer, and that is his life.
He also has a teenage son, who cannot write a single line of code despite the obvious will to learn.
I've tried teaching the boy over Skype. I've written tutorials, done my best to help him. Although I am not a programmer, I was willing to learn with him. But as much as he wanted to learn, he didn't want to learn it from me or from O'Reilly or from anyone else. If even his professional programmer of a father won't give him a few minutes of his life a couple times a week, how can anyone else hope to drive the boy's ambition?
A kid shouldn't be expected to keep pressure on their parents to help them learn, that should be an intrinsic value distilled in all parents. Your story has you sounding like an adult version of my cousin, looking back on a missed moment. That kind of makes me sad. Don't waste time with your kids. Opportunities like that don't stay around forever.
He also has a teenage son, who cannot write a single line of code despite the obvious will to learn.
I've tried teaching the boy over Skype. I've written tutorials, done my best to help him. Although I am not a programmer, I was willing to learn with him. But as much as he wanted to learn, he didn't want to learn it from me or from O'Reilly or from anyone else. If even his professional programmer of a father won't give him a few minutes of his life a couple times a week, how can anyone else hope to drive the boy's ambition?
A kid shouldn't be expected to keep pressure on their parents to help them learn, that should be an intrinsic value distilled in all parents. Your story has you sounding like an adult version of my cousin, looking back on a missed moment. That kind of makes me sad. Don't waste time with your kids. Opportunities like that don't stay around forever.
My dad is also a programmer. He helped me out as best he could; but for the most part we lived in two separate worlds.
Sure some stuff was common: if I needed a regular expression, he could always help me out. He had an editor (CodeWright?) with great support for that.
But I lived in the web world, and he made his living with embedded devices. Back in the 90s I was hacking away with 384MB of RAM in a Linux server. He was hacking away with, if he was lucky, 8MB of ROM and 4MB of RAM.
Still we talked about programming very little. Now we talk about the hilarious nuances of project management, but our work is still done in two completely separate worlds.
Sure some stuff was common: if I needed a regular expression, he could always help me out. He had an editor (CodeWright?) with great support for that.
But I lived in the web world, and he made his living with embedded devices. Back in the 90s I was hacking away with 384MB of RAM in a Linux server. He was hacking away with, if he was lucky, 8MB of ROM and 4MB of RAM.
Still we talked about programming very little. Now we talk about the hilarious nuances of project management, but our work is still done in two completely separate worlds.
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... )
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.
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... )
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.
>>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.
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.
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.
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.
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.
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.
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.
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.
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.
http://www.bbc.co.uk/schools/typing/levels/level1.shtml
If you know better keyboard trainers for kids please let me know.
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.
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.
The interesting question is also, what are you going to do when she starts turning against it. Are you just going to let her stop it?
My parents put me into piano lessons at around the same age but by becoming about 10 years old I began getting extremely annoyed by it. Fortunately they somewhat pushed me through it despite my negativity towards it, but my piano skills would be definitely better today, if I wouldn't have been so averse the idea for many years during my puberty.
My parents put me into piano lessons at around the same age but by becoming about 10 years old I began getting extremely annoyed by it. Fortunately they somewhat pushed me through it despite my negativity towards it, but my piano skills would be definitely better today, if I wouldn't have been so averse the idea for many years during my puberty.
I tried getting my daughters interested when they were younger. They got bored quickly and pushed back, so I dropped it. I'm glad I did.
My eldest daughter asked me when she was 10 1/2 if I'd teach her. It was so much better that way; if I'd tried to push it on her I don't think it would have worked.
My eldest daughter asked me when she was 10 1/2 if I'd teach her. It was so much better that way; if I'd tried to push it on her I don't think it would have worked.
music is akin to coding. exercises in abstract reasoning are great! my daughter loves the violin and piano - need to think up a computer language grammar that is in music notes.
my daughter is 11 and understands concepts when I present them to her, but I think to create a child needs to be a bit older. [I have read this somewhere, but have no reference.]
my daughter is 11 and understands concepts when I present them to her, but I think to create a child needs to be a bit older. [I have read this somewhere, but have no reference.]
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.
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.
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.
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.
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.
> 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.
Science as whole (especially maths, physics and chemistry) is quite inflexible when it comes to tolerating extremely small mistakes. I what you're really describing is the process of logical analysis, being able to look at something completely objectively and say for certain that this won't work or this will work. I think this is why I personally find maths and physical sciences as a whole so satisfying.
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).
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).
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!
EDIT: these are the droids... http://m.wired.com/wiredscience/2007/10/forward-40-wher/ ...thanks for spurring me on to find this!
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...
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."
I've also considered this beginning Python book: http://www.amazon.com/Hello-World-Computer-Programming-Begin...
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."
Great post, Jon. I hope I can connect with my daughters and teach them to code when they get older. Very inspirational.
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. )