My sweetheart's daughter is 7 years old and very precocious. I'd love to give her the chance to get interested in computers at such a young age -- and not just playing games on them, but using them. What would people recommend as the best approach?
Put simply, you can give her the chance by giving her the chance.
What types of things is she interested in? Art? Music? Video? Programming? Something else entirely?
All of these things domains have relatively inexpensive tools available which would be accessible enough for her to use. (I'll admit that I am not the best resource for what those tools are).
The larger philosophical approach: show her that computers are tools that she can use to pursue her own interests and to create things. Provide support when necessary, but mostly let her figure things out on her own (and show her where to look when she wants to learn more; I learned a lot about how to use Photoshop from Photoshop tutorial sites, for example). If it's something you're pretty good with, "Hey, wanna see something cool?" works better than almost anything else.
It's okay if that's the extent to which she is interested in computers. It's also okay if she begins trying to create her own tools, as there are resources for that, too.
Finally, keep in mind that 7 year olds are constantly growing and changing, and that interests can change rapidly. It's okay if she spends 2 weeks straight working on GIMP, only to drop all of that the third week. The introduction of extrinsic motivators tends to diminish intrinsic motivation (Kohn, Pink), and she's still young enough that her sense of curiousity and adventure has hopefully not been fully squashed.
Thanks very much for this. When I posted my question, I considered adding a paragraph to the effect of "I know the obvious stuff such as 'do something that interests her already and show her how the computer can enhance / simplify / empower that thing'." I left it out because I wanted to leave the maximum scope for people's answers, and now I'm glad I did.
I have to admit, the first time I read your comment I waved it off impatiently as "yes, yes, obviously that" but I'm glad I re-read it. I hadn't thought about the fact that her interests may be changing quickly and often, nor some of the other practical mental challenges that her age might bring like an attention span that is significantly different from day to day. Thanks for pointing that out -- I suspect you just saved both me and L a lot of dissatisfaction.
Yes. Since the question was regarding introduction to computers and not programming necessarily, I think this response is relevant. I can't locate the article but I recall reading that girls were much more interested in using computer tools to generate content, while it was the boys (or adult males) that were more often providing (writing) the tools. Not to generalize to all individuals, but empowering her with the tools to create content (e.g., GIMP or Google Sites) may be a strategic move.
...girls were much more interested in using computer tools to generate content, while it was the boys (or adult males) that were more often providing (writing) the tools.
Sample of one, agreeing with your comment:
I'm female. I learned a little (x)html and css exactly for this reason. A friend liked something I had written and posted to an email list. She asked if she could publish it on her website. I said "sure". She later let me post more stuff there. Then she couldn't keep up and gifted me all the code. I knew absolutely nothing about code or running a website. I didn't even know what FTP meant. I started playing with the code by copying and pasting new background colors into the code. As my site grew, I had to figure out better navigation techniques...etc.
My sons are dragging me slowly into playing a wider variety of games by de-emphasizing all the "macho" stuff I hate (like the fighting) and emphasizing how much each game is "like" something I do like: Simcity. They didn't get me into playing stereotypical guy games by telling me it was wrong to be so girly or to have the objections I had. They sold me on it by showing me what was in it for me that fit with my "girly" interests.
It is my belief that geek culture is relatively gender blind but it is definitely true that there seem to be fewer girl geeks than guy geeks. I wish more women had engaged with computers so positively as you obviously have; the field would be richer for it.
If you want to go less with the programming route and more of an artistic route, buying Photoshop or Pixelmator and working some tutorials will usually set the spark. I have found with my girls the art stuff took just a little spark and they ran with it. My 10 year old is now teaching my 3 year old design. The programming still takes active involvement on my part to help her through some of the tasks.
I second Scratch, it comes with a lot of examples which she can tweak, so she can explore changing settings. It's very intuitive, my daughter liked it a lot. It's available on Win, Mac and Linux too (on Ubuntu you need to install the squeak package first).
My (now 8 yo, but 7 at the time) daughter found Scratch to be mildly interesting, but not really compelling. She'd use it every now and again. But, she's pretty addicted to Kodu. I think the 3d aspect of it, as well as a more narrow topic (game/world creation and interaction) made things a lot more understandable for her, and allowed her to focus. She's still learning the same concepts, I believe, in the end, and that's what I'm after. I think of it as really a 3d Logo.
She's into 3 and 4 page programs now, with multiple actors, and fairly deep storylines.
I fully believe that you should let your daughter do what _she_ wants to do, rather than forcing computers on her...
With that said, if she has a genuine interest, my project Hackety Hack is designed to be the new BASIC for learning programming. It's built on Ruby, but starts you off with Turtle graphics, then some basic Ruby, and even GUI development. It comes with a bunch of sample programs that show you how to make all kinds of interesting things...
I'll put in my vote for hackety-hack as well. I'd also say that, if you want her to be awesome at programming, then force her to take piano lessons (or any instrument). There's a very strong correlation between music skills and coding, and music is something kids can grasp really easily.
> There's a very strong correlation between music skills and coding
Really? That's the first time I've heard about it. Do you mind going into more detail, or sharing links? It's not at all obvious to me why the two skills would be correlated (perhaps because my only musical skill is completely average ability to play the guitar).
Also - despite it maybe being a bit intense with the topic around it - http://railsforzombies.org/ - is done in a brilliant way for learning.
Maybe more for teens - and I dont see why someone couldn't rehash the zombie idea into something like ponies and teddy bears or something cute.
I've written a guide on how to complete rails for zombies - http://kaivong.com/2010/12/rails-for-zombies-guide/ - and if anyone is interested in doing something for a younger age range (that doesn't include zombies) I'd love to help out with design/screencasts.
My input as a girl that was introduced to computers at a young age:
I was introduced to programming as a way of creating things, and as someone who likes creating things, it really excited me.
The first things that I made were webpages (inc. perl scripts, like for Mad Libs) and java applets (inc. an applet that let you dress up my friend in cool outfits, and another applet that was "illustrated Mad Libs," with photos of my friends and actions).
I later went on to major in Comp Sci at college, and we had to do all these boring* assignments in my first year (book inventories + pointers, woohoo), but thankfully I was already aware of how much cool stuff I could create and I stuck with it.
So, if she likes creation, then I recommend web programming (because it is creating plus instant sharing), and also programming languages that lend themselves towards graphical output (Processing is a particularly good one for newbies, and you can now teach her either traditional Java-based Processing or JS Processing).
Web programming is actually harder to teach than other programming, I would say, because it involves so many different languages meshing together in this funny environment. But I think the practicality of it may outweigh the complexity of it.
I imagine most kids find visually engaging things immediately interesting. The initial hook I used to get my sister interested in programming was the Raphael Playground: http://raphaeljs.com/playground.html
I walked her through how to use the reference to do more and was surprised how little hand-holding she needed. She's 11, not 7, though, so this could be beyond your kid's level.
You might find things like http://www.officelabs.com/ribbonhero interesting. It's a game to teach Microsoft Office (Word, PowerPoint, Excel). I'm not a huge Windows fan.. but it would sure give anyone young the 1 up in terms of learning something which will be productive in the future in a fun way!
You can start by showing her that there is more to a computer than games, the internet and facebook. Once you show people the variety of things you can do with a computer, then its up to them to follow the path to what interests them most.