@webwalrus If you choose Python, get Al Sweigarts books. Its like being back in the 80s again with your Computes Gazette or the Spiral bound Compute Programming books for the C64. All of his books are also available online for free at his website. You can practice on an iPad/iPhone/M1 with Pythonista. The community version of Pycharm is free.
I never had those, but I remember checking out large books full of Apple BASIC programs from the library. Books, not disks. So it all had to be typed in manually. It was definitely a different time.
And even without an IDE, things as basic as code folding and bracket matching can be huge. Nothing quite like folding a function and discovering that a lot more disappears than what you thought because a bracket / paren / something isn’t closed.
Useful basic knowledge for this question, which I haven’t seen explicitly mentioned:
R’s core abstraction is the data frame. (Think of a relational table: named columns, items as rows.) Data frames, and below that vectors (flat arrays of values of the same type, like a C++ std::vector, which is how each column of a data frame is stored), are central types in the core language.
In Python, the Pandas package which many have mentioned, is an implementation of a very similar data frame abstraction — directly inspired by R — as a library.
Knowing this correspondence is very useful for understanding how these ecosystems relate.
In both contexts, a core challenge to newcomers is learning how to think and program in a collection-oriented way (operating on whole vectors and data frames in aggregate, instead of looping and thinking about one element at a time). There are somewhat similar warts and points of confusion in these parts of both environments, but Python has the advantage that the underlying core language is simpler and less quirky.
My recommendation for a person who is going to learn with the objective of getting a job: Python, as I understand the world of academic research is not the target here.
If you want to start in data analysis, then learn SQL first. It’s extremely easy, teaches you about tables and their structure (similar to data frames) and is what all the big companies use for processing large datasets.
R v Python - just pick one - they’re both free and do similar things. I’m finding a trend of people going towards python in big data environments.
Your girlfriend should check out the Google Data Analytics Certificate on Coursera. It has a section on the programming languages you mentioned. I’m taking the course but haven’t reached that stage yet. Hope this helps.
The course so far is pretty great. I have just completed the second course in the cerificate. You can set your own pace, even a beginner can enrole and, so far, I have the sense that it’s very comprehensive in scope. It’s focused on learning and not grades and you have acess to learning materials and can retake all assignments until you get it right. Coursera also has several specific courses on the languages you refer that can be taken later on. It will take a few months to complete but, as I said, the default pace isn’t very demanding and if you dedicate 2 hours a day to the course you will finish the certificate in no time.
In case that’s still relevant: There is currently a nice book bundle available at Humble, with 15 ebooks from No Starch Press. It’s basically a nice package of Python books plus some Machine/Deep Learning plus some R plus some statistics and other stuff.
Thought of this thread when I noticed the bundle. Maybe it’s useful to those interested in Python and/or R.
I‘ve read a few on Python (not included in the bundle) and have been quite happy with them.
Some of those books from the bundle had been on my „want to have even though I don‘t know when I have time to read them“ list. The reviews on Amazon have been pretty good. Apparently, they still have some quality standards, unlike other tech book publishers. (In my very limited own experience, Packt books seemed to follow a concept of „to really learn, you should debug the authors code“…)