Which Programming Language?
Edited by chromatic
When you know a few programming languages, it's easier to analyze and pick up new ones. If you don't know anything about programming, where do you start? A recent thread on the editors list discusses what young people should look for, and how, when learning to program.
If your 12-year-old cousin suddenly decided he wanted to learn to write
programs, and came to you asking advice on which programming language to
learn, what would you suggest and why?
And, uh, related to this question, if he's dead-set on playing with C++,
are there any good, introductory C++ books that you would recommend?
When in doubt, ask the kid what he wants to do. From there, you can pick a
language. If he wants to do animation and games, Flash and Director both have
relatively easy-to-use scripting languages and lots of support to do cool
stuff. (Free trials are available.)
OTOH, if he wants to learn the syntax of a language, he may grok that fully
only to be frustrated by having to learn a large library to accomplish
I'd recommend starting with a task. Creating tic-tac-toe is pretty hard.
Maybe start with hangman. Or maybe he wants to create am IM client or use the
I'm increasingly convinced that the best way to learn is organically, the
way we learn to speak (and to a lesser extent, to read and write).
I'm currently learning Hebrew
and can say the following:
- It is extremely difficult to read and write a
language you don't speak. All the words are unfamiliar.
- It is extremely
difficult to read words letter-by-letter. You really need to learn to
recognize words and phrases to get good.
- It is very difficult to learn the way things are taught in school. Look
for the way things are taught on the ball fields and at the mall (kids just
absorbing stuff from exposure with their peers) and you'll have your best hint
at the most effective learning style.
- Start with a goal in mind.
- Learn in small chunks until the larger chunks make sense, but don't ignore
the larger chunks to focus on the miniscule chunks.
- Keep a peer or mentor nearby to teach iteratively. You
need not learn everything at once.
Dear ol' Frank had something to say about it:
Speaking: Web Design Languages
Mike Clark did a nice piece for
java.net on using StarLogo. I'm a fan of using Squeak and their eToys as well. I think that what
traditional Logo was (a starter language and environment for Procedural
Programming) Squeak is for OO.
I note that the kid who wrote in to Frank a few years back was seeking to
prepare himself for a career. But what about the kid who just wants to learn,
explore, build something cool, hack?
I sometimes think it would be a cool experiment to find a teen editor to
help shape a series aimed at the 10 - 16 year olds with an appetite for
cool hacks (defined by a teen's take on "cool"). Through my daughters, I see
a lot of kids who aren't yet interested in mapping out a career in tech
or otherwise abandoning music, sports, boys, whatever. . . . They're not junior
computer scientists or geek wannabees; they're just kids who have been
attracted to computers because of music, Napster, games, IM, and VOIP, and they
like to learn and share cool things that they figure they won't learn from
their dad. Just as some of our Hacks titles have ignited the imaginations of a
lot of adults who otherwise wouldn't pick up a "geek" book, I wonder if
there might not be an opportunity for a teen hacks concept that would maybe
build a bridge between the computer clubbers and mainstream teens. If the
"hacks" are cool enough, who knows, they just might learn some PHP or PERL.
God help us.
I've started my son on a Commodore 64 emulator. We're starting with
10 PRINT "WILLIAM"
20 GOTO 10
and going from there. It worked for me :-) I hear Rael's doing Lego
Mindstorms with his boy.
While he can't read yet (that's a hindrance), he's getting the whole
drag-and-drop-code-block-into-place thing down.
Return to: From the Editors List
Showing messages 1 through 8 of 8.
Give REBOL a try...
We call it Kid's Programming Language
Algorithmic Thinking First, Syntax Second
leave it to mobile phones
REALBasic or Cocoa