How I learned React
I've been developing for about 15 years now, starting very young. When I was introduced to virtual dom, I was excited and started to learn mythril.js. I quickly learned the breadth and biases of different styles and beliefs, and found an obsession with writing maintainable code.
Why I wanted to learn React
I was hesitant to learn react at first, since I came from falling into the Angular 1.x hype, which I had trouble relating other libraries and tools to. I started with learning mythril for the sake of understanding the different types of biases, and avoiding the hype train that react was leading.
How I approached learning React
I started learning React after learning quite a bit of mythril.js, thanks to the youtuber EvilSoft. I learned how controllers and props worked and how I was able to separate the concerns more robustly. Moving to react, I was able to apply my knowledge of separating concerns by using redux for data flow and focusing on functional components for leaner writing.
Challenges I faced
I was hesitant to start using React, but found the community to be growing at a wild speed, so I decided it was time to learn React. Things such as facebooks' license also gave me hesitation on using their library, but grew to find more comfort with other large companies using the library.
I learned that I was a bit paranoid about my beliefs, and grew to open source more code than I would have if I did not start react. React has given me freedom to try different approaches, and I have found many different styles and preferences by using React.
Tips and advice
Learn React with an open mind. Don't try to learn React because it is popular, and try to learn other virtual dom libraries before learning react. Redux is a must, but there are other libraries you can choose to use after understanding flux.
Final thoughts and next steps
I really enjoy learning functional programming, so my next feat is to learn Haskell more and use ramda more often for my functional approaches to problems. That is, I still stick to writing clear and readable code, but functional programming gives me the separation I desire to write more maintainable and reusable code.