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.'"

7 of 634 comments (clear)

  1. Scheme is the best teaching language by Gorobei · · Score: 5, Insightful

    for the professors, that it. By removing all the syntax, etc, you can be introducing functions, lexical scope, binding, etc in the first week. Data structures and recursion in the second.

    Result: most students quit by week two, and you are left with a fairly teachable remainder.

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

  3. Re:Python then C/C++ by SirLurksAlot · · Score: 5, Insightful

    Nowadays I would suggest $_language_of_choice as firs language as it is $_reasons[0], $_reasons[1] and $_reasons[2] language. Then extend it with $_arbitrarily_superior_language.
    Just don't start with $_other_language[0], $_other_language[1], $_other_language[2] or $_other_language[3] as it will screw the person up for lifetime.

    Please, I get so tired of arguments like this.

    As long as:

    1. the language (and the associated tools) are available
    2. it has all of the fundamentals of programming (looping, flow control, data structures, variables, etc)
    3. and it grabs their interest

    who cares what languages they learn? If they enjoy it and it allows them to learn how to program why should it matter what language they start out with?

    --
    God, schmod. I want my monkey man!
  4. 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?

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

  6. Quit knocking the hacker ethic... by tjstork · · Score: 5, Insightful

    People that knock the hacker ethic are a bunch of MBA drones that could never really build a damned thing themselves.

    You learn to program by diving in and doing it. The more you practice and study, the better you get at it. GM was very good at shackling some very brilliant engineers and turning them into process drones. Look at where it got them. Great things are built by individuals and the more steps you have in the way of people being individuals, the worse you will get. Products have to be owned by the engineers that make them and they are personal works of art.

    At the end of the day, the managers, bean counters, and all of these other people with their measurements, metrics and fancy charts are so much fluff, a tax on the capable in society... by really a bunch of leaches that could barely feed themselves as they lack the mental self sufficiency to do anything other than to try and ride the labor of others. We condemn socialism in society there's no real difference between the PM in a three piece suit and the lowest of the homeless people. Neither add any real value to society, its just that, the PM knows how to use PowerPoint and the homeless guy does not.

    --
    This is my sig.
  7. 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.