When first learning to program (back in high school 10+ years ago) I played around a lot with JavaScript, building 'cool' websites that did all kinds of things in JavaScript. I haven't really touched it since.
I moved on to Java and now program professionally in Python and C++ (desktop apps development) and do some webapps development as side projects.
I've found myself doing lots of data visualisation and analysis (performance benchmarking etc) and for the most part I used Matlab and various python libraries to achieve this - but I've been lately using the great Charts.js library. I would love to get up to speed with how 'modern' JS works for frontend development. I'm not so concerned with learning particular frameworks in depth (but should I be?) - moreover what particular programming/design paradigms are considered the most effective?
What resources have people in a similar situation to me found to be useful?
I would recommend using create-react-app for frontend as it sets up all the tooling for you and is production ready. On backend, I would recommend parse-server but I just have a personal affection for its batteries-included approach. You could also just use a simple node/express setup (and/or mount parse-server onto it).
Three major things that might trip you up, and you should read about and practice early:
- Async programming / closures. You can't just call a function on an object in a loop like you can in Python.
- Promises. Figure out how to use these instead of callbacks as soon as you can.
- Prototypical inheritance. I recommend explicitly writing "classes" with the "old style" of YourClass.prototype.method before moving to using the "class" keyword. The "class" keyword is just syntactical sugar on prototypical inheritance so it's a good idea to learn the raw form before the sugared form.
Recommended reading:
- "You Don't Know JS" (https://github.com/getify/You-Dont-Know-JS/blob/master/READM...)
- Source code. Read the source code of as many JS projects as you can find.