Studies
Admissions
The Institute
Resources
Studies
Admissions
The Institute
Resources
Studies
Admissions
The Institute
Resources

FE412

Deep Dive Into JavaScript

Barcelona Campus
Jun 13, 2022 - Jul 01, 2022
This course teaches how to write BackEnd applications in JavaScript & TypeScript programming languages and use ideas from modern Node.js frameworks.
Barcelona Campus
Jun 13, 2022 - Jul 01, 2022
Alex Korzhikov

Faculty

Alex Korzhikov

Software Engineer at HackerOne, Groningen

Course length

3 weeks

Duration

3 hours
per day

Total hours

45 hours

Credits

6 ECTS

Language

English

Course type

Offline

Fee for single course

€2999

Fee for degree students

€1999

Skills you’ll learn

Java Script FrameworksJavaScript & TypeScriptNode.jsServer Applications
OverviewCourse outlineCourse materialsPrerequisitesMethod & grading

Overview

The Deep Dive Into JavaScript course endorses Middle and Junior Web Developers to improve their software development skills and qualification in Web Technologies, as well as systematise their knowledge in backend programming in general. After the course developers will be able to write BackEnd applications in JavaScript & TypeScript programming languages and use ideas from modern Node.js frameworks.

Learning highlights

  • The course extends knowledge of JavaScript & TypeScript programming languages, embraces modern EcmaScript standard, key Web platform features, explains their principles and features,
  • overviews software design patterns - Event-Driven Paradigm, Module, REST API,
  • uncovers Node.js ecosystem, principles and features of popular libraries (ExpressJS, Nest.js, Passport), as well as standards of projecting and managing, building and testing backend applications (npm, package.json),
  • includes theory and practice with MongoDB, and discusses style, performance, and security techniques,
  • provides materials, code examples, project tasks, and exercises for continuous learning.

Course outline

15 classes

Dive into the details of the course and get a sense of what each class will cover.
Monday
Tuesday
Wednesday
Thursday
Friday
Monday
1

Node.js and npm

Run Node.js programs. Understand and work with NPM. Manage dependencies and automate tasks with package.json.

Node.js. About. HTTP Server Example. Structure. Builtin Modules. Callbacks.

Package Manager NPM. Features of package.json. NPM Command-Line Interface.

Tuesday
2

Modules in Node.js

Understand Module design pattern and it's implementations in JavaScript. Export and import Node dependencies with CommonJS & ES Modules.

Module Pattern

Classic Implementation, AMD and RequireJS

Node.js Dependencies Resolution Algorithm

ES Modules and CommonJS

Wednesday
3

Events, Timers, Event Loop

See Event Loop, Events, Timer practical examples. Sync VS Async Callbacks Events Event Loop Timers From Callbacks to Promises

Thursday
4

Asynchronous Node.js

Practice with different JavaScript asynchronous patterns. Understand and work with native streams module. File System API Example. Async/Await. Iterators. Generators. Async Iterators. Streams in Node.js.

Friday
5

Process Management

Features. Cluster. Child Processes. Worker Threads. Tools overview. PM2 CLI in Node.js.

Monday
6

Test Driven Development

Error Handling in Node.js. TDD Overview. Jest Test Framework. Tests, Assertions Setup, Teardown. Asynchronous Code. Mocks, Stubs.

Tuesday
7

Web Servers

TCP/IP, Addresses, Ports. HTTP(s) Protocols. Certificates. HTTP Server to serve files. Using streams. Introduction to Express. Hello Express! Express-Generator. Routing. Templates

Wednesday
8

REST API with Express

REST API. Methods, error codes. Swagger. Alternatives. Express middlewares. Cookies, Headers & Body. Introduction to Auth. PassportJS. JWT. Login Implementation Examples

Thursday
9

MongoDB

Database types overview. NoSQL. Intro to MongoDB. Installation mongodb. Usage in Node.js. Collections, documents, fields. Queries, data operations. Connect Express to MongoDB. Mongoose

Friday
10

Advanced Web Server Aspects

MongoDB Features Overview. Aggregation Framework. Admin Features. Best Practices. Validate Endpoints. Logs. Tracing. Profiling.

Monday
11

Static Typing

Introduction to TypeScript. Overview. Tools. tsconfig.json. Types. Simple & Complex. Classes and Interfaces. Generics. Advanced Types. Namespaces.

Tuesday
12

Migrate to TypeScript

Decorators. Metadata. Local Setup. Build. ORM - Typegoose, Sequalize, TypeORM. Migrate Application to TypeScript. Introduction to Nest.js. Why Nest.js. Hello World.

Wednesday
13

Nest.js

Nest.js Concepts. Routing. CLI. Dependency Injection. Nest.js in Depth. Controllers, Providers, Modules, Middleware, Pipes & Guards. Validation. Interceptors. Authnetication

Thursday
14

Deployment

CI/CD Aspects & Overview. Continuous Integration with Github. Environment Variables. Deploy Node.js Aspects. Gitlab CI/CD / Heroku. MongoDB Atlas in Cloud. Docker Node.js Solution. Start Node.js in Docker. Docker-compose.

Friday
15

Node.js Summary

Best Practices. Node.js Summary. Deno.

Prerequisites

The course is intended for junior and medium JavaScript and Web developers or Computer Science students. It would be great if you as a student:

Know JavaScript programming concepts, basics (variables, cicles, functions, closures, scope, this, built-in API - Date, Math, RegExp, Array - map, forEach, filter, reduce), Feel comfortable with Git, Have experience with JavaScript libraries / frameworks, Willing to solve Web coding and algorithmical exercises, Have experience with other programming languages, Know your IDE.

Methodology

The course focuses on the Server Side part of JavaScript - specifically, Node.js environment. During the Lectures, including materials - presentations, code, etc., Practical exercises and examples, Individual project assignments.

Grading

The final grade will be composed of the following criteria:
20% - Homework
20% - Participation
60% - Projects
Alex Korzhikov

Faculty

Alex Korzhikov

Software Engineer at HackerOne, Groningen

Alex’ primary interest is self development and craftsmanship. He enjoys teaching, exploring technologies, coding open source and enterprise projects, speaking and writing about programming - JavaScript, Node.js, TypeScript, Go, Docker, Ruby, Java, Kubernetes, JSON Schema, DevOps, Web Components, Algorithms. Alex has created several trainings and courses for Web developers.

See full profile

Apply for this course

Snap up your chance to enroll before all spaces fill up.

Deep Dive Into JavaScript

by Alex Korzhikov

Total hours

45 Hours

Dates

Jun 13 - Jul 01, 2022

Fee for single course

€2999

Fee for degree students

€1999

How to secure your spot

Complete the form below to kickstart your application

Schedule your Harbour.Space interview

If successful, get ready to join us on campus

FAQ

Will I receive a certificate after completion?

Yes. Upon completion of the course, you will receive a certificate signed by the director of the program your course belonged to.

Do I need a visa?

This depends on your case. Please check with the Spanish or Thai consulate in your country of residence about visa requirements. We will do our part to provide you with the necessary documents, such as the Certificate of Enrollment.

Can I get a discount?

Yes. The easiest way to enroll in a course at a discounted price is to register for multiple courses. Registering for multiple courses will reduce the cost per individual course. Please ask the Admissions Office for more information about the other kinds of discounts we offer and what you can do to receive one.