Slash Boxes

SoylentNews is people

posted by martyb on Friday November 04 2016, @07:09PM   Printer-friendly
from the choose-logically dept.

We've had this question asked before I believe but it does no harm in asking it again and again. After all, opinions change as does the software ecosystem. Quincy Larson of asked this question via Medium: What programming language should you learn first? He thinks JavaScript is the way to go and his arguments are cogent and well thought out. However, I am somewhat hesitant to suggest someone learn to code in JavaScript first. My first programming language (in 1981!) was Fortran on a Control Data mainframe. The interactive environment the OS provided was pretty simple and the language provided few opportunities to hang yourself. JavaScript, by comparison, while it may not have those evil pointers of C/C++, it offers functional features and plenty of rope to hang oneself.

So, opinions please.

Original Submission

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: 1) by Ethanol-fueled on Friday November 04 2016, @11:44PM

    by Ethanol-fueled (2792) on Friday November 04 2016, @11:44PM (#422680) Homepage

    This is why C# on Visual Studio is still by far the most awesome thing to get ignorant noobs' attention. You create a Windows forms project and just drag and drop shit everywhere. Even making a simple pocket calculator is being like God to students who know only introductory console programming, and showing them the subtleties of making it authentic, how to reset variables, how to set the "LCD" text field right-to-left to simulate a real pocket calculator and when to clear it, how to handle dividing by zero, firing button events, etc.

    Of course, you can do the same with Java on Eclipse, but you lose a lot of charm and attention span fucking around with broken dependency hells just to be able to use visual classes or have a pre-written file you just load. You sit there looking like a dumbass for an hour trying to get everything to work, and by then your students think you're just another clueless moron.

  • (Score: 2) by Marand on Saturday November 05 2016, @03:01AM

    by Marand (1081) on Saturday November 05 2016, @03:01AM (#422725) Journal

    Eclipse is a clunky mess in my experience, never did like it much. I'd hate to see that be the first impression people get of programming. IntelliJ, however, is a very nice Java IDE. I bet if you combined IntelliJ with Scala, you could get a pretty good beginner experience set up, except for still having to do the compile/run thing. Though Scala does try to fake some of the dynamic language convenience with a REPL that compiles behind the scenes.

    That sort of easy experience is why I ended up suggesting Racket at the end of my comment. No drag-drop UI building, but with the combined editor+REPL setup of DrRacket, plus the built-in GUI libs, you can set up a basic window in a few lines of code, run it, and then use the REPL to modify the window on-the-fly. I'm far from being a beginner and I still think it's cool to be able to type a few lines in and see the UI change in front of me. (That's the awesome thing about using Tk as well; shame about it being dragged down by Tcl sucking.)

    Whatever the language and environment, the idea is the same: keep setup time at a minimum, avoid needing external dependencies as much as possible, and try to maximise interactivity by reducing the delay between the learner doing something and seeing the results of the action. Otherwise you're just introducing opportunities for the learner to get bored or distracted.