
Teaching My Daughter To Code - pius
http://www.bluej.org/mrt/?p=39
======
DaniFong
I'm sending mik the article by Natasha Chen, on how terrible classes organized
around syntax killed joy for her, and Scheme revived the magic.

<http://www.trollope.org/scheme.html>

(here's the comment I left on the blog)

Hi there,

I applaud your efforts, and hope everything is well with you and your
daughter.

I do want to raise a note of alarm. I recall struggling through Java and C++
syntax as a kids, and though I did get through without too many scars, I
remembered much pain upon reading of Natasha Chen's encounter with programming
classes. In this article:

<http://www.trollope.org/scheme.html>

She details how boring classes organized around syntax displaced creative
teaching and work. But she then explained how learning Scheme revived the
magic for her: that the extremely simple syntax allowed her to focus on the
ideas directly, learning, all the way.

I love Scheme, and it would be a great choice. Squeak, too would be terrific -
it seems to have been developed with kid's exploration in mind: (see for
example, <http://www.squeakland.org/kids/kidsmain.html>). Even Java might not
be so bad.

But I would take caution. Making GUI apps in Java wasn't very fun. I recall my
frustration with Swing and exception hierarchies and paths and packages and
altogether it's just not an experience I would revisit. Maybe it's better to
learn something designed to be easy. Something designed to grow with you.

------
mechanical_fish
_Java_. Dear god. Must the joy be sucked out of her young life so soon?

Quick, turn on the _Why signal! <http://hacketyhack.net/>

Or Squeak. Anything. Perhaps we can put together a nifty hacking platform in
Arc once it finally comes out.

~~~
mynameishere
If his goal is to make a game that can be played in a browser, his realistic
options are Java and Flash. Java is free, which might be a consideration.

~~~
hhm
If you use Flex, it's free too (not open, though).

------
Eliezer
This looks an awful lot like my childhood experience with Hypertalk. (In fact,
I suspect Hypertalk might be better-developed than this framework.) It was
okay, I guess, but Hypertalk wasn't a real programming language and I'm not
sure this is either. I probably learned more from an even earlier childhood
experience with (heaven help me) Basic.

If I were trying to teach someone to program today, whatever their age, I
wouldn't dream of starting in any language other than Python. Seriously, Java?

------
ivan
:) My son is 10. I really don't know (can't make a decision) which language to
teach him.

~~~
abstractbill
I learned Lisp aged 12, after messing around a bit with Basic. I consider
myself very lucky for having had that experience. Writing an ELIZA clone at
that age was a _lot_ of fun - I remember in particular thinking it was
hilarious to give my version a very rude personality ;-)

------
marketer
Kids have a poor grasp of logic and cause/effect, so you can only teach kids
what is in their "zone of proximity". For instance, it might be better to
teach kids how to manipulate an existing program, like changing the color of a
circle that is being drawn, or changing the radius. Slowly, you could
introduce more complexity in the modifications. Trying to teach kids a
language outright wouldn't be feasible.

~~~
dfranke
Nonsense. I started learning QBASIC when I was 5 and was competent by 6.
That's not a fluke; one of my elementary school classmates in a class of 40
started just as early, and in fourth grade a second friend easily picked up
Visual Basic on his own when I introduced him to it. I'm very happy that my
parents never learned about Piaget.

~~~
eru
Down with Piaget!

------
wallflower
What about Alice from Carnegie Mellon? Randy Pausch (of life wisdom) fame. In
Alice, programming errors cause objects in the Alice 3D virtual world to have
unusual visual properties and/or behavior. <http://www.alice.org>

------
cellis
First lang i learned was _TRUCK_ , when I was the ripe old age of 13. It was
on a CD and you basically used the statements GOTO, LOAD, and UNLOAD to get a
truck to drive around and pick up barrels... it was fun stuff.

