Stories
Slash Boxes
Comments

SoylentNews is people

posted by LaminatorX on Saturday January 24 2015, @01:02AM   Printer-friendly
from the bicycle-chains dept.

Blogger Carl Cheo, who maintains a website providing numbered lists of tips for maximizing online productivity, has pulled together an easy-to-follow graphic answering the newbie question "What programming language should I learn first?" (pdf here). Cheo chose nine commercially viable languages as possible destinations as the viewer navigates the flow chart. Further down the page, there are tabs with annotated links to educational resources for each language. So what's in it for Soylentils, most of whom I'm guessing were programming newbies in the previous millenium? Well, maybe you have nephews or nieces who chose the wrong major in college. Besides, the graphic is amusing and clever, though probably not the last word on the subject.

 
This discussion has been archived. No new comments can be posted.
Display Options Threshold/Breakthrough Mark All as Read Mark All as Unread
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
  • (Score: 2) by bzipitidoo on Saturday January 24 2015, @05:41AM

    by bzipitidoo (4388) Subscriber Badge on Saturday January 24 2015, @05:41AM (#137555) Journal

    I figured Python would be the winner. It really does have a cleaner syntax.

    The order I learned was roughly:

    BASIC (TRS-80, Applesoft, GW)
    6502 assembler

    DOS batch
    Pascal
    PL/1
    assembler on an IBM mainframe
    assembler on a DEC VAX
    x86 assembler
    Scheme
    Prolog
    C

    Fortran
    shell script (bash)
    HTML
    C++
    Java
    Perl 5
    SQL
    CSS
    JavaScript
    Python

    This reflects what was available. Some have said, for dramatic effect, that learning BASIC first causes irreparable damage, teaches bad habits that can't be unlearned, but it's not true of course. Got my start in middle and high school on the TRS-80 and Apple II+. Then in the poor quality CS program I attended, in which they took an engineering emphasis and didn't teach such fundamental concepts as Big O, I learned Pascal, and PL/I of all things. I mean, if they're not going to do a proper job of teaching algorithms, just going to hammer on specific programming languages and snuggle up to specific hardware by emphasizing assembler, you'd think they could at least pick good languages, particularly a close to the metal language like C, and not an old dog like PL/I. But their senior professor was an old IBM mainframe hacker, even pushed Job Control Language. At least they taught Scheme, which I found difficult maybe because that's where I really had to unlearn those bad habits I picked up from BASIC? They did not teach in C, I had to learn that on my own. I learned C++ on my own after graduation, but still before the STL existed. By the time I picked up Perl 5, learning a new language was no big deal any more. The underlying principles are much the same, all I need is a reference manual and I can be writing code within the day. Sadly, most employers won't hear a word of that, and remain firmly committed to the idea that experience in a specific language is what counts, whether or not they really believe that themselves.

    Perl was my introduction to the next generation, and I was thrilled that hashes were a built in type, and it was no longer necessary to hack together your own crummy throwaway hash function like you'd have to in C, before the days of the STL. The regular expression engine was very cool too. And not having to declare variables was real convenient, gets rid of boilerplate, saves time. It was a nice return to and improvement on a feature of BASIC I'd always liked and never could see why Pascal, PL/1, C/C++, Java, Modula, and seemingly every "professional" and "real" language didn't allow. Maybe Pascal could be expected to take that attitude since it was strictly typed, but C? And then Java is even more anal, forcing the programmer to put each class in a separate file. One big thing I don't like about Perl is having to use the $ sigil all over the place, but it seemed the price of not having to explicitly declare "scalar" variables. However, Python manages that trick, so why can't Perl?

    Starting Score:    1  point
    Karma-Bonus Modifier   +1  

    Total Score:   2  
  • (Score: 0) by Anonymous Coward on Saturday January 24 2015, @06:40AM

    by Anonymous Coward on Saturday January 24 2015, @06:40AM (#137559)

    BASIC (the original, not VB) was my first language and I think it was great, very good training especially for thinking in terms of loops. And it gave me confidence that I could master any other programming language or system, although obviously the others would take more time.

    I appreciate that kids today wouldn't be satisfied learning a command line language that wasn't Internet aware. Sometimes, a step forward is a step back.

    • (Score: 2) by bzipitidoo on Sunday January 25 2015, @03:37PM

      by bzipitidoo (4388) Subscriber Badge on Sunday January 25 2015, @03:37PM (#137899) Journal

      Thinking in terms of loops? What made Scheme hard was being forced to deal with recursion. Scheme doesn't have explicit loop constructs. You create loops through recursion.

      Recursion scares a lot of people. Some programmers never use it. Recursion is not that hard, but the attitude surrounding it can be off-putting.