All courses

Node.JS

A course for those who did not previously develop on Node.JS or want to get a good level up in this technology.

Program

This online course is dedicated to professional Node.JS development.

As a result of the course, you will create a real project and, most importantly, well understand how Node.JS works.

You will listen to the theory, write code, get feedback and suggestions how to improve it, and then move on.

We will use modern development practices, not those that, although widely described in different articles, are long overdue.

You will get a comprehensive understanding of how to build an application using Node.JS.

The course can be divided into three parts.

  1. Node.JS, the main "building blocks" of the developer.
  2. Development of web services using modern technologies and frameworks.
  3. The architecture of complex applications, the organization of the project.

See the program details below.

Main topics

  • First part
  • Second part
  • Third part

First part

  1. Fundamentals of Node.js

    We learn peculiarities of how Node.js works, its most important modules and development techniques.

    • Development setup: editors/IDE, tools for development and debugging.
    • Modules: basics, core Node.js modules (http, fs, path)
    • Process structure: Event Loop, Call Stack, Heap, Task and Microtask queues
    • Streams: nature of streams, basic operations, common mistakes
  2. Node.js web server

    We will write code and tests for the web server using Node.js and also deal with asynchronous operations.

    • Creating applications with Node.js, common mistakes
    • Writing tests for Node.js applications using mocha, sinon and other testing frameworks and libraries.
  3. Asynchronous code

    We will learn how to work with asynchronous code, making it simple and convenient.

    • Promises
    • Async/Await and its quirks in Node.js.

At the end of the first part of the course, you will understand how to develop on Node.js, how to create a web server and handle requests correctly, write automated tests for your code.

Second part

  1. Modern web applications

    • Framework Koa.js: basics, routing.
    • Configuration using module config.
    • Koa.js: middleware structure, 3rd party modules.
  2. Working with databases

    We will use MongoDB, but the principles we are studying are applicable to other databases, in particular MySQL, PostgreSQL.

    • MongoDB database, its peculiarities.
    • Converting documents into objects using Mongoose.
    • Usage database in application: querying, schemas, validation, plugins and middleware.
  3. Authentication using Passport.js

    • User model, registration.
    • Sessions in Node.js.
    • Passport.js: serialization, strategies, authorization.
    • CSRF prevention techniques for forms and AJAX requests.
  4. Socket.IO

    • Websockets.
    • Socket.IO server and client, exchanging messages.
    • Socket.IO and Koa.js integration, authentication, clustering.
  5. At the end of this part, you will be able to create a web application with page rendering, authorization and chat.

    Architecture of application allows to extend functionality, add new pages and integrate 3rd party services.

Third part

  1. Application architecture

    There are hundreds of files in average Node.js project. This is normal and even quite convenient but only if properly organized.

    • Pattern MVC and HMVC for Koa.js application.
    • Project structure: templates, tests, client scripts and styles
  2. Release cycle

    • CI/CD.
    • Clustering with PM2.
    • Deployment methods.

At the end of the third part, you will understand how modern Node.js projects are developed and can do this by yourself.

How do we learn?

We have a large program, so the training includes both classes and additional video lectures and articles on complex topics.

Duration: a month, if necessary, the course could be extended.

At each meeting we learn something new, I ask questions, we discuss how to do better, and the homework is given.

At the next meeting, we look at what you did and how to do it better. To get the most outcome of the course, you need to do homework. Only then will you really understand how to create applications.

This course requires your active participation, just watching and listening is not enough, you must do tasks.

Learning outcome

  1. You understand Node.JS well, develop and debug programs using it.
  2. You know how to develop a project of small and medium size, so that it works stably, correctly processes errors.
  3. You can develop a modern web service on Node.JS using ES2015 and web frameworks.
  4. Successful completion of the training is guaranteed if you regularly attend classes and do your homework.

Guarantee

If you don't like our course for any reason, you can get money back.

Let us know during the first week of the course, and then your participation will cease and you get a full refund.

Teacher

PhotoSergey Zelenov

One of core developers of this website.

I have more than 9 years experience in software development. Last 6 years I have been working closely with Node.js.

At the moment I’m creating highloaded system for working with geo-data in Moovel using Node.js. As soon as system’s architecture is based on microservices, technology stack is not limited to Node.js; Python, Clojure, Java and Scala are also used in various projects.

In teaching process I’m focusing primarly on the practical aspects of writing qualitative, testable and reusable code.

Additional information

  • JavaScript knowledge is required.

  • For online lessons: internet speed 256kb/s or better. Windows/Mac/Linux are all supported.

Comments

read this before commenting…
  • You're welcome to post additions, questions to the articles and answers to them.
  • To insert a few words of code, use the <code> tag, for several lines – use <pre>, for more than 10 lines – use a sandbox (plnkr, JSBin, codepen…)
  • If you can't understand something in the article – please elaborate.