You first need to look at what you're trying to do or build. If you're just wanting to learn react, don't do it all at once... If you're wanting to step up your JS skill, that's a different story. In general, for current web apps, you should probably be using a transpiler (like Babel) and a bundler (like webpack). Understanding JavaScript, including es6+ will go a long way... Being mindful of functional paradigms will take you farther. Once you have that, you should either start with just React or use a boilerplate. Redux has become the defacto state machine to use with react, but not the only choice... In the end, react is about displaying your data/state, and controlling event flow works with that. All of the pieces are like Lego blocks... React isn't the build a pirate ship kit... It's the mega starter kit with 2000 pieces of multiple shapes and sizes to choose from with the Mindstorm kits as an add-on option. There's some recommendations, but it comes down to looking at your needs and working out from there.