Hi: I’m planning to get my 13 year old started with codeacademy, and I want him to start with a language with a functional orientation: ideally that would be Purescript, but it’s not currently available so I’m going to start with R for now instead. However: does anyone know if Purescript support is planned for the future?
hi @maspotts , Thanks for raising this question.
To assist you better, I’d advise you to contact Codecademy directly so their training instructor / curriculum planner would take this feedback into considerations for any potentials in releasing this language support.
Hope this helps! Have a great day ahead.
Codecademy Help Centre
Starting a 13 yo with R is asinine, to say the least. They’re just on the brink of learning algebra. Unless you expect them to be writing their SAT in the next two years one would be best advised to cool the jets. R is for data analysis. Pick a language that is general purpose to get all the fundamentals of programming in place before leaping into data science. Poor kid, if you’re pushing them, in my view. But then I wish they had started teaching Calculus in Grade 7.
Python. Easy peasy (the choice, that is). Start them there. Download the free 3.9 version from python.org and engage in the Python 3 courses here. Focus on programming, not math or data concerns. Give the kid a chance to walk in of their own volition. This is the language to pique their interest, it you don’t force it on them.
When the kid asks for Purescript, it will be for their reasons, not yours.
@estforesta thanks for the advice; will do.
@mtf I can’t tell if you’re trolling me but I’ve always loved the word “asinine” so I’ll beg to differ: I’m choosing (both) R and Python for a few reasons:
- R is my strongest language (I’ve been using it for machine learning and general algorithmic problem solving for decades) so I can mentor my kid in R much better than in any other language;
- R is a general purpose language: extremely similar to Python in syntax, and has (IMHO) the major advantage of not using whitespace to denote structure (which has bitten me many times) so I see no reason not to use it. I’ve already seen that the “learn X” modules in codeacademy are very similar for both R and Python (as I expected).
- R (especially with the tidyverse packages) supports a very succinct coding style (eg. even the small things, like not having to include the keyword “return” when returning a value from a function, and especially the built-in vectorization feature) which I believe makes R code somewhat easier to read (and implement) vs. Python.
- My kid is in an advanced math track initiated by his (local state/public) school since 5th grade: he’s already had 2 years of algebra and is now studying geometry and calculus in 8th grade. Not trying to brag here: he’s one of about 8 kids in his 8th grade cohort in this track, and they’re all excelling and genuinely love maths and have had no problems with the curriculum, so we’re lucky and grateful that our school has been able to offer this program, whose success TBH largely arises from the very excellent middle-school math teacher who started it. In any case, as a result my kid is more than ready (and has been since the end of 7th grade) to grasp the algebraic aspects of coding.
- R enables and encourages a more functional style of coding: R is effectively a LISP under the hood, and so (eg) applying lambda functions as maps on lists/vectors is a very standard coding style. I believe that functional programming (esp. immutability, currying, etc.) is much more intuitive than procedural programming, and I feel that R has the best combination of accessibility (easy to use, familiar syntax) and functional features out of all the codeacademy languages.
- I didn’t mention this in my original message, but I’m aiming to get my kid learning both R and Python in parallel, so I’m not choosing R instead of Python: rather, augmenting R with Python. I’m doing this because I think having Python skills is very useful (I use Python a lot, even though I prefer R, because often Python scripts are more convenient: eg. you can deploy a Python script on AWS Lambda with a couple of clicks, whereas to deploy and R script you must create a docker image first), and of course if my kid happens to go into data science or machine learning then he will certainly find that the Python ecosystem has an edge in certain areas (eg. Tensorflow).
- My other motivation for learning the 2 languages in parallel is more tentative: I understand (from my reading) that when a baby learns 2 or more languages from birth (ie. is raised bi- or multi-lingual) then he/she tends to builds (what I think of as) an abstraction of language in his/her brain, along with (effectively) a mapping from that abstraction to each concrete language he/she has learned: this apparently makes it much easier for such a child to learn additional languages, because they build on their existing mental abstraction and effectively add a new mapping. To the extent that this may be true, I feel that learning two programming languages at the same time could have a similar benefit: I hope that learning how each operation is implemented in both languages at the same time might enable a deeper understanding of the abstraction of that operation, and hence result in the kid not only successfully learning both languages, but also being more able to add a 3rd, 4th language in the future, and perhaps even having a deeper, more intuitive feel for coding in general.
In any case, I figure there’s no harm in letting my kid tackle both R and Python together: in the same way he’s been tackling his advanced math program: if he thrives, then great! And if he struggles then he can drop one language, or even drop coding altogether (although I hope/suspect not, as he’s very keen and engaged at this point)!
Not trolling, just opinionated. You raise all good points and I am relieved to hear that the youngster is self motivated and driven. That clearly makes all the difference. And it does help that you are experienced enough for them to emulate. Yes, there are some very bright young people out there and the world is going to need them. My hope is that you raise a brilliant scientist. Best wishes.
Thanks! Fingers crossed