Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

What was it like to learn R? #128

Closed
ErikSchierboom opened this issue Oct 3, 2019 · 4 comments
Closed

What was it like to learn R? #128

ErikSchierboom opened this issue Oct 3, 2019 · 4 comments
Assignees

Comments

@ErikSchierboom
Copy link
Member

We’ve recently started a project to find the best way to design our tracks, in order to optimize the learning experience of students.

As a first step, we’ll be examining the ways in which languages are unique and the ways in which they are similar. For this, we’d really like to use the knowledge of everyone involved in the Exercism community (students, mentors, maintainers) to answer the following questions:

  1. How was your experience learning R? What was helpful while learning R? What did you struggle with? How did you tackle problems?
  2. In what ways did R differ from other languages you knew at the time? What was hard to learn? What did you have to unlearn? What syntax did you have to remap? What concepts carried over nicely?

Could you spare 5 minutes to help us by answering these questions? It would greatly help us improve the experience students have learning R :)

Note: this issue is not meant as a discussion, just as a place for people to post their own, personal experiences.

Want to keep your thoughts private but still help? Feel free to email me at erik@exercism.io

Thank you!

@jonmcalder
Copy link
Member

It's been well over a decade since I began my journey with R, so I can't really remember too well what my initial struggles were and I'm also very aware that R has changed quite substantially since then. That being said, these are the key things which come to mind:

  1. R can do many different things (often by interfacing with other languages), but it is not a general purpose programming language. It is primarily for working with data, and has many quirks as a result. A simple example of this is probably the use of 1-indexing instead of the more common 0-indexing in many other languages.

I think that to showcase R in the best light and to highlight some of it's strengths, it would be useful to have the track include some exercises focussed on data processing. I imagine that the Julia track would also benefit from exercises like this, and probably also (though to a lessor extent) other more general purpose programming languages such as Python, Scala etc that are popular amongst data scientists.

  1. Most people using R, use it for data processing, visualization, analysis, modelling etc (i.e. they primarily script with R and/or use a procedural style of programming). This sort of R use is usually quite different from people "developing" with R (i.e. building tools / software systems for the former group of R users or for themselves).

I think this distinction of different "types" of R users could inform the track design in some ways (e.g. differentiating simple functional exercises from more advanced exercises which would benefit from further encapsulation, object oriented programming etc - since R has multiple OOP systems).

  1. R is actually a functional language at heart. Not necessarily in the pure - "functions should have no side-effects" - sense, but R has first class functions (i.e. one can do many of the same things with functions that one can do with other data structures), and a (pure) functional style of programming in R is common and often the way one should go for many types of (data) problems.

Apparently many of R's features stem from Scheme, so my guess would be that there may be opportunities to draw links between the R, Scheme, Clojure and Common-Lisp tracks (but I don't know any of those languages so I'm not sure).

  1. I think the introductory paragraphs for each chapter of Advanced R would be great guidelines to refer to in the process of addressing this issue, since they highlight R's strengths whilst also noting differences from other languages.

@petertseng
Copy link
Member

Some questions I had when doing the R track, but I didn't have time to explore back then:

  • Difference between list and vector
  • Under what circumstance an operator will act element-wise on a vector, and when it will not?

@katrinleinweber
Copy link
Contributor

katrinleinweber commented Oct 4, 2019

... your experience learning R?

In the PhD thesis in order to splice Excel out of data analysis "workflows".

What was helpful...?

Hobby projects with already clean datasets.

... struggle with?

The then-growing difference between base R & tidyverse. Using the latter now & happily so.

How did you tackle problems?

RStudio webinars etc. about the topics I needed to grasp.

As R was the 1st language I used, I can't really answer those. I agree with Jon's point about "visualization, analysis" vs. "building tools" (packages & Shiny apps, I guess).

@ErikSchierboom
Copy link
Member Author

We're closing this issue as it was part of our research for the v3 version of Exercism which has just been released.

Thanks everyone for chipping in! It has been greatly appreciated.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants