Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

In case my child would be interested in what I am doing...

At what age could I reasonably teach my child what programming is?

What is your experience with teaching them to program if they want to? Are there great articles about this?

share

locked by World Engineer Mar 5 at 17:49

This question exists because it has historical significance, but it is not considered a good, on-topic question for this site, so please do not use it as evidence that you can ask similar questions here. This question and its answers are frozen and cannot be changed. More info: help center.

closed as off topic by Mark Trapp Dec 4 '11 at 2:08

Questions on Programmers Stack Exchange are expected to relate to software development within the scope defined by the community. Consider editing the question or leaving comments for improvement if you believe the question can be reworded to fit within the scope. Read more about reopening questions here.If this question can be reworded to fit the rules in the help center, please edit the question.

2  
This depends on what you consider "programming". Typing in traditional programs and run them through a compiler, or telling the computer what to do... –  user1249 Nov 14 '10 at 12:43
7  
When they ask. Not before. –  Mike Dunlavey Mar 4 '11 at 21:36
5  
BTW my 18-month-old grandson loves nothing more than "helping" me. He has his very own keyboard that he can bang on, flip over, and drop. –  Mike Dunlavey Mar 4 '11 at 21:59
1  
I don't understand why this question is off topic. –  ohho May 10 '12 at 8:08
1  
@ohho Unfortunately, this is a Q&A site for conceptual software development questions, not a Q&A site to get answers from Programmers on any topic. Perhaps you can go add your vote/opinion to the proposal to change the site name to match the FAQ, or change the FAQ to match the site name to help let SE become aware that this is a problem with the site :) –  Rachel May 14 '12 at 13:53
show 2 more comments

23 Answers

up vote 44 down vote accepted

I taught my son VB, followed by VB.NET and C#, when he was in Grade 7 (about 13 years old.) He enjoyed making simple games and sharing them with his friends. He was then able to pitch in with some family business tasks, fixing annoying bugs that were kicking around in internal-use tools that we never had time to fix. When he was 14 he was contributing code to client projects. But then he got interested in skateboarding, snowboarding and playing guitar, so his programming dwindled. I don't mind, I like to expose my kids to lots of options.

Interestingly he said that the first few months of playing video games once he had learned to program were a little mindblowing; he couldn't stop imagining the algorithms and data structures that were happening while he played - this would be a simple if, they must have a loop here, they use a random number to decide whether to open the door or not, and so on.

Given his career plans at the moment I doubt he will ever be paid to program but I am confident that it has helped him already and will continue to do so. Also it was fun to be able to share with him what we do all day.

share
5  
+1 for "I don't mind, I like to expose my kids to lots of options." –  Chris Oct 11 '10 at 12:21
4  
I completely know how he feels with the videogame thing. I can't stop seeing things as algorithms now (though the world is probably object-oriented). –  Maxpm Dec 7 '10 at 4:38
1  
++ Very nice. I like to see a kid with a guitar or a bunch of good friends as much (or more) than with a keyboard. –  Mike Dunlavey Mar 4 '11 at 22:03
add comment

As I wrote in this answer on Stack Overflow, I started writing code in VB6 when I was 7. With the help of my dad, I was able to write my first app: a word-search solver.

Next, I moved into learning HTML and web design. However, when I was 9 or 10, we had a guest who was a C# programmer. He showed me some C#, and I was very intrigued by the language.

A few summers ago, I took a C# course through the extension program of the University of California, San Diego. I also started reading programming blogs and books, especially Joel Spolsky's books and blog, and began trying to learn good development techniques. Joel on Software eventually led me to Stack Overflow.

My parents hooked me up to write a few data collection and analysis programs for a local non-profit recently. Also, I've started a programming club at my school, done some open source work, and more. I spent the summer working with ASP.NET MVC, and I'm very close to releasing a portal for musicians, as well as a portal for one of the newspapers at my school.

I'm not sure how he did it, but my dad really got me intrigued in programming. At the time of this writing, I'm 13 years old, and I feel like I've come a long way in the past 6 years.


The only tip that I have is that you should try to start with a small project that your child is interested in. My dad started with building a word-search solver with me, but you might want to focus on something more graphic-oriented. For example, you could build a game with XNA Game Studio and C# - I'm sure that your child will be intrigued by that.

Good luck and have fun!

share
3  
If you don’t mind me asking... VB6 and C# are both pretty high-level languages. To what degree do you think you understand the innards, the way things work at a lower level — for example what exactly happens when you concatenate two strings, or how mouse clicks turn into events? — Don’t take this the wrong way, I’m not questioning your abilities; I’m actually wondering to what extent good high-level programmers nowadays will figure these things out (which is often necessary in order to know why an algorithm is slow, for example) when they have never been exposed to a really low-level language. –  Timwi Oct 3 '10 at 13:54
12  
You have a better vocabulary at 13 than I do as an adult. –  webbiedave Oct 25 '10 at 21:46
3  
Amazing post for someone your age. Do you have a twitter account that I can follow? I'd love to follow your progress. –  Thomas Stock Oct 26 '10 at 9:59
2  
There must be something in the water at UCSD. –  Macneil Nov 14 '10 at 6:22
1  
Especially well written. I had college students who could not communicate this well. –  Mike Dunlavey Mar 4 '11 at 21:37
show 3 more comments

A little warning,

I've experienced this myself. At the age of 12 my dad started to explain what programming is, and began teaching it to me. Well, I can tell you I wasn't very pleased with that. I rejected it and never understood anything.

About 4 years later when I was 16, I came in touch with scripting (I made my first server for a game, which required some skill in scripting) I taught myself from examples.

Scripting/programming got my attention, and I began researching it. (Still wanted no help from my dad)

About 2 years from that, when I was 18 I decided to try and become a Software engineer and began my study of Informatica. (Currently in my third Year)

What I am trying to say is, my dad forced me into learning programming which at that point I wasn't interested in, please consider that you might have the same response from your children. Please don't force it, because it will make it worse. (Puberty - I guess)

My answer to your question: try to explain some and watch their reactions. Let that be your guideline.

Of course, I realise that this is a personal story and your kids could be a lot different than me. :)

share
9  
Not specific to programming. Forceful imposition of any topic by parents can backfire, especially at the rebellious age of 12. –  dbkk Oct 3 '10 at 2:41
3  
Also don't try to hard to structure their learning path, I went Logo->Basic->Assembler at age 13 and my dad wasn't very supportive cause he felt asm was way too big to take at that age. It's didn't stop me, but it sure did put a wall between us. –  grok Oct 5 '10 at 3:43
show 1 more comment

I started learning about programming at 8 years with Turbo Pascal and although I didn't program anything useful the concept was clear enough to me to get an idea of what's going on. I guess, you can begin even earlier, but you have to start very simple and you shouldn't put on too much pressure, as this would be more likely to turn the child away. Also I think binary logic should be easy enough to be understood pretty soon. Try to adress the topic, and let it be, when the student shows no interest.

share
2  
Antsan, me too !!!! ;) +1 for that. Turbo Pascal rulez. –  user2567 Oct 2 '10 at 13:29
show 1 more comment

What Age ?? Please let your child figure out what he want's to do with his life.

If he is interested then first introduce him to solving theoretical problem's and then see if he is interested in moving to Programming. I would say late teen's as outside exposure is a must for any individual.

share
show 2 more comments

This is a good article, I recently came across.

In My opinion, Teach your children to use computer and then teach them programming, instead of gaming. This will be an excellent combo. The age of twelve is preferably good for this.

share
show 2 more comments

I think that if you are over 30 then you should be alright. Younger than that and you don't have enough experience with programming or with children :)

share
add comment

Whenever your kid expresses interest in doing so. Apparently, there's kids who do so at the age of three, and I certainly know adults who still don't. It's hard to believe, I know, but I have friends who are 30+ and still can't program.

share
add comment

I think my story might be a little bit of interest at the time. By the way, my 12th birthday is in a few days

One day, my dad was working on a web interface for work and i was wondering - how do these people make such cool things? (my dad is a CS major)

Shortly after, he showed me basic HTML, at age 6, using Notepad, Windows 2000 and Yahoo GeoCities. He gave me the initial push, taught me basic syntax, how to upload to the server, and instructed me to go online and learn the rest of HTML. I learned the rest thanks to Google, although my dad helped me when I was stuck.

By eight, I was done and set with HTML, and I wondered why my sites didn't really do anything. Using W3Schools and the internet, I learned PHP. My dad didn't actually know PHP, he was more of a C and Perl guy. So I was really left alone. By then, GeoCities was closed and I was all on my one to venture through the Jungle called PHP.

I think my favorite part of PHP and HTML, was that you could go to anybody's house or at school and show your creations, while with other languages you had to transport the file somewhere.

I stuck with PHP, until I was eleven. I made some websites, and I had fun. By then, I had gotten really bored of PHP, so I tried some of the new "modern" languages. My two options were Ruby and Python. I had taken the time to learn both Ruby and Python. However, even though Ruby probably is superior for web development, what nagged me was the tiring setup which always failed. So, I turned to Python. I loved it's clean syntax, and its many functions. I've been good at that, and I'm currently learning Django. I tried making desktop apps w/ Python, although its rather bulky and sloppy, since the modules are rather old.

Finally, now, I've been learning Objective-C for iPhone developmment. This has been the most interesting one, although the language is quite tricky. I just find it starkly different than the simple syntax of other languages, but the outcome is very fun. I had to convince my dad to buy me a Mac in the firstplace, but it has been very rewarding.

Sorry for my very long rant, I apologize if you found it boring.

share
add comment

I was 3 or 4 when I watched my dad write programs into our Commodore 128. I didn't really know what he was doing. He didn't either really, the only way you could get some games back then was by buying the book and typing in the code - so he knew about as much as I did when I started programming at Herzing College 7 years ago when you could pretty much plagarize WROX books and get an A in the class.

Later, I'd watch my brother program (Basic, VB and C++) - he made a C++ mouse version of Vice (the game where you go to Watts to get some Ludes) That may not have been such a good experience. He was probably 14 or 15 and I was 9 or 10.

I think you need to have a good deal of abstract reasoning to know how to program. I didn't develop that until I was about 16. My brother developed it when he was 13 or 14. If your kids like to read books at that age, then they'll be able to program.

BTW, watch what your kids are programming like you'd watch what they read or watch on TV. My folks certainly didn't know that my brother was programming something like Vice Deluxe 2.0 - he died last year of a drug overdose. Not saying anything about cause and effect, just saying be careful - being able to shape your reality through programming is quite a lot for a kid to absorb.

share
add comment

Depends on the kid. Kids are ready when they are ready. I would start with teaching them the basics of computing--how to use the OS, MS-Word, some web-skills (how to find stuff, etc). then, let the kid decide if she wants to get more advanced. If they have no interest in programming, then don't force it on them--this would be the worst thing you could ever do.

share
show 2 more comments

If they're interested, very early on. I started "programming" on the Commodore 64 when I was 8-9 years old.

A few key points:

  1. I was copying programs out of books and my typing skills sucked. That was very, very frustrating as the pace was very slow. As others have mentioned, you have to start with the computer skills.

  2. At that age, this type of activity can be very, very dull. Definitely try to make it interesting, because even if they have an interest for programming they can get bored/frustrated with it.

  3. Look into visual programming environments. I'm sure there have to be some around still. You know the kind: you drag blocks of varying capabilities onto a field and connect them together.

I was talking to a friend about this topic and he mentioned a product for the Xbox called Kudo Game Lab. it's a visual programming language for creating games. I know nothing about it, but I thought I'd suggest looking into it (assuming you have an Xbox).

http://www.sunmetablog.co.uk/?p=126

http://everyjoe.com/technology/create-your-own-xbox-games/

Apparently, a release candidate version for the PC is now available, for free: http://fuse.microsoft.com/project/kodu.asp

share
show 2 more comments

I know a smart 8 year old who's been programming in MIT's visual Scratch environment for at least a year. Main benefits of it I can see over more conventional languages/tools are:

  • Instant visual gratification. You can't expect to impress anyone by printing stuff to the console these days.
  • The snap-together blocks from which programs are constructed eliminates a lot of the "syntax error" problems which baffle and frustrate newbies (see also this article), letting them concentrate on the logic of what they're doing.

He's since graduated onto BYOB (which massively expands the possibilities of Scratch) and seems to be showing some interest in Python now.

share
add comment

Seymour Papert found great success in teaching young children programming through Logo.

Alan Kay developed Smalltalk precisely as a means of teaching young children to program.

I think "young" here means "5 or older". My copy of Mindstorms is in a box somewhere.

share
show 1 more comment

Mine became really interested at age 4 after he finished Portal game. He learned many commands of Portal console and then asked me to teach him programming so he can develop Portal 2 :)))

Now he can do some simple calculations in Python command line.

Let your kids play Light-Bot 2.0 or 1.0: http://armorgames.com/play/6061/light-bot-20 Worked for my kid even when he was just 3 years old! :) Amazing game! Kids can discover basics of procedural programming, recursion and conditionals themselves without any explanation from you! ;)

share
add comment

Initial experience is always fun. Even if you tought your child how to make a program that spits out the product of two inputted numbers they would be happy.

I am 14 now, and started programming 2 and a bit years ago. I learnt by myself so i am sure they could learn with help from as young as 10.

Something you might want to introduce them to is game development (fun, so many possibilities that can be PLAYED with as you go).

try checking out Game Maker for something really simple yet effective. Other game development software includes : Scratch (simpler, but not as powerful as Game Maker), Adobe Flash (extremely popular) or if they are in they are really prepared to learn, C#'s XNA library.

share
add comment

I was eleven or twelve (doesn't remember exactly) when I learned programming from radio (yes, there was a weekly feature about learning basic). My father send me then to some programming-circle outside school. That all worked well for me.

But here is the point: it worked well for me at that age. Every human is different, so are your childs. Try to interest them in programming with some cool demonstrations, and if they are interested start with some basics. If the interest stays, then teach more. If not, your child may be more interested in other things (maybe it want to learn piano). Don't force it to learn programming.

share
add comment

Like a few others, I too began programming early -- around age 9. I started with VB and progressed to web languages, specifically PHP. I started not by my father introducing me but more my own interest in programming. The way I recall it is that I got my first computer around age 9 and was on ICQ and IRC on a regular basis. One day, I went to my father and told him I wanted to be able to program. He gave me a Visual Basic 6 CD and showed me how to set up the project. From there, I was on my own and taught myself everything I've learned. I'm now 22 years old (without a college education) and very successful in my career (I'm a Senior Software Architect at a major social networking website in the US). I attribute my success not only to my own ambition and passion for programming, but also my father's willingness to get me started with programming.

As far as getting your son started, I'd say it's never too early, but it might not be his thing. Honestly, I'd suggest getting him started in something he can be really proud of, explore, and show to friends. I'd suggest taking a look at Arduino.

share
add comment

It depends on the kid.

I started coding when I was 6.

My son is 7, and has built his first web site, but no interest in code yet.

Let the kid lead, and you can't go wrong. :)

share
add comment

If you're homeschooling check out: http://www.motherboardbooks.com/

Also Seton Homeschooling uses for it's 9th grade curriculum:

  • Python Programming: An Introduction to Computer Science
  • Visual Basic 2005 Express Edition Programming
  • Understanding Computers: Today and Tommorrow
share
add comment

Lego Mindstorms lists kids age 12+, you probably want to be at least 12 if you're getting into things that complicated, but at the same time, thats a GREAT way to start, because you can really have some fun and see what you're accomplishing. I probably wouldn't introduce any REAL programming until at least 12.

On the other hand, if you want to talk about "programming" in quotes, then maybe you could start even earlier. Very simple concepts like program flow can be explained very easily.

I would say if you want to start before age 12, don't get anywhere near a computer. Just sit down with your kid and a whiteboard, and maybe like a toy car. Have him/her write pseudo-code on the whiteboard, and then talk to him/her about what the car would do if it was following those instructions. Then you can explain how in order to make a Turnleft() all you have to do is Turnleft{ TurnRight TurnRight TurnRight } And he/she could start to get the fundamentals down.

share
add comment

If you program a lot at home your kids will naturally over time want to see what you are doing. Show them some basic things and let them go. If they are interested they will keep asking questions and play for themselves. No need to force it down their throats.

share
add comment

I begun programming at 10. My stepfather was responsible of maintaining the computers at the school, and he taught me and a couple other kids my age how to do simple programs in Basic. Basic is mind-numbing... but at least we got the basics of logic (if, loop, etc...)

Writing simple programs is easy, and highly rewarding, somewhat similar to puzzle solving. I would suggest simply exposing the kid to programming, and see if it takes, or not. If he's not interested, well, maybe later :)

share
add comment

Not the answer you're looking for? Browse other questions tagged or ask your own question.