10 ms·
Teaching my 10 year old niece how to program.
- evolve2k 14y agoBeautiful story very inspiring thanks for sharing it with us.
- dhume 14y agoIs it? I just get a blank page.
- Paul_S 14y agoI just get gears turning forever and never loading anything.
- icebraining 14y agohttp://pastebin.com/raw.php?i=g54GL7Da http://pastebin.com/raw.php?i=g54GL7Da
- dkhenry 14y agoI 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 14y agoOr 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.
- drharris 14y agoAgreed. By definition, school has to cater to the average. It's meant to provide a baseline for society. There are no rules that education must be contained within the school grounds. The way I see it, they handle the boring stuff like geography so I can spend time on teaching fun stuff like computing!
- elliottcarlson 14y agoAs long as we cater to the average, we are allowing the average to be brought down by underachievers - we need to draw a line somewhere. Moving to the US from Europe to start my Sophomore year of high school was a real shock - even with any language and cultural barriers I was being taught things that I had learned years before that. I ended up dropping out, not because I couldn't keep up, but because I was actually bored in school and just couldn't stand not learning something new. I regret not having a real diploma and just a GED - but other than that I have no regrets. It hasn't hindered my job prospects and I have come far enough on my own. Back to my original point; I think the education system needs to raise the bar slightly above average and attempt to make children reach for their goals.
- dkhenry 14y agoSo 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 14y agoYou 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 14y agoI 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.
- arctangent 14y ago> I am continually amazed at the capabilities of kids. Their ability to understand whats presented to them is astounding. One thing that children have going for them when it comes to learning is that they've not done very much learning, i.e. they've yet to realise that certain kinds of things are "hard" to learn or that they "are no good" at a particular subject. Children approach new things with a complete lack of intellectual fear, whereas older kids (and adults) have had years of experience of trying and failing to do things. Older kids and adults also have to risk more intellectual credibility when learning something new. Once you're somewhat socially established it may not be rational to attempt to learn how to do something which may be beyond your capabilities - your friends may laugh and call you stupid.
- apaprocki 14y agoHas 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 14y agoNot 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.
- SamuelMulder 14y agoI haven't seen a serious study, but I've taught Scratch programming to kids in the 6-10 age range and found that they were all able to grasp loops if presented in an appropriate way. Similarly, we didn't talk about functions exactly, but each Sprite in a Scratch program can have multiple blocks of functionality triggered by different things.. i.e. functions. By the end of a year-long course, all of the students understood at least the basic idea and several of them had a pretty deep understanding.
- cygwin98 14y agoI 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.
- jbattle 14y agoThe big upside with starting with web pages is it is SUPER easy for the kids to show off their work. All kids are motivated differently, but for my son at least being able to get encouragement from friends at school and family members was a big motivation. But good luck with Robomind and if that doesn't click, try something else (took my son like four different languages until he started to find some that really worked for him)
- Sakes 14y agoI honestly think the differences between any starting tech is negligible. The only thing that matters is the child learns that she has the power to create (or figure out how to create) things that she wants that did not exist before she created them.
- driverdan 14y agoThe web stack is only messy once you get beyond the basics and want to make it cross browser. As a teaching tool it doesn't need to have a modern design, look the same to everyone and work in IE6. I had similar thoughts to jbattle. Giving kids the ability to do something, put it online, and make it instantly accesible to their friends and the world is huge. It also helps open their mind to how accesible their creations can be. That said, Robomind does look pretty cool. I'm sure I would have enjoyed it when I was a kid.
- 14y ago
- elliottcarlson 14y agoI 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/ 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 14y agoAs 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 14y agoWell - 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 :)
- dfischer 14y agoThere's a great open source initiative to teach kids programming called Kids Ruby: http://www.kidsruby.org http://www.kidsruby.org Anyone can host a class anywhere or just use the kidsruby program.
- dhughes 14y agoRedditor Carlh's site is good too http://www.computerscienceforeveryone.com/ http://www.computerscienceforeveryone.com/
- _wdh 14y agoThat's a wonderful story. It's a real tragedy that most children don't have role models like this.
- orangethirty 14y agoThank 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.
- primitur 14y agoLOAD81 is good for this purpose too, thanks to antirez: http://github.com/anitrez/load81 http://github.com/anitrez/load81
- tremendo 14y agotypo in link, fixed: https://github.com/antirez/load81 https://github.com/antirez/load81 (and thanks!)
- primitur 14y agoOops .. 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 ..
- mandlar 14y agoWait, he didn't start her with jQuery first?! ;)
- orangethirty 14y ago$(No); I plan on introducing her to PHP and Joomla. Just kidding. :)
- zimmru 14y agoAnother great resource for teaching kids programming that I haven't seen mentioned in the discussion is Scratch (http://scratch.mit.edu/ 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 14y agoI'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.
- sschaevitz 14y agoKudos 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"...
- wccrawford 14y agoThe 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 14y agoMy 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/1461178185 http://www.amazon.com/Lauren-Ipsum-Carlos-Bueno/dp/146117818...
- wccrawford 14y agoThe 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.
- EliRivers 14y agoAre 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.
- jessriedel 14y ago> is there something about programming that makes people think it should be done by everyone? Yes.
- EliRivers 14y agoIs it possible for you to expand on this? To give just one example, plumbing is far more fundamental to civilisation and we're happy to have a trained cadre of plumbers, and for most people to go their whole lives with no knowledge of it. Do plumbers wander round shaking their heads and wondering why nobody else knows how to do it?
- pulplobster 14y agoI'd say for a number of reasons they're different. Plumbing, while probably useful at some point in your life, is just one activity. Programming is NOT just one thing. It's closer to woodshop (which I hope is still in schools...). Another difference I think is that you can create something bigger with it, something that scales. Last but not least, I think it's inherently fun and fulfilling to create something out of nothing, but I'll admit that it's not for everyone. But neither is woodshop or gym class. I'd also say that teaching some programming along side math could have some benefits to learning and motivation.
- jessriedel 14y agoI would say programming is analogous to the entire idea of working with your hands (which subsumes woodshop, metal shops, car repair, etc.).
- biotech 14y agoThis 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.
- xyzzyb 14y agoHackety Hack! comes most quickly to mind: http://hackety.com/ http://hackety.com/
- xyzzyb 14y agoOh, and Computer Science Unplugged has a ton of fantastic exercises for kids in that age group: http://csunplugged.org/ http://csunplugged.org/
- ehsanu1 14y agoKhan Academy has a pretty amazing live environment inside the browser: http://khanacademy.org/cs 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/ http://ejohn.org/blog/introducing-khan-cs/
- ktf 14y agoTwo new books on the way from No Starch Press: Super Scratch Programming Adventure (http://nostarch.com/scratch http://nostarch.com/scratch -- available now) and Python for Kids (http://nostarch.com/pythonforkids http://nostarch.com/pythonforkids -- available soon). The Scratch book is probably appropriate for ages 8 and up, the Python one for ages 10 and up (depending on the kid, of course). Disclaimer: I work as an editor for No Starch.
- SkyMarshal 14y agohttp://paulgraham.com/avg.html http://paulgraham.com/avg.html Especially check out the footnote, A Scheme Story: http://www.trollope.org/scheme.html http://www.trollope.org/scheme.html
- xyzzyb 14y ago"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.
- saraid216 14y agoYeah, that put me off immediately.
- prawks 14y agoI stopped reading after that line. Someone with such a skewed view of the world shouldn't be teaching children. But really, what kind of statement is that? Who/what is a "normal" person? How elite does the author think his/herself to be claiming to be above "normal" people who clearly don't care about technology? (For an answer: read the author's "Why you need to hire me" page, which begins with "I deliver.") Sweet site layout though, totally nailed it bro.
- breckenedge 14y agoSame here, just stopped reading. Too elite of an article for me.
- Samuel_Michon 14y agoReading 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 http://en.wikipedia.org/wiki/Acorn_Electron
- Evbn 14y agoNot having something specific in mind to learn is different from not knowing what computers do.
- anuraj 14y agoBeing 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 14y ago> 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...
- orangethirty 14y agoI want her to discover science and technology. If she becomes a programmer then thats her choice. But the focus is in expanding her horizons and showing her that she has undiscovered skills and abilities. I personally dont find software repetitive, or even alienating. In fact, I just ran a national 5K race last Sunday. Had a lot of fun doing it.
- Evbn 14y agoConstruction workers get outdoors, but I bet plenty would love the sortware developer life. Your kids will have cellular connections and all day batteries, so they won't be chained to a desk.
- mapmeld 14y agoTo 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.
- orangethirty 14y agoUpdate 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.