Slashdot Mirror


The Best First Language For a Young Programmer

snydeq writes "Fatal Exception's Neil McAllister questions whether Scheme, a dialect of Lisp taught as part of many first-year CS curricula and considered by some to be the 'latin of programming,' is really the best first language for a young programmer. As he sees it, the essentially write-only Scheme requires you to bore down into the source code just to figure out what a Scheme program is trying to do — excellent for teaching programming but 'lousy for a 15-year-old trying to figure out how to make a computer do stuff on his own.' And though the 'hacker ethic' may in fact be harming today's developers, McAllister still suggests we encourage the young to 'develop the innate curiosity and love of programming that lies at the heart of any really brilliant programmer' by simply encouraging them to fool around with whatever produces the most gratifying results. After all, as Jeff Atwood puts it, 'what we do is craftmanship, not engineering,' and inventing effective software solutions takes insight, inspiration, deduction, and often a sprinkling of luck. 'If that means coding in Visual Basic, so be it. Scheme can come later.'"

5 of 634 comments (clear)

  1. Assembly by MpVpRb · · Score: 5, Interesting

    First, learn assembly, it teaches you how the machine works. (You should probably also learn electronics and digital logic)

    Then learn C, it is the most widely used in both commercial and open source.

    Then learn C++, it is a better C.

    Then learn Java, it rules the web.

    Then learn Python, it has some very clever ideas.

    Finally...never stop learning

  2. take a look at alice.org by kulakovich · · Score: 4, Interesting

    http://www.alice.org/index.php?page=what_is_alice/what_is_alice

    "Alice is an innovative 3D programming environment that makes it easy to create an animation for telling a story, playing an interactive game, or a video to share on the web. Alice is a freely available teaching tool designed to be a student's first exposure to object-oriented programming. It allows students to learn fundamental programming concepts in the context of creating animated movies and simple video games. In Alice, 3-D objects (e.g., people, animals, and vehicles) populate a virtual world and students create a program to animate the objects.

    In Alice's interactive interface, students drag and drop graphic tiles to create a program, where the instructions correspond to standard statements in a production oriented programming language, such as Java, C++, and C#. Alice allows students to immediately see how their animation programs run, enabling them to easily understand the relationship between the programming statements and the behavior of objects in their animation. By manipulating the objects in their virtual world, students gain experience with all the programming constructs typically taught in an introductory programming course."

    kulakovich

  3. Fast and free by proslack · · Score: 4, Interesting

    My first year as a CS major I took "symbolic logic" to supplement to required Pascal, Fortran, and Assembly Language courses. After all that, I always thought of the symbolic logic class as the "Latin of programming". Personally, I think any language which is free and gives quick results would be suitable for beginners...Python, for example.

    --


    Floating in the black seas of infinity without a paddle.
  4. Re:scratch by kjenks · · Score: 4, Interesting
    I'm a father of three and a college professor teaching computer programming, and I've found that Scratch is a very good "language" for teaching programming. It shows programming concepts such as looping, variables and interfaces in an immediately accessible and kid-friendly manner. It includes multimedia and event-driven programming capabilities. It uses the best features of immediate feedback of success and visible results to encourage exploration and fun.

    Programming in Scratch helps kids

    • start simple and do complicated things later
    • create an animation for telling a story, playing an interactive game, or a video to share on the web
    • jump right in and understand the basics like variables, loops, arrays, etc, without getting bogged down in an over complex or restrictive language
    • learn to program by diving in and doing it
    • impress their friends

    During the directed learning that takes place in a Scratch-oriented curriculum, the teaching team can introduce another programming language to show how syntax-oriented programming languages can perform the same tasks as the graphics-oriented systems. Any programming language can serve as that second language.

    I find it a bit ironic that the best language for teaching programming languages isn't a language at all.

  5. Re:Assembler by hattig · · Score: 5, Interesting

    I agree that Visual Basic is as bad a choice for a first language as any other complex programming platform.

    What made old skool BASIC good was that it was limited in ability. Admitted data structures were limited to arrays, which was a problem. However a medium-complexity basic like Blitz Basic 2 on the Amiga allowed the creative side to be expressed, without having to wade through complex APIs like you would with a modern language.

    And the best way to learn programming to a young person (under 16) is to allow their ideas to be expressed and implemented, be that writing your first football league tracking application, to a simple game, to a text adventure, and so on. If that means using BASIC, e.g., RealBasic, then so be it. It needs to be pick-up-able.

    I bet there are people saying Haskell and ML on this thread, for some academic reasons. The last thing a young person wants to be doing is learning how to manipulate data structures, functionally, with all the brain-fuckery that involves, and only to get a sorted list at the end. That isn't exciting, it's not even something to be slogged through, it's tedious and will actually put them off, totally.

    10 Print "I am god!" : goto 10
    run

    instant result.

    It's sad that computer magazines don't have programming in them any more, unlike the 80s. Game type-ins promised rewards to typing, and learning was osmotic.