Live data from Hacker News

Ask HN: Good programming language for kids

news.ycombinator.com

31–40 of 52 posts

Re: Ask HN: Good programming language for kids

#31
post #21

As weird as it might sound but I recommend Basic. With line numberings. It will make her need to think about the whole program beforehand.That taught me analytical structural thinking so well. Also at some point I realised I could put more lines in between 10 and 20, 9 more lines!

Dijkstra be damned, I think BASIC is perfect for a beginner because it has such a readable syntax that it really doesn't take long to learn it. Not only is it simple, it's regular, readable and relatively quirk-free. For a beginner with only a small amount of skill, it's easy to look at BASIC code and work out what it does.

Scheme has a simple syntax too, but with it comes much more complicated constructs like closures, scopes, etc. But still, simplicity, immediacy, predictability and regularity are what a beginner needs, and Scheme has that.

Compare them to, say, Javascript, which looks deceptively simple but has so many quirks that we regularly get articles explaining explaining the syntax (such as "this") on HN. I can't imagine diving in to Javscript as a complete beginner.

Re: Ask HN: Good programming language for kids

#32
post #21

As weird as it might sound but I recommend Basic. With line numberings. It will make her need to think about the whole program beforehand.That taught me analytical structural thinking so well. Also at some point I realised I could put more lines in between 10 and 20, 9 more lines!

Kids should have fun programming. Line numbers are sheer torture.

I speak as someone who learned to program in TI-99/4A BASIC. The eventual move to QuickBASIC 2.0 was bliss: structured code and full-screen editing. I realized instantly what I had been missing.

Re: Ask HN: Good programming language for kids

#33
post #11

Ask her! First, figure out what exactly she wants to do/make/play with—then pick the best tool for the job. If she just wants to make web pages, set her up with some webspace and then, after she's gotten HTML and CSS down, show her that she can "make things happen" using PHP and Javascript. If she wants to make a game, I would personally recommend starting off not with any raw-coding environment at all. Why? Kids don…

"Ask her! First, figure out what exactly she wants to do/make/play with—then pick the best tool for the job."

I think you've totally nailed it here, but the other part is actually providing something to do.

Knowing how to program doesn't mean that you have something to program, which is often borne from some frustration or something that's missing in your computer life.

I just want to throw out there that the other half is stoking the creative fire. I think challenge projects are fun for this (like homework in a way), but the key is finding the right balance of challenge and reward.

Re: Ask HN: Good programming language for kids

#34
I vote for REBOL. Syntax is really basic, yet really powerful. Can do graphics, simple animation, connect to the web, can accept web connections and is really small.

Basic applications at http://musiclessonz.com/rebol.html rebol tutorial include a painting app, e-mail sender and a calculator.

Syntax is the real winner. Keywords, "" and [] is basically all. No silly semicolons, curly braces or whatnot.

Re: Ask HN: Good programming language for kids

#35
post #2

I would probably try Hackety Hack: http://en.wikipedia.org/wiki/Hackety_Hack

Hey, thanks for mentioning Hackety! I'm the maintainer now.

The site is now http://hacketyhack.heroku.com/ , and we're gearing up for a 1.0 release in the next few weeks. There's been a lot of work to get Shoes 3 ready, and once it's done, I can get 1.0 out the door...

Re: Ask HN: Good programming language for kids

#36
post #13

Ruby. I don't think you could get any less verbose, it's simple to understand and to the point, great for a first language. :)

I love Ruby, and it made perfect sense when I started learning it at 13. The syntax is so natural.

The only issue is what she wants to do with it. I was tilted a bit towards wanting to do "real" programming, so I had no problem with the fact that I've still never actually done anything with a GUI (well, the browser is basically a GUI for your Rails/Sinatra apps).

There are ways to do GUI's with Ruby, and it doesn't look too hard, but it's not as simple as it would be in, say, VB, or probably even Java. But don't give her VB or you'll scare her away from coding forever.

If she does want to do GUI's, you could checkout http://shoes.heroku.com/ Never used it, but I hear it's pretty good.

Re: Ask HN: Good programming language for kids

#37
post #13

Ruby. I don't think you could get any less verbose, it's simple to understand and to the point, great for a first language. :)

I would agree 100% with you except for some personal experiences I've had. I'm a full time Ruby developer who incessantly tries to pull all his friends, kicking and screaming, into programming - any programming - and naturally I push Ruby first, since I find it such an elegant, intuitive language.

To my surprise, though, some people just don't "get it". Where I see elegant, intuitive behaviour, they see incomprehensible magic. Where I delight in "objects all the way down", they find OO to be at odds with their conceptualisation and an unnecessary, unwelcome complexifying factor.

Depends on the person. I hate to say it but in many cases a less "opinionated about OO" language, like (gasp!) PHP, might be a better fit.

Re: Ask HN: Good programming language for kids

#38
post #27

Python comes with a turtle module, which means you can do all the neat drawing stuff you could do in Logo back in the days. Also Python's interactive console provides two helpful functions: help and dir, which let you stay in the console even when you have to look up documentation, check properties of an object or find what else is contained in an imported module. There are other shells for Python that provide other…

I would like to recommend my own PythonTurtle: http://pythonturtle.org

It was created to make a more friendly version of Python's turtle module.

Re: Ask HN: Good programming language for kids

#39
post #27

Python comes with a turtle module, which means you can do all the neat drawing stuff you could do in Logo back in the days. Also Python's interactive console provides two helpful functions: help and dir, which let you stay in the console even when you have to look up documentation, check properties of an object or find what else is contained in an imported module. There are other shells for Python that provide other…

The original poster's first suggestion was Squeak. It is a variation of Smalltalk, a "real" programming language, that is focused on being approachable and fun for children. I find it rather fun as an adult, too, and would highly recommend trying it out.

If you are using Smalltalk to introduce programming to a child, I suggest downloading the eToys version from Squeakland: http://www.squeakland.org/

Adults interested in using Smalltalk for developing sophisticated web applications should take a look at Seaside: http://seaside.st/

Re: Ask HN: Good programming language for kids

#40
post #20

Look at storytelling Alice. It's a PhD thesis mod of Alice, designed to help kids (especially girls) get into programming. http://www.alice.org/kelleher/storytelling/

Another vote for Alice.. I had an intro to engineering course freshman year that spent 3-4 weeks with Alice to teach basic programming concepts for non-comp sci people and beginners.

It's the perfect tool for developing basic concepts of programming, but in a fun environment that doesn't "feel" like coding.

Post reply on HN