- object-oriented JS — constructors and factories, inheritance;
- functional JS — functions of higher order, closures, recursion;
- jasmine test specifications;
- the basics of HTML, CSS and jQuery.
Git is a tool that developers need, so you should get to know it as early as possible. Here are the basic skills that you should have:
- creating and moving files in directories;
- initialization and commits in Git;
- setting up repositories in GitHub.
Algorithms and data structures
Then it is worthwhile to study algorithms (in particular, the notion of complexity of algorithms), as well as basic data structures: linked lists, queues, stacks, binary search trees and hash tables.
Servers, HTTP, Express.js
After studying Node it is worth continuing to get acquainted with back-end development and understand servers and routing. You can start with ports and protocols with an emphasis on HTTP, and then learn Express – Node library to handle requests.
Databases, Schemas, Models and ORM
Database is one of the most important elements of web development. If your application needs to download or store any data that is not lost when updating the page, you will have to use the database. You need to learn to distinguish between relational and non-relational databases and understand the types of links. Then study SQL and get to know different database management systems. Moreover, ability to work with ORM will only benefit you as well.
HTML and CSS
HTML and CSS are the foundation for any web developer. You do not need to know them perfectly, but you have to understand them. You can also learn some popular library (for example, Bootstrap) and a CSS preprocessor like Sass – it will help make CSS look like regular code. To simplify the work with HTML, you can choose one of the popular templating tools, for example, pug.
jQuery and DOM manipulation
By creating the appearance of the page with HTML and CSS, you will use event translators and the jQuery library to manage the DOM. Many people think that jQuery is useless and will soon be replaced by Angular and React, but it’s insanely popular, and so it’s worth knowing.
Chrome Developer Tools
It would be unforgivable to disregard the tools of Chrome, which give a huge number of opportunities. With them, you can learn DOM elements, debug through the console, track routes and much more.
If you want the application not to reload the pages after each operation with the database, you will definitely need AJAX – it sends background asynchronous HTTP requests, the answers to which are updated only part of the display. You can work with AJAX through jQuery using the .ajax method.
ES6, Babel, Webpack
Now the main standard is ES6 (ES2015), but ES2016 is already adopted, and ES2017 is under development, so you should always be aware of updates and use them. Compatibility issues are solved with just a couple of tools:
- Babel – compiles ES6-code (soon will support ES2016) in ES5, which is supported by all browsers. It even knows how to compile JSX / React-components, which makes it irreplaceable for any web developer;
- Webpack – collects all your source files (images, fonts, style sheets, JS files, etc.) into a single dependency graph. It does not come in handy when creating small applications, but when working with React, its help is invaluable.
Authentication, sessions, cookies
You also need to understand how applications interact with users, process login and logout. To monitor the identity of the user during the session, cookies are used – small text files sent by the server to the browser in response to the HTTP request. And to provide communication database and authorization pages, you can use the library express-session.
And, finally, it is worth paying attention to security. It is important to learn both attack methods and how to protect against them.