Slashdot Mirror


Go R, Young Man

theodp (442580) writes " Learning to code has become a mainstream fascination," writes Brian Liou in Why are YOU learning to code?, "but all the evangelization has been misleading. The problem in our Chris-Bosh-codes-so-should-you society is that people learn to code without first asking "for what purpose do you want to use code?" What in your day-to-day work could you actually automate using code? Let's face it, your odds of creating the next hot iPhone app aren't great, but the spreadsheets you look at everyday or the strategic business decisions you or your company makes? Coding can help you with those. Coding to better understand data would help everyone." Leada co-founder Liou's advice? "So to all non-technical professionals looking to get technical: If you want to become a software engineer, by all means learn Ruby or go through the JavaScript tutorials on Codecademy. But if you're simply a business professional looking to gain an edge on your peers, trust me, you are much better off learning R." So, did Mark Zuckerberg steer 100 million K-12 coder wannabes down the wrong path with the JavaScript and Ruby preaching?"

32 of 144 comments (clear)

  1. Just learn to program by Anonymous Coward · · Score: 4, Insightful

    Language is not relevant, as long as you don't just learn one.

    1. Re:Just learn to program by Anonymous Coward · · Score: 5, Insightful

      1) You have to choose a programming language to learn with. You don't learn to program in a vacuum.
      2) A non-technical person doesn't want to learn tons of programming languages especially when they have no relevance to their business. Hence the suggestion of the article writer that they focus on something like R over Ruby/Javascript since it's likely to have more relevance to them.

    2. Re:Just learn to program by Anonymous Coward · · Score: 2, Interesting

      What does 'you don't learn to program in a vacuum' have to do with the statement 'you have to choose a programming language to learn with'?

      I learned QBASIC, then C, then Java, then Python, and only by the fourth stage did I consider that I'd learned anything close to 'how to program'. Had I started with R I'd probably be 10 steps behind where I am now.

      OTOH I do believe R is a lot more practical than many languages people use and it does seem to be doable by those who cannot otherwise program. So the article probably has a point. If you want to get better at math and leverage computers for decision making, but can't be arsed to really get into how computers work, R is probably a good thing to check out. But if you like the ideas and capabilities it opens up - FFS, learn more languages.

    3. Re:Just learn to program by Lunix+Nutcase · · Score: 4, Insightful

      Most people don't have the time to sink into learning multiple programming languages. Especially when programming isn't their career.

    4. Re:Just learn to program by Lunix+Nutcase · · Score: 2

      My point is that learning one language will NOT teach you to program.

      But for a person who isn't a programming by career it teaches you more than enough.

      And don't tell me the article is for 'non-technical people', not me, because I was non-technical prior to learning a bunch of programming languages. 'Non-technical' is a choice, not genetic :P

      The article is for non-technical people. The quotes from the article writer explicitly say that. Also, it's great that you spent all that time learning a bunch of languages. The average person doesn't have that much time to invest if it isn't their career.

    5. Re:Just learn to program by Lunix+Nutcase · · Score: 2

      There is the complex issue of your first languages shaping your view on later languages, at least for the extremely common approach of not taking the time to fully grasp the later languages/programming models.

      Except the audience of this article isn't to people who will be learning a bunch of languages to become a programmer. It's for the non-technical business person who wants to learn a language that will help them in their job.

    6. Re:Just learn to program by MightyMartian · · Score: 2

      A lot of us older guys learned to code on first and second generation microcomputers, generally running BASIC variants. I suppose I learned plenty of bad habits in those old days, and the bit of 680x 8-bit assembly I dabbled in definitely did not help. But I remember the first proper computer science class I took in high school, and was introduced to TurboPascal. It was literally like I was basked in heavenly light and the harps, strings and voices of the Choir Eternal rained down upon me. I'm in my mid-40s now, and remember John Lennon being shot, saw the USSR fall and saw Hubble's first images of our incredible universe, but I tell you that that is the only paradigm shift I've experienced first hand, and quite frankly in that instant I dropped standard BASIC like a hot potato; switching to a structured BASIC dialect on my home computer (BASIC-09, which was essentially Pascal with BASIC-like syntax), and I never looked back. When I started working in OOP languages like Java, I found the transition much less hard, mainly I think because I had broken free of the chains of my first programming experiences. It's not that OOP doesn't have its own paradigms, it's just that once you learn a second language, particularly one so different from your first, you already are becoming a bit language agnostic.

      --
      The world's burning. Moped Jesus spotted on I50. Details at 11.
    7. Re:Just learn to program by MightyMartian · · Score: 2

      For those people, I give Excel...

      My biggest fear is we're fostering the next generation of crap coders who leave behind a legacy of badly written crapola. My first professional work as a programmer was cleaning up VisualBASIC 4 code, and then a decade later, I was given the job of cleaning up PHP4 code, and the experiences were equally awful.

      --
      The world's burning. Moped Jesus spotted on I50. Details at 11.
    8. Re:Just learn to program by Anonymous Coward · · Score: 2, Insightful

      I do believe R is a lot more practical than many languages people use and it does seem to be doable by those who cannot otherwise program. So the article probably has a point. If you want to get better at math and leverage computers for decision making, but can't be arsed to really get into how computers work, R is probably a good thing to check out. But if you like the ideas and capabilities it opens up - FFS, learn more languages.

      Why FFS should someone who only needs to analyse the performance of their business need to learn more languages after learning and applying their newly acquired R knowledge and skills? For many people writing code is not their passion much less their raison d-etre. If you had learned the R language, its libraries (packages) and the many presentation tools available, then maybe you would not have gone all religious on us.

    9. Re:Just learn to program by EmeraldBot · · Score: 3, Informative

      "The average person doesn't have that much time to invest if it isn't their career."

      I want to agree with you, I really do. But I see this as the biggest problem with our society today.

      Coding skills should be a mandatory part of public education.

      We don't complain that people don't know how to average a set of numbers, or determine the unit price at the grocery store, then say 'well average people don't have time to learn that stuff' but we try our absolute best to teach EVERYONE such basic skills.

      Programming should NOT be any different.

      What on earth is a non programmer going to do with that? You're comparing a highly specialized skill that takes years to learn compared to a basic instinctive skill that takes an hour at most. You shouldn't be comparing it to averaging numbers, you should be comparing it to forging. Everyone should learn how to craft a pan from iron! That's not quite an equal, as it actually would help most, but it's close enough. What should be taught is logic - that would actually help people to think systematically. Programming is just an application of that.

      --
      "Set a man a fire, he'll be warm for the rest of the night. Set a man afire, he'll be warm for the rest of his life."
    10. Re: Just learn to program by bsDaemon · · Score: 2

      Well, compared to Matlab or Mathematica, yes. Or compared to commercial products like Visual Studio. Or the hardware cost sink of having to buy a Mac to get the free Xcode to program for the iPhone/iPad/iPod....

      Not everything is gcc or clang on a free *nix

    11. Re:Just learn to program by ubrgeek · · Score: 5, Funny

      > My biggest fear is we're fostering the next generation of crap coders

      Really? Mine's clowns.

      --
      Bark less. Wag more.
    12. Re:Just learn to program by RightwingNutjob · · Score: 2

      I'm sorry, I didn't understand your second point because you had the wrong kind of linebreak in there.

    13. Re: Just learn to program by jonnyj · · Score: 2

      A little programming can be a very useful thing.

      I'm an accountant and a Finance Director (CFO in US terminology). I don't code for a living, but I know a little R. That gives me a huge advantage: if I want to understand our sales stats or movements in yields, I can analyse the numbers myself. Normally, I have the luxury of asking someone in the team to do the job, but, sometimes when the question is ill-defined and open-ended, it's much more effective and efficient to go straight to the answer myself. Sometimes, if I'm brought some analysis that's 90% of what I need, it's easier and more efficient to complete it myself.

      Don't invent specious analogies about casting iron pots because you lack the imagination to see how tools could be used more widely.

  2. Nothing to see here by phantomfive · · Score: 5, Insightful

    CEO of data analysis company suggests people learn data analysis language.

    In other news, CEO of Erlang Solutions thinks Erlang is great. No word on why.......

    --
    "First they came for the slanderers and i said nothing."
    1. Re:Nothing to see here by Lunix+Nutcase · · Score: 2

      CEO of data analysis company suggests people learn data analysis language.

      Because data analysis is a large part of many businesses and many that don't do extensive data analysis probably should be. So there isn't really anything that extraordinary or silly in his recommendation.

    2. Re:Nothing to see here by dinfinity · · Score: 4, Interesting

      Yeah, I'm pretty sure that learning Visual Basic and 'programming' in Excel will actually give you an edge on your business professional peers.

      Last time I checked, Excel was the hammer of choice for most businesses (maybe combined with SPSS), not R (I'm not sure if any business even uses it).

      Ironically, if you focus on Google Spreadsheets, learning Javascript (and the Google APIs) is what is required if you want to do more advanced stuff.

    3. Re:Nothing to see here by phantomfive · · Score: 4, Insightful

      It's silly because "if you're simply a business professional looking to gain an edge on your peers," then R is not the language to choose. He said it because he's trying to raise the profile of his company (which is what CEOs and co-founders do).

      Now, if he had a well reasoned argument to support his choice, I would be really interested in reading it, but I can't find it among the maze of links in the summary. Incidentally, his company offers courses in R, so if you've recently decided you want to learn it because the co-founder of a startup recommended it, there's a convenient place you can go to learn it.

      --
      "First they came for the slanderers and i said nothing."
    4. Re:Nothing to see here by war4peace · · Score: 2

      Yeah, I'm pretty sure that learning Visual Basic and 'programming' in Excel will actually give you an edge on your business professional peers.

      I did (learn VBA) and did (use it to program in Excel) and it did (give me an edge over my peers).
      Now I am dipping my toes in C++ for a specific project (game using Unreal Engine).

      --
      ...gis sdrawkcab (usually not responding to ACs; don't bother posting as AC)
    5. Re:Nothing to see here by fizzer06 · · Score: 2

      So if I just hold the sack open all night, the snipe will run into it?

  3. R is fine if you're in love with statistics by unimacs · · Score: 4, Interesting

    Otherwise, I'm not sure it's a great choice. For the typical business person who's interested in coding you might as well start with VBA in Excel or Google Apps Script if you've moved away from MS Office to Google's business apps. Google Apps Script is javascript based so you have the advantage of learning something that has other applications.

    R is very good at manipulating and plotting data but the charts produced aren't always of the highest quality. They're fine for internal use. There are lots of packages to extend the usefulness of the language but at its heart and soul it's about numbers and plots. It's not really a general purpose language. Just keep that in mind.

    1. Re:R is fine if you're in love with statistics by spauldo · · Score: 3, Insightful

      Exactly.

      For the average person working at a medium-to-large company (or even small ones, really), VBA (or whatever scripting language your office suite uses) will be much more valuable than R.

      Back when I still cared about such things, you also could do wrong with stuff like Crystal Reports and learning to actually use MS Access. The PHB doesn't understand code or programming - they don't mean anything to him - but if you can hand him the data that he wants in a beautiful format and make his spreadsheet jump through flaming hoops, he'll be impressed.

      --
      Those who can't do, teach. Those who can't teach either, do tech support.
  4. javascript continues it's relentless march by circletimessquare · · Score: 2

    because it was positioned early in the browser's evolution

    that's the big secret

    it has no other advantage (well, familiarity with syntax, if you want to advance to java/ c++/ c# i suppose)

    now you can write iOS, Android, and Windows code single source with Apache Cordova, and code on the server with node.js

    javascript marches on

    meanwhile, those who have a pathetic arbitrary need to feel superior have to crap all over javascript and steer beginners away from the language that actually will advance them, in favor of brittle niche choices? why?

    javascript has plenty of obvious, longstanding problems and weaknesses

    and? who gives a fuck. what language doesn't?

    and especially for noobs, it is a great introductory language and should be the primary language for all programming neophytes to learn because of its immediate applicability and, yes, simplicity. a lightweight scripting language is what you want to teach beginners, not how to write an OS

    later on, if they become professional programmers, maybe then they can develop fetishes for esoteric languages and derive an artificial sense of superiority from that as well, like some of you assholes

    --
    intellectual property law is philosophically incoherent. it is your moral duty to ignore it or sabotage it
    1. Re:javascript continues it's relentless march by circletimessquare · · Score: 2

      not sure if joke, troll, or serious, but thanks for the laugh

      --
      intellectual property law is philosophically incoherent. it is your moral duty to ignore it or sabotage it
    2. Re:javascript continues it's relentless march by Anonymous Coward · · Score: 3, Interesting

      javascript has plenty of obvious, longstanding problems and weaknesses and? who gives a fuck. what language doesn't?

      C++ has problems and weaknesses. Java has problems and weaknesses. C# has problems and weaknesses. Python has problems and weaknesses.

      JavaScript doesn't have problems and weaknesses, it's a disaster from beginning to end.

  5. R is not a programming language by rockmuelle · · Score: 5, Insightful

    It's a statistical computing environment. R is much closed to what VB was pre-VB6 - a loosely defined domain specific language with lots of libraries aimed at a specific task. It's not really a general purpose programming language and not a great one to learn if you want to learn to program.

    If you do a lot of number crunching and want to move beyond Excel, R is a great choice (as is matlab, s-plus, or any of the others aimed at analytics).

    If you do analytics AND want to learn to program, go Python and NumPy/Pandas.

    If you just want to learn to program, VB, JavaScript, Python, Java are all good. Just find what you'd like to program and see what languages people are using.

    And yes, at some point, pick up a few more languages if you find you like programming.

    -Chris

    1. Re:R is not a programming language by umafuckit · · Score: 4, Insightful

      Exactly. Terrible as a programming language. Telling someone to learn R is basically the same as telling someone to learn statistics and analyse their data properly.

  6. this is just nonsense. by rogoshen1 · · Score: 4, Insightful

    This is just taking the facile view that coding is a means to an end. Step 1: learn to code Step 2: ???? Step 3: 90k year job at a startup. =/

    It's no different than saying "all the good jobs require a college degree, therefore we should put EVERYONE through college, then everyone will get good jobs". No.

    Telling kids that the key to getting a good job is by learning ruby, or JS, or whatever language; is just going to create an environment where there's a glut of substandard ruby and JS coders out there.

    If you want kids to be successful, teach them to learn, and to think for themselves -- their interest and ambition is what will be the deciding factor, not cramming CS-lite education down their throats. Because, you can create shitty developers out of people who have no interest in the field, and are only there for a paycheck... but what's the point?

    1. Re:this is just nonsense. by circletimessquare · · Score: 3, Insightful

      in school, they expose children to calculus, music, biology, chemistry, physics, sports, etc.

      how many become statisticians, jazz trumpters, geneticists, chemical engineers, cosmologists, professional basketball players, etc?

      this reasoning "don't teach programming or we will have a glut of substandard programmers", is, i'm sorry, stupid and i am extremely tired of it. it comes from this place of vain smug exclusivity which is self-serving, mindlessly arrogant, and ignorant of the wider world

      we must expose programming to every single child in every single school

      why?

      because it is now a fundamental building block of the world they live in, and they should know the basic ins and outs

      just like math, music, sports, chemistry, biology, etc.

      and if some of them want to pursue programming? well now you've also clued in some kids you would have missed. some will suck at it even though they pursue it? oh, this is a new concept to you?

      is teaching every kid gym mean professional basketball teams have to cope with a glut of bad basketball players? is teaching every kid chemistry mean pharmaceutical companies have to weed through too many substandard chemists? does teaching physics mean NASA and private space companies are suffering due to too many resumes from physics idiots? do you how see fucking ignorant that sounds?

      there is no damage, none, zero, and only upside, to more knowledge

      and you are an arrogant with a false sense of superiority, the true uneducated one (on matters of basic social reality), if you think otherwise

      --
      intellectual property law is philosophically incoherent. it is your moral duty to ignore it or sabotage it
    2. Re:this is just nonsense. by rogoshen1 · · Score: 2

      I never said don't teach programming, or logic, or problem solving. (Teaching Pascal for example, goes back a looong ways.)

      My point was simply that programs like this treat coding as something that can be produced on an assembly line. It is the exact same thing as the push towards university education in the US. Yes you can confer many more degrees with a watered down, commoditized curriculum -- but the value of the 'thing' you were wanting more of, is now diminished.

      Further, coding as a fundamental building block of the world we live in? How on earth do you figure that? I know I'm likely in the minority for holding this view on a technology website; but we still live in a very human oriented world -- the interaction between people is what matters. If you want a kid to be successful, teach them basic problem solving, logic, and how to interact with other people.

      (Also since coding is one of the last fields where autodidaction is still possible, and not laughed out of the interview by some HR goon, your examples of NASA or a pharma company are pointless.)

  7. Mark lead them... by BlackHawk-666 · · Score: 3, Insightful

    ...by the nose, straight to his own end goal - a larger pool of cheap labour skilled in the basics needed to produce web applications. By increasing the supply, they can take advantage of market economics to vastly reduce the amount of money they need to offer these people.

    I'm not saying they shouldn't learn JavaScript, it's a good place to start and is pretty ubiquitous. It's just lucky for Mark that they are pushing JS and Ruby, very lucky.

    Honestly though, saying all those people need to code is like saying I need to learn how to write a sonata in order to listen to music.

    Most people would be capable of pushing out a few snippets of code, mostly cribbed from some website - but will flail and cause incalculable damage when they think they have 'da mad skillz bro' and start to write hundreds of lines directly running SQL script from the web page. I've seen the results when an accountant decides their use of Access and Excel means they can code big systems. It wasn't pretty, it broke down frequently, it had dozens of manual steps and adjustments to make each month and it took 5 hours to run. I left that job the second I could.

    --
    All those moments will be lost in time, like tears in rain.
  8. Know Your Objective by MakerDusk · · Score: 2

    The problem in our Chris-Bosh-codes-so-should-you society is that people learn to code without first asking "for what purpose do you want to use code?" What in your day-to-day work could you actually automate using code?

    That right there summarizes the main issue. In my experience, far too many approach programming with the I'm going to learn programming mentality. This is fundamentally flawed, since there is more computer science than one can possibly hope to learn in a life time. It very much all comes down to having the fundamentals (an online course in any language will work for this) and then settling down to working towards an objective. Your objective doesn't need to be anything grand: you are far better off starting small. Little scripts to make your life easier: at home, and in the office.

    Once you have an objective in mind, your best friend is the help function for your chosen language. Programming isn't about having everything memorized, it's about effective research applied to solving a problem. One need only work out a decent research methodology once, whereas one can work out infinite ways to solve a given problem programmatically. Writing code with decent headers in your functions lets you call up help, even on your own code. In short, you end up making your own help, based solely on your own programming style. This helps for specific functions, but when you get stuck, unsure of what you need to do: google. Chances are there exists a stackeoverflow post that will steer you in the right direction, if it doesn't outright show you what you need. Once you get an idea, you can also refine your search, often pulling up examples.

    The main thing to keep in mind is that you will always be learning. There is always a better way to achieve the same objective, however achieving the objective is what matters. Don't get caught up trying to repeatedly make the code better: instead, push on to completing the first version first. This is a trap that consumes a lot of people just starting off. You'll never finish, if you keep on restarting, and what really matters is that the code works properly.

    PS: I did not mention testing, since everyone has their own way of including such. Starting off, debugging will be enough to wrap your head around. Just keep in mind that at some point you will need to work testing into your workflow. Automatic testing makes it easy to write better versions of your code, since you'd be able to see if your tweaking broke anything.