Slashdot Mirror


Learning Programming In a Post-BASIC World

ErichTheRed writes "This Computerworld piece actually got me thinking — it basically says that there are few good 'starter languages' to get students interested in programming. I remember hacking away at BASIC incessantly when I was a kid, and it taught me a lot about logic and computers in general. Has the level of abstraction in computer systems reached a point where beginners can't just code something quick without a huge amount of back-story? I find this to be the case now; scripting languages are good, but limited in what you can do... and GUI creation requires students to be familiar with a lot of concepts (event handling, etc.) that aren't intuitive for beginners. What would you show a beginner first — JavaScript? Python? How do you get the instant gratification we oldies got when sitting down in front of the early-80s home computers?"

4 of 510 comments (clear)

  1. I like Ruby by jarich · · Score: 4, Informative

    It's lightweight, portable, and has a ton of interesting projects for learning. Start here at http://www.ruby-lang.org/en/ Check out the "Try Ruby in Your Browser link" on the right hand side.

    1. Re:I like Ruby by mcvos · · Score: 5, Informative

      If I recall correctly, Ruby also has Hackity, a programming environment specifically for kids.

  2. Scratch got my 6 year old started by ZekeSMZ · · Score: 4, Informative

    MIT's Scratch ( http://scratch.mit.edu/ ) has gotten my kids started with programming. It's fun, and teaches all the fundamentals necessary for learning programming logic.

  3. Re:what I did by dkleinsc · · Score: 4, Informative

    As somebody who writes Python professionally, I'm a bit biased, but can say with some assurance that the whitespace thing is not a major problem in the Real World. It's certainly no more of a problem than any other technique for designating a code block.

    Compare these:

    ' Basic
    If a == b Then
          do_something()
    EndIf

    /* C and relatives */
    if (a==b) {
            do_something()
    }

    ; LISP and friends
    (if (== a b)
        (do_something))

    # Python
    if a==b:
            do_something()

    Are you seriously suggesting that the last one is more confusing than the others? If your blocks are large enough that they can't easily fit on a screenful, you have other problems not related to your language of choice.

    There are things to go after Python for, but whitespace is definitely not one of them. My take on its strength as a teaching language is that it can do really simple beginner stuff and really advanced stuff with graphics and sound (with the right libraries installed).

    --
    I am officially gone from /. Long live http://www.soylentnews.com/