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.<p>What types of things is she interested in? Art? Music? Video? Programming? Something else entirely?<p>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).<p>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.<p>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.<p>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.<p>Good luck.
If you want to start teaching her how software works, Alice is a good start:<p><a href="http://www.alice.org/kelleher/storytelling/" rel="nofollow">http://www.alice.org/kelleher/storytelling/</a><p>As well MIT scratch is a little more gender neutral:<p><a href="http://scratch.mit.edu/" rel="nofollow">http://scratch.mit.edu/</a><p>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 fully believe that you should let your daughter do what _she_ wants to do, rather than forcing computers on her...<p>With that said, if she has a genuine interest, my project Hackety Hack[1] 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...<p>1: <a href="http://hackety-hack.com/" rel="nofollow">http://hackety-hack.com/</a>
My input as a girl that was introduced to computers at a young age:<p>I was introduced to programming as a way of creating things, and as someone who likes creating things, it really excited me.<p>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).<p>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.<p>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).<p>*boring to me, atleast relatively.
By all means set her up with a good Logo implementation. Logo is a great way for kids to learn to program. Wikipedia seems to be a good starting point:<p><a href="http://en.wikipedia.org/wiki/Logo_%28programming_language%29" rel="nofollow">http://en.wikipedia.org/wiki/Logo_%28programming_language%29</a>
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: <a href="http://raphaeljs.com/playground.html" rel="nofollow">http://raphaeljs.com/playground.html</a><p>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.<p>What is your expertise in? My sister asked a lot of 'Why?'s and I imagine your kid will too, my area of expertise happens to be JavaScript (hence why I favor Raphael) so this worked well for me, but you would want to be prepared to have satisfactory answers.
You might find things like <a href="http://www.officelabs.com/ribbonhero" rel="nofollow">http://www.officelabs.com/ribbonhero</a> 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.