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. Re:best first language? by Norsefire · · Score: 4, Funny

    No, it's *my* favourite language. Your favourite language is awful.

  2. Re:Assembler by sakdoctor · · Score: 5, Funny

    In before old people telling you about punch cards.

    Come to think of it, is there a way to do calculations with kids on/off your lawn?

  3. Obvious answer by ceoyoyo · · Score: 5, Funny

    The best first language for a young programmer is english with possibly a little bit of boolean logic, because then he could search Slashdot and find one of the Ask Slashdot stories about what the best first language for young programmers is that appear every couple of months or so.

  4. C++ or Fortran by jlar · · Score: 4, Funny

    Personally I would recommend C++ or Fortran since that should quickly kill their interest in programming. And I really don't want more competition from bright young people.

  5. Re:Assembly by Draek · · Score: 4, Funny

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

    Better yet, first make them learn Lambda calculus, then make them understand the Church-Turing thesis. Only when they fully grasp the nuances of an Universal Turing Machine should they even *touch* an actual computer and program in Assembly.

    Or perhaps teaching "from the bottom-up" isn't such a good idea.

    --
    No problem is insoluble in all conceivable circumstances.