Stories
Slash Boxes
Comments

SoylentNews is people

posted by martyb on Thursday December 03 2015, @11:55AM   Printer-friendly
from the making-introductions dept.

My 9 year old girl has expressed an interest in learning to program. Of course I want something that will give her short term rewards, but still teach solid skills. I know this question gets asked from time to time on various forums but I wanted to get some opinions from the good people of SN.

Christmas is coming... she's (for now) a Windows user... is there something you'd recommend as a gift?

Thanks for your ideas.


Original Submission

 
This discussion has been archived. No new comments can be posted.
Display Options Threshold/Breakthrough Mark All as Read Mark All as Unread
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
  • (Score: 2) by bzipitidoo on Thursday December 03 2015, @03:48PM

    by bzipitidoo (4388) on Thursday December 03 2015, @03:48PM (#271396) Journal

    Perl?!? That is high on my list of languages I wouldn't dare use to introduce children, or adults either, to programming. Even if you cut things way down, forget the regular expressions, hashes, and OOP lite, it's still heavy on sigils. Do you really want to try to explain appropriate use of the '$' and '@' sigils for an array, or would you try to leave arrays out too? What about special variables, $_ and $0, $1, etc? If you're still game, be aware that Perl6 changed a lot of things, even down to how '$' and '@' are used for arrays. In Perl5, the first element of an array x is accessed with $x[0], in Perl6, that's @x[0]. (Really, I think Perl5 should have used @x[0] to start with.) Yes, Perl is better than bash shell scripting, but if going with an adult language, I would chose Python over Perl. Lisp or one of its offspring is another possibility. If, however, Perl is your baby, I'd go with Perl6 rather than Perl5.

    Does anyone disagree that C/C++ is also a bad choice? Think that's been the consensus for 20 plus years, but it's been used in intro CS courses anyway, in large part because it's everywhere. Starting on Java in preference to C/C++ has a number of problems. Java is cleaner, but there was always that suspicion that the somewhat proprietary nature of Java would bite us later, and when Oracle bought Sun, those fears gained traction. Users of a programming language should not have to worry about such corporate events. Java is also a world of its own. It was meant to become the language of the Internet, but Javascript, the totally different language with the confusingly similar name, is the native language of browsers.

    BASIC, real BASIC with line numbers, not Visual Basic, has been out of favor for a long time. Fortran? What does Fortran have to offer over other high level languages? Better handling of advanced math that children won't have learned yet? You didn't mention Pascal, and that's okay. Pascal is alright, is meant for beginners, but I find the use of "begin" and "end" annoyingly verbose compared to the curly braces of curly brace languages, and I would not choose it either. Another bad feature of Pascal is the wholly unnecessary and artificial distinction between a function and a procedure. That distinction is legacy Algol, and it should have been dropped. Anyway, Pascal, and Modula, are pretty much dead languages now.

    What it comes down to is that there is still much room for improvement in programming languages. For clean and easy syntax, Python is about the best of currently popular languages, but I wish there was something better.

    Starting Score:    1  point
    Karma-Bonus Modifier   +1  

    Total Score:   2  
  • (Score: 2) by mendax on Thursday December 03 2015, @08:34PM

    by mendax (2840) on Thursday December 03 2015, @08:34PM (#271545)

    BASIC, real BASIC with line numbers, not Visual Basic, has been out of favor for a long time. Fortran? What does Fortran have to offer over other high level languages? Better handling of advanced math that children won't have learned yet?

    I'm not suggesting that kids use the old-fashioned Basic or Fortran now. I just used them as examples of languages that were pretty simple in their day because didn't require you to mess around with such awful things as garbage collection or pointers, and it is simplicity that kids should start with so they don't get frustrated and find something more fun to do.

    In defense of Perl, Perl is an incredibly powerful language, like pretty much all the scripting languages today, but that doesn't mean that the kid has to make use of those features. It's not too difficult to skip over most of the frustrating shit. Actually, I think a kid would find regular expressions to be quite fascinating. Simple regular expressions are very straightforward and any bonehead can understand them.

    --
    It's really quite a simple choice: Life, Death, or Los Angeles.