Given the background of a lot of users on this site, this seems an appropriate question to ask.

At what age would you/did you introduce your children to programming, and what would be the programming language you'd use?

Would you go with something like LOGO or Lego Mindstorms to abstract some of the coding and focus on logic paths (and building robots), or would you go straight for some 'proper' language and why?

asked 19 Jan '10, 21:17

Rich%20Seller's gravatar image

Rich Seller
accept rate: 19%


Duplicate :) http://stackoverflow.com/questions/20059/suggestions-on-starting-a-child-programming

(20 Jan '10, 05:59) Benjol

@Benjol, hmm not an exact duplicate as that question doesn't mention ages. I'm not sure if you can close questions as "too StackOverflow related"

(20 Jan '10, 11:27) Rich Seller

Here is a book written by a ten-year-old kid and his dad about learning how to program. In this case, the language is Python. I have not read it, but I have ordered it from amazon. Scott Hanselman interviewed both authors on his Hanselminutes podcast last week.


answered 19 Jan '10, 23:26

Graeme's gravatar image

accept rate: 0%

+1 for the link

(20 Jan '10, 11:29) Rich Seller

+1 ditto for great link!

(21 Jan '10, 05:04) Emi

I think I would go for something fun (like LOGO) because of the immediate gratification factor - you don't need to do much in order to see some results and because it is (relatively) simple.

With LOGO anyway, you still use the concepts of methods, parameters, syntax etc. which builds a nice foundation before moving into more complex languages later.

I remember being 7 or 8 and using LOGO back in the mid-80s. I think that if my first exposure had been to something say like Scheme or C, I would have run the other way ;)


answered 19 Jan '10, 22:44

Kate's gravatar image

accept rate: 20%

I think it's important to pick something that offers visible, fun results very quickly. In school we learned BASIC (QuickBASIC really). That wasn't bad for the time, but that was in high school so you could take some interesting stuff from trigonometry and get 3D graphics going very quickly, which was all the rage back then.

Like learning any language, I think that picking a goal is the primary choice, and picking the language is secondary. I'm into automation, so I'd probably start with a mechanical problem, like how would I make a USB missile launcher follow, lock on to, and launch at a target. :-) Or, you know, something like that. Then if you took the chance to explain how certain parts of the code worked, you'd probably get some learning in and pique their interest. There are lots of robot related things you could do. With a little ingenuity, you could turn some of those PC robotics parts into home automation projects too.


answered 20 Jan '10, 02:11

Scott's gravatar image

Scott ♦♦
accept rate: 10%

+1 for shooting stuff

(20 Jan '10, 11:34) Rich Seller

+1 for ingenuity !

(21 Jan '10, 05:03) Emi

Our 6 year old loves Lego, and I'm hoping I may be able to get him into Mindstorms when he's 8 or so. He's comfortable around computers, but I don't think he's got the concentration for it at the moment.

I personally started with Logo (rather than Lego) and in some ways it really helps... introduces a few of the fundamental concepts and the gratification is immediate. Presumably there are some modern implementations...

Moving on from that to "proper" languages, I suspect I may go for Squeak or Python... sad as it is to admit it, I don't think C# would be an appropriate first language.

I started programming "seriously" at around 10 or 11, I think... so if any of our kids are actually interested in it, I expect they'd be able to cope at around that age - maybe even slightly earlier.


answered 19 Jan '10, 22:28

Jon%20Skeet's gravatar image

Jon Skeet
accept rate: 35%

+1 "sad as it is to admit it, I don't think C#..." Too true. C# feels so good to work with. I worry that nowadays, never mind in another 15 years, kids entering programming don't get the grounding in Assembler and the real hardcore elementals that we did. (That's not to say my son is getting his first Assembler manual for his fourth birthday.) haha

(20 Jan '10, 16:51) Jeff

@Jeff: I think to properly teach programming, you need to start with building your own flip-flop circuit, a couple logic gates, and a full binary one bit adder. Assembly language flows naturally from there.

(21 Jan '10, 01:31) Scott ♦♦

The way that I plan to introduce my children to programming is to show them what I do and what I've done. (I suspect that will be within the next few years.) If they show a glimmer of interest, I'll start them in HTML. When I was a kid, I learned BASIC on my Atari 1200XL—the key component of maintaining my attention was that I could tweak this or that and see the results immediately. I know you can get this with the Python command-line but that's significantly less gratifying than a Web site.

I suspect that they'll quickly hit the limits of static HTML and then we can work on CSS and eventually JavaScript. CSS is great because it is a gentle introduction to abstraction and JavaScript is a foray into OOP. From there, the sky's the limit and they will have the greatest benefit that I never had: a capable and caring mentor within reach.

Worst case, they'll have a better understanding of how the Web works and can maintain their own blogs or sites.


answered 19 Jan '10, 22:46

bbrown's gravatar image

accept rate: 21%

And I joke with my co-workers that I'd like to teach my kids SQL so I can outsource that aspect of my job.

(19 Jan '10, 22:47) bbrown

+1 for visible results, and HTML knowledge is a good thing. But pure HTML as programming?

(20 Jan '10, 11:30) Rich Seller

I would be happy if they at least learned HTML. I'm not going to split hairs and tell them they're not really programming if they're doing just that. I think they'll be smart enough to spot the difference between their Littlest Pet Shop page and iTunes.

(20 Jan '10, 13:53) bbrown

@Rich: Haven't your heard? HTML (like XAML) is "declarative programming". So we can all put this debate to rest now. ;)

(21 Jan '10, 20:53) Scott ♦♦

My husband has already introduced our 8.5 month old several languages including C++. He started coding with our baby on his lap when he was a newborn. At first, he seemed to just enjoy sitting with Daddy and listening to the tapping of the keys. Now, he is starting to show an interest in hitting the keys himself. I think it is a bit like starting early with reading. If he is exposed to it early and often, he will see that it is an important part of Daddy's life and it may become interesting and important to him.

We've already started joking that when he is older his chores will be programming related. "Dad, can I have my allowence?" "Not until you finish debugging your code!"


answered 19 Jan '10, 21:43

cat_g's gravatar image

accept rate: 25%


I think pair programming of this kind would be very productive.

(19 Jan '10, 22:38) bbrown

+1 Brilliantly funny...

(19 Jan '10, 22:55) Emi

Myself, I think I may focus more on introducing my son to music early, rather than trying to decide when I should start "molding" him to be a programmer. My theory is that giving him a musical grounding will give him some important basics he can use to become good at anything he wants. Sure, I want to be proud of my son the programmer... but maybe he wants to be an architect, or a CGA, or a pilot. I will be very happy if he chooses to follow in my footsteps, but maybe he'll take inspiration from his grandfather, the first man to fly the CF-18 in Canada; or from his mother, grandmother and uncle, a CGA and two investment advisors; or from his other grandpa, a professional photographer.

I will do my best to support my son in whatever he chooses to do {gulp} even if that means I have to bite my tongue when my plan backfires and he says he wants to be a drummer in a band. ;)

To answer the OP's question, I don't think I have a particular age at which I will introduce my son to programming. He'll know what I did for the better part of my career, certainly, so it will come up.

As for music, kids have their own plans, but my "plan", if you could call it that, would be to keep him surrounded by musical toys and influences, early on, and then around 3-4 start him with a "real" instrument like a recorder. He doesn't have to be good. But the earlier the start the better, I think.


answered 20 Jan '10, 16:00

Jeff's gravatar image

accept rate: 6%

edited 20 Jan '10, 16:08

fair point, but I wasn't implying you'd get them straight on the payroll, this isn't about picking careers for them. The question is about introducing them to programming, I would expect that if they show no interest it is because they are too young, have no interest, the language is wrong, or the teaching approach has put them off. I wouldn't be upset unless it was down to my failings as a teacher

(20 Jan '10, 16:17) Rich Seller

Hey, don't worry, I'm not being critical. And I certainly didn't mention anything about payroll, as much as I'm sure you're being facetious. Rather, I'm more concerned that by "leading" my son to programming, the instant he feels rebellious ('tweens? early teens?) he will start rejecting the things he associates with me. I'm sure I'll give him an introduction to programming at some point. At this point I'm guessing I'll probably just do it when and if he shows an interest.

(20 Jan '10, 16:48) Jeff

+1 for what I think is a healthy attitude!

(21 Jan '10, 05:05) Emi

To get started really young you can use something like Alice, which is more visual. You can see some demo videos here:

The next step up from there would be something like SmallBasic

Small Basic IDE

It's a real simple (only 15 keywords) basic-like IDE designed to teach beginning programming concepts.


answered 25 Jan '10, 04:58

Joel%20Coehoorn's gravatar image

Joel Coehoorn
accept rate: 18%

+1, my main problem would be stopping myself from singing "Living Next Door To Alice" each time.

(25 Jan '10, 10:10) Rich Seller

I think I would start with some html, then add some javascript and then some serverside programming in php. Spread over the years. Since I'm not native English speaking, my child will be at least 10 years old in oder to understand some of the English keywords used in the programmingworld.


answered 12 Apr '10, 14:08

Fisherman's gravatar image

accept rate: 8%

Your answer
toggle preview

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here



Answers and Comments

Markdown Basics

  • *italic* or _italic_
  • **bold** or __bold__
  • link:[text](http://url.com/ "Title")
  • image?![alt text](/path/img.jpg "Title")
  • numbered list: 1. Foo 2. Bar
  • to add a line break simply add two spaces to where you would like the new line to be.
  • basic HTML tags are also supported



Asked: 19 Jan '10, 21:17

Seen: 6,294 times

Last updated: 12 Apr '10, 14:08