Ask HN: Resources for learning advanced JavaScript and React
What are the best resources for learn advanced js/es6/react ?
Something similar to "Practical Object-Oriented Design in Ruby"
Right now I'm a junior/mid js developer, but I want improve my skills/code/tests etc...
Any help is welcome.
44 comments
[ 3.2 ms ] story [ 89.7 ms ] threadhttps://learn-anything.xyz/programming/programming-languages...
And here is one for learning React :
https://learn-anything.xyz/web-development/javascript-librar...
Both maps are community curated so if anyone thinks there is a more efficient path for learning them, you can submit pull requests. :)
Also he has a good recent book on Functional Programming, which if you plan on tackling Redux later will be helpful.
I got the physical editions because that's how I prefer books (easier to note / annotate), but all the books mentioned here are available free online / on Simpson's Github.
A dedicated section for React can be found here: https://scrimba.com/topic-react
And here is a playlist which takes you through building your first React app: https://scrimba.com/playlist/playlist-1
It's based upon an article I wrote here: https://scrimba.com/playlist/playlist-1
It's all free. Hope it helps!
The idea is to get a small dose of React every day.
I'm also always looking for what else to include in the course - so I'd love to hear what you find most difficult, or what you think is lacking from current learning resources.
Otherwise, I can recommend to checkout this repository [1] by Mark Erikson to find out more about React and its ecosystem. I am sure you will find plenty of starter tutorials to get into learning React.
- [0] https://www.robinwieruch.de/the-road-to-learn-react/
- [1] https://github.com/markerikson/react-redux-links
I keep a big list of links to high-quality tutorials and articles on React, Redux, and related topics, at https://github.com/markerikson/react-redux-links . Specifically intended to be a great starting point for anyone trying to learn the ecosystem, as well as a solid source of good info on more advanced topics. It includes links for learning core Javascript (ES5), modern Javascript (ES6+), React, Redux, and much more.
In addition, my "Practical Redux" tutorial series ( http://blog.isquaredsoftware.com/series/practical-redux) shows how to use a variety of intermediate to advanced React and Redux techniques in the context of a sample app, and my "Idiomatic Redux" series (http://blog.isquaredsoftware.com/series/idiomatic-redux ) discusses important aspects of good Redux usage, including why common patterns exist.
Finally, the Reactiflux chat channels on Discord are a great place to hang out, ask questions, and learn. The invite link is at https://www.reactiflux.com .
Learn React first. When you have complex data management problems, consider learning Redux, but master Reacts own state management first.
> Definitely don't over-complicate the learning process by trying to learn many different things at once. Some people will say you should use a "boilerplate" to learn React, and they're wrong - boilerplate projects almost always come with too many pieces configured, and are confusing for beginners.
> Instead, the best advice is to focus on learning React itself first. Once you have a good understanding of how React works, you will better appreciate why a state management library like Redux can be useful, and you can learn about other tools later.
That said, my rough estimates are that around 55-60% of React apps are using Redux, and it's also frequently used with Angular, Ember, and Vue, albeit sometimes in different forms (ngrx/store, vuex, etc). So, while I totally agree that most people should not try to learn Redux right away, it _is_ a very relevant topic to cover.
http://shop.oreilly.com/product/9780596517748.do
http://2ality.com/
Very useful day-to-day and first place I go:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Refe...
And definitely use typescript if you value good code quality (and your sanity). The advanced type system and compile time type checking is really a boon to the JS ecosystem. https://www.typescriptlang.org
You'd like to get comfortable with the latest tools that compile, transpile and pack the code for you (you might be familiar with that already.) Here might be a good start: https://medium.com/@fay_jai/getting-started-with-reactjs-typ...
Have fun!
If on the off chance that no typings are available, you just write a simple namespace declaration (usually a one liner) and start using the library right away, albeit without smart code sensing / completion. See https://stackoverflow.com/questions/22842389/how-to-import-a...
[1] https://github.com/yamalight/building-products-with-js
There are gaps/things that have changed since the book came out, but this is a really great resource for understanding the core JS language.
It is how I finally grokked JS and it is the same tutorial that I put all new additions to my team through...
http://www.mattgreer.org/articles/react-internals-part-one-b...
Of course you won't understand everything on first read. But you will learn really good things if you know how to look at something confusing and identify what it is you don't understand; then you can go find didactic materials to fill in the gaps.
This is an amazing way to learn. You get to see how some of the most used, or cutting-edge tools are implemented (for free!). You learn about the tools themselves and thus gain expertise in them. And, you gain the meta-skill of working in unfamiliar territory, which I think is a fundamental key to being considered "advanced".
I don't break apart an engine to figure out how to use it, I read the manual about inputs and outputs.
I can't imagine you'll find a sane place to work where senior people are only capable of learning something after consuming a tutorial or a manual. The nature of the work is to drill down one layer below what you're working on. Do you need to know how to smelt steel in order to be a good car mechanic? No, of course not, but it sure helps to have taken an engine apart. And if you're trying to build the next, better engine, it's really great to see the internals (and the commented motivations!) of previous implementations.
It's what we use internally at work so it made sense for me to actually understand how it uses JS to tackle all the problems a framework is supposed to solve. I've only been doing it a short while but I've learnt a ton already.
I casually glanced at the source for Ember and React over the weekend and I could understand much better what was going on because I had a reference point based upon the source as opposed to just knowing the APIs.