I am outlining series of programming language/tools in a sequence which should be learnt to understand the overwhelming and fast changing modern web development.
This is the one and only language understood by all the browsers and it is the backbone of front end development. It is also referred to as ECMAScript, ES 5. It is essential to have good grasp of this programming language before going any further. This video is gold.
This is one of the most popular ES6 to ES5 transpiler. It is also recommended by many frameworks such as React. To convert the ES6 to ES5 code in realtime, there is a REPL available at https://babeljs.io/repl/.
NPM is the package manager for node. It is just like pip for Python, ruby gems for Ruby and Maven for Java. Learn how to install/remove/upgrade packages and especially package.json file structure.
Grunt or Gulp
These are two most popular task runners available which run on Node platform. Technically, they are packages for npm. They allow you to automate many mundane frontend tasks such as Linting your source files, concatenating, minifying and deploying and much much more ….
It is a package management tool for frontend libraries itself. Want to add Jquery to your application? As easy as using
bower install jquery
WebPack or Browserify
Flux or Redux
React components are arranged in a hierarchy. Most of the time, your data model also follows a hierarchy. In these situations Flux doesn’t buy you much. Sometimes, however, your data model is not hierarchical. When your React components start to receive props that feel extraneous, or you have a small number of components starting to get very complex, then you might want to look into Flux.
Immutable.js provides a set of data structures that can help to solve certain performance issues when building React apps. It’s a great library, and you’ll probably use it a lot in your apps moving forward, but it’s completely unnecessary until you have an appreciation of the performance implications.
Experimental API. Its like a background thread available to you in a browser for doing all sorts of work. I guess it also adds support for offline browsing.