
-
За 2 місяці навчання на курсі ви:
- опануєте асинхронне програмування
- підвищите продуктивність серверних застосунків
- практикуватимете техніки для безперебійної інтеграції фронтенд- і бекенд-частин на JavaScript
- будуватимете масштабовані застосунки, які витримуватимуть велике навантаження
- вивчите ключові бібліотеки та фреймворки Node.js, як-от Express.js -
В результаті розробите власний застосунок, який зможете додати до свого профілю на GitHub.
ДО ПРОГРАМИ КУРСУ ВХОДЯТЬ:
-
КОМПЛЕКСНА РОБОТА З NODE.JS Протягом курсу ви повністю опануєте Node.js — від знайомства з базовим функціоналом до роботи з фреймворками, серверами та сучасними інструментами.
-
BEST PRACTICES На курсі опануємо найкращі практики розробки на Node.js: приділимо час асинхронному програмуванню, роботі з базами даних та убезпеченню інфраструктури.
-
КУРСОВИЙ ПРОЄКТ Наприкінці курсу презентуєте курсовий проєкт — розробите власний застосунок, який згодом зможете додати до свого профілю на GitHub.
-
БОНУСНИЙ БЛОК Для студентів, які ще не працювали з JavaScript або хочуть освіжити знання цієї мови, ми додали до курсу бонусний блок з основами JS, що складається з 4 занять.
ЛЕКТОР:
Сергій
Ващенко
- Senior Software Developer в RBC (Royal Bank of Canada)
- 7+ років досвіду у Fullstack-розробці
- має сертифікації Stanford, CISCO, Linux, AWS
- має досвід роботи з highload-проєктами: розробив аналог Jira для децентралізації команд
- інтегрував Bluetooth із механізмом читання кодів для проєкту на > 1.000.000 юзерів
- успішно впровадив зміни з використанням Scrum Framework у технологічному стеку, що охоплює Angular, Node.js, Python, GoLang
ПРОГРАМА
-
00
Бонусний блок. JavaScript
Результати: зрозумієте основи JavaScript, типи даних, цикли, умовні конструкції та роботу з об’єктами. Навчитеся використовувати асинхронний код (callback-функції, проміси, async/await) та розберетеся, як працює Event Loop. Опануєте основи ООП у JavaScript, зокрема класи, наслідування та модифікатори доступу.
- Знайомство з JavaScript. Part 1
- Знайомство з JavaScript. Part 2
- Асинхронність. Part 1
- Класи
-
01
Node.js: завдання та основні концепції
- дізнаєтеся про основні переваги Node.js
- встановите й налаштуєте робоче середовище Node.js за допомогою JetBrains WebStorm
-
02
Архітектура програми Node.js. Початок роботи з Node.js
- зможете покращити код за допомогою лінтерів JSLint та ESLint
- дізнаєтеся переваги TypeScript у Node.js
- вмітимете вмотивовано обирати фреймворк для роботи з огляду на особливості й переваги кожного
-
03
Основи роботи із сервером
- дізнаєтеся про роботу з НТТР та статус-коди
- навчитеся читати, записувати, змінювати й працювати з директоріями у файловій системі за допомогою модуля fs
- з’ясуєте, як компоненти взаємодіють між собою в Even-Driven Architecture
-
04
Docker для Node.js
- дізнаєтесь, як Docker ізолює програми із залежностями та забезпечує стабільну роботу в будь-якому середовищі
- навчитеся створювати власні Docker-образи за допомогою Dockerfile та запускати контейнери на основі готових шаблонів
- автоматизуєте розгортання багатоконтейнерних застосунків із Docker Compose, яке спростить налаштування складних середовищ
-
05
Express.js
- дізнаєтесь, у чому особливості Express.js, його переваги та обмеження
- навчитеся працювати з одним із найпопулярніших фреймворків для Node.js та застосовувати його на практиці
- створите базову структуру застосунків за допомогою Express.js
-
06
Вступ до TypeScript та основи NestJS
- дізнаєтесь, які можливості відкриває TypeScript, його переваги, обмеження та вплив на якість коду
- навчитеся працювати зі статичною типізацією та використовувати її для запобігання помилок у коді
- опануєте інтерфейси, generics, enums, utility types та декоратори для побудови гнучкої архітектури
- застосуєте TypeScript у реальних проєктах і навчитеся працювати з NestJS для бекенд-розробки
-
07
Просунутий NestJS: архітектура та оптимізація
- навчитеся будувати модульну архітектуру, організовуючи логіку на модулі, сервіси та контролери
- автоматизуєте керування залежностями Dependency Injection (DI) та навчитеся використовувати middleware для обробки запитів перед контролерами
- реалізуєте Guards для контролю доступу (автентифікація, ролі) й Pipes для валідації та трансформації даних
-
08
Антипатерни проєктування
- дізнаєтесь, як антипатерни впливають на якість коду та як їх уникати, щоб писати чистий і підтримуваний код
- навчитеся знаходити типові проблеми серверного програмування, як-от неоптимальна передача параметрів, Nested Hell і надмірна кількість логів
- автоматизуєте процес оптимізації коду, щоб покращити обробку JSON, циклів, SQL-запитів і помилок
- застосуєте принципи рефакторингу та навчитеся розпізнавати базові практики, яких варто уникати
-
09
Асинхронність
- дізнаєтеся, що таке асинхронність та в яких випадках варто використовувати асинхронний підхід
- навчитеся керувати подіями за допомогою EventEmitter для ефективної роботи з потоками даних
- автоматизуєте асинхронні процеси завдяки best practices і уникатимете поширених помилок у коді
-
10
Реактивне програмування: WebSocket, модуль fs та Selenium
- дізнаєтесь, як працює реактивне програмування та коли його варто застосовувати
- навчитеся користуватися WebSocket для обміну даними в реальному часі
- автоматизуєте тестування із Selenium та оптимізуєте роботу з файловою системою через модуль fs
- зможете ефективно керувати подіями за допомогою EventEmitter та працювати з RxJS
-
11
Робота з базами даних. Частина 1
- дізнаєтесь основи реляційних баз даних (RDBMS) та принципи їхньої роботи
- навчитеся розрізняти SQL та NoSQL і вибирати оптимальний підхід для проєктів
- розберетесь у концепціях реляцій та базових принципах побудови баз даних
-
12
Робота з базами даних. Частина 2
- дізнаєтесь, як працюють SQL Joins та їхні види для ефективної роботи з пов’язаними таблицями
- навчитеся використовувати процедури в базах даних для оптимізації запитів
- розберетесь у нормалізації даних для побудови логічної та ефективної структури баз даних
- застоїте принципи ACID-транзакцій, що гарантують надійність роботи з даними
-
13
Робота з базами даних. Частина 3
- дізнаєтесь, як працюють транзакції та рівні їхньої ізоляції (Read Uncommitted, Read Committed, Repeatable Read)
- навчитеся користуватися TypeORM у NestJS для ефективної роботи з базами даних
- опануєте підхід Code First для створення структур баз даних безпосередньо в коді
-
14
Нереляційні бази даних
- дізнаєтесь, як ефективно використовувати MongoDB, Redis та Cassandra у проєктах на Node.js
- навчитеся працювати з Mongoose для зручної взаємодії з MongoDB
-
15
Message Brokers
- дізнаєтеся, що таке Message Broker та яку роль він відіграє у системах з високим навантаженням
- навчитеся працювати з RabbitMQ з використанням обмінників, черг, маршрутизації та підтверджень повідомлень
- опануєте основи Apache Kafka, зокрема теми, партиції, продюсерів і консумерів
- зрозумієте, чим відрізняються RabbitMQ та Apache Kafka і де їх варто застосовувати
-
16
Розміщення та розгортання програми
- дізнаєтесь, як влаштований типовий GitHub pipeline і як його налаштувати
- навчитеся працювати з гілками (branches) і тестувати код у середовищі Node.js
- опануєте різні методи релізу ПЗ та зрозумієте, який підходить для вашого проєкту
-
17
Хмарні технології
- навчитеся працювати з AWS, зокрема розбиратись у регіонах, зонах доступності та обчислювальних ресурсах
- опануєте AWS Cognito для управління автентифікацією та авторизацією користувачів, а також AWS для зберігання й обробки файлів
- з’ясуєте, в чому відмінності AWS, GCP та Azure, та зможете обирати правильну платформу для проєкту
-
18
Контейнеризація та DevOps
- дізнаєтесь, як працює оркестрація контейнерів та які ключові можливості надає Kubernetes
- навчитесь управляти інфраструктурою через майстер-вузли (АРІ-сервер, контролери, etcd) та робочі вузли (kubelet, kube-proxy)
- опануєте роботу з Pod і ReplicaSet для масштабування та підтримки потрібної кількості контейнерів
- з’ясуєте, як працюють Deployment для безперервних оновлень та Service (ClusterIP, NodePort, LoadBalancer) для з’єднання Pod із користувачами
-
19
Логування й тестування
- дізнаєтесь, які існують типи тестування та коли їх варто застосовувати
- навчитеся працювати за підходами TDD (Test-Driven Development) та BDD (Behavior-Driven Development) для покращення процесу розробки
- опануєте best practices у тестуванні та логуванні, уникаючи поширених помилок
-
20
Безпека в серверному програмуванні
- дізнаєтесь, які принципи безпеки є критичними в серверному програмуванні та як уникати вразливостей
- розберетесь у функціоналі та особливостях JWT
- опануєте методи автентифікації та авторизації користувачів для захисту доступу до системи
- зможете гарантувати безпеку sensitive data завдяки найкращим практикам шифрування та управління доступом
-
21
Підготовка до технічної співбесіди
- дізнаєтесь, як відбуваються технічні співбесіди та які запитання найчастіше ставлять
- навчитесь ефективно розв’язувати типові live-завдання на кшталт LeetCode Easy
-
22
Підсумок курсу
- навчитеся писати ефективний та оптимізований код
- зрозумієте принципи CI/CD
-
23
Захист курсових робіт
Зареєструватися