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?"

10 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. There's Alice by rsilvergun · · Score: 3, Informative

    Google it. Especially if you like the Sims, try the 3.0 beta. Other than that I'd second HTML + Javascript. You can very quickly get up an running with something fun and interesting.

    --
    Hi! I make Firefox Plug-ins. Check 'em out @ https://addons.mozilla.org/en-US/firefox/addon/youtube-mp3-podcaster/
  3. Re:And why doesnt BASIC still work? by tepples · · Score: 1, Informative

    And why doesnt BASIC still work?

    Because Apple has banned it from the iPhones and iPads that most of the "cool kids" are using nowadays. In fact, Apple pulled a Commodore 64 game from the iOS App Store solely because the player could reboot the emulated C64 into the REPL of ROM BASIC.

  4. TI-BASIC by gman003 · · Score: 3, Informative

    Grab a TI calculator. Learn the slightly weird version of BASIC installed on them. That's where I got my start.

    You can write an actually useful program in just a few lines. It's got a few simple data types (floats, strings, lists and matrices), has a few basic functions (Disp, Input), and all the common language constructs (If-Then-Else, For, While, Goto). There's a few oddities (assignment is reversed, instead of "a = 2" you have "2 -> a"), and there's no proper way to declare a function (you can either make another program and call it, or use goto), but you can do a surprising amount with it.

    I programmed those for a year or so. Tried learning assembly to get around the limits of Basic (mostly the speed), couldn't do it. But I did get into C++, and later all the other "real" languages, and am now pretty much a real programmer.

  5. 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.

  6. Re:And why doesnt BASIC still work? by MightyYar · · Score: 2, Informative

    Because Apple has banned it from the iPhones and iPads that most of the "cool kids" are using nowadays.

    Bogus. All interpreters are banned, not just BASIC.

    And they run javascript sites just fine, some of which implement BASIC.

    --
    W..w..W - Willy Waterloo washes Warren Wiggins who is washing Waldo Woo.
  7. Scratch -- the latest from MIT for kids... by mengel · · Score: 3, Informative

    You should definitely look at Scratch, which is designed for kids, even (especially?) kids who don't type very well yet, yet it teaches them programming skills. This is the same crowd who initially did Logo all those years ago, and they think this is better...

    --
    - "History shows again and again how nature points out the folly of men" -- Blue Oyster Cult, 'Godzilla'
  8. 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/
  9. Re:what I did by pclminion · · Score: 3, Informative

    or more specifically, not identical to this:

    # Python
    if a==b:
    do_something()

    That is not permitted in Python. It is a syntax error. You must either list a statement on the same line, or begin an indented block. If you want an empty block, you use the 'pass' statement. See, it's almost as if there are features designed into the syntax to help prevent mistakes. How odd.