Don'ts:
Dos
@sandeep has already put out a brilliant path here. I had written about 'the react learning path' in another discussion here.
A few things that I would do a little differently from the time I learned React are that I would devote a lot more time understanding frontend tooling around it (webpack, HMR, babel etc.) and how they play together and like @fibric mentioned I would do it all this in ES2015.
I agree with Sandeep; the order he offers goes from simple to more complex for building larger applications.
I was lucky enough to learn React and the associated tooling bit by bit as Flux, Babel, React Router and Redux were not yet available. As they became prominent I picked them up one at a time and in the said order.
I believe this gave me an extremely solid foundation and recommend doing the same rather than becoming overwhelmed and frustrated by trying to learn it all at once.
That's hard to say. I started learning React when Flux was out and it was big news. I read about the docs about React and soon I decided to switch from Vue to it. JSX is kind like confusion to me since it's not JavaScript it took me quite long while to figure out that it's quite handy written in CoffeeScript. If there was a chance for me to know React earlier, I would do more on the CoffeeScript side and make more people write that in CoffeeScript. That's now meaningless since CoffeeScript is falling behind Babel.
So my path was React syntax, Flux, Webpack, immutable-js, Redux, then my own implementation of store and router. I think I still wouldn't change that.
The best way to learn a new technology is building some real world stuff with it. That's how I learned React while getting started 2 years back. If I were to start all over again, I would repeat the same process. Here is how my learning path would look like :
The official getting started guide and React tutorial are very good starting points. I would read them completely.
After implementing the simple comment system (from the official tutorial above) I would build a small project with React - may be some simple app that I built using a different framework. This will help me apply what I learned into a real world scenario. Plus it can also help me identify my weaknesses.
Learn how to test React components because testing is important.
For bigger projects some kind of architecture will really help me. So, I will dive into Flux and understand all the concepts.
I would redo a slightly bigger project (that I did in a different tech) in React and Flux.
Learn Redux and compare it with Flux. Redo the above using Redux.
While doing all these, one would be seeing ES6 code, gulp, babel, webpack everywhere. So, I would make myself comfortable with front-end tooling and all of the above.
The last part would be reading a lot of code written by others and taking up a real world project (and eventually push it to production).
Yuli Che.
Full stack DevOps into Marketing
How would I start learning again the first incarnation of any interesting tech?
I wouldn't.
I would wait for Angular's replacement lib, same as I would wait for React's eventual successor. Or I'd write one.
Read the source, see what they do and why, make your own.
I personally can't handle, can't grapple with that tool-chain. Babel, ES7, webpack, gulp, oh my. All that, and none of it has anything to do with your project requirements, code architecture, or even Javascript (as it is known around the world in it's current form, that is ES2015).
Make your own, learn from the process. Read the code that makes React work in it's current form.
See what others did with React, learn from that.