

Ask HN: First programming language for teaching programming to children? - clementi1800

I have a two-year-old daughter and I've decided to  teach her programming when she gets older. The two languages I've considered are Scheme, for its simplicity and functional focus, and Smalltalk, for its solid grounding in OO. Have any of you taught programming to children, and what language did you use? And incidentally, how old was the child when you started teaching?
======
manuscreationis
I can appreciate the idea of starting with a more functional language like
scheme, although maybe not something as far out of the modern lime-light as
smalltalk - despite how historically important it is.

In my, heavily inexperienced, opinion, you'd need to start a child off
something more concrete they could immediately the see the benefits of.
Children typically have shorter attention spans, and need something that they
can run with quickly. They are usually not of the mind frame that says "This
is difficult now, but some day i'll be glad I know it!". More often, it's
"This is fun to play around with, I wonder how far I can take things?". You'd
also want to start her off with something she doesn't need a lot of hard work
to hit the ground running with.

Take for example Javascript. You could teach programming basics, such as
variables and basic algebra, string manipulation including the need to escape
certain text, etc. in an environment she could immediately begin to grasp the
changes of. Just pop open a javascript console on any webpage in any modern
browser, and she has an interactive environment where she can play, learn, and
begin to see the effects of her work right away, in a very concrete fashion.
Sure, she'll most likely just be breaking a webpage at first, but she'll get
to see immediate results. She also wont need to struggle to learn a convoluted
IDE, nor the more arcane facets of linking libraries and external resources -
but she would begin to understand what they are, and be given a simple example
of how they're used and why (external scripts libraries, ajax requests to load
json)

Then once shes grasped how these things work, consider moving her onto
something more abstract like Scheme. I would definitely say I wish I had more
exposure to functional languages when I was learning programming, but my main
issue was no one ever showed me real world examples of why you'd use them - it
was always a boring, droll, academic venture into the subject. It lost me
quickly, and only recently have I begun to try to get back into it. But this
is only after I've spent many years developing in more OO languages, and begun
to see others using functional approaches in real world ways.

Please keep us posted on what you ultimately decide to go with, and how it
turns out (although I'm sure she has a few more years before you begin to
introduce her to the wonderful world of development).

------
bdfh42
This question gets asked here a lot - although on few occasions for a
prospective 2 year old programmer.

This Google search covers the history
[http://www.google.co.uk/search?q=first+programming+language+...](http://www.google.co.uk/search?q=first+programming+language+site%3Ahttp%3A%2F%2Fnews.ycombinator.com&hl=en&tbo=1&prmdo=1&biw=1453&bih=900&num=10&lr=&ft=i&cr=&safe=off)
but the very best of luck with the lessons.

------
ColinWright
There are dozens, if not hundreds, of places where this question has been
asked.

Here's just one: <http://news.ycombinator.com/item?id=1663784>

With things like Scratch, Alice and Logo, are you really contemplating
teaching a young child Scheme? Or Smalltalk?

Most children I've met can't balance parentheses correctly, the syntax
requirements are horrendous.

There must be a better way.

------
OpenAlgorithm
I'm learning to program for a few months now (I'm 16) I did quite a bit of
research into what language to learn first.

In the end I chose Python, it's easy to use, simple to understand and with
IDLE you can get instant results.

Plus there are tons of resources if your girls get really interested.

Python gets my vote but dependant on how young they start then something using
GUIs might be more interactive, ColinWright mentioned a few good ones.

------
mzbridget
Not sure when you plan to start her on programming but I just started my girls
on CodeAcademy (I'm not affiliated) because its super easy, teaches by doing,
and there's gamification/rep system in place. I'm following along with them.
Personally, I wouldn't want to choose a language for them to learn, rather,
get the principles/fundamentals of coding and let them explore languages from
there.

------
ohashi
I didn't really understand until I learned with Pascal. I was 16?

