Открыто

Node.JS (FullStack) разработчик [TeachMeSkills]

Тема в разделе "Курсы по программированию", создана пользователем pikylbkaNomer, 27 июл 2021.

Цена: 82300р.-92%
Взнос: 6420р.

Основной список: 14 участников

Резервный список: 3 участников

  1. 27 июл 2021
    #1
    Топикстартер
    Топикстартер ЧКЧлен клуба

    Node.JS (FullStack) разработчик [TeachMeSkills]


    [​IMG]

    Курс «Node.js разработчик» позволяет c головой окунуться в мир серверной разработки для реализации сложной бизнес-логики приложений. К тому же, на данном курсе ты еще получишь и уверенные знания языка программирования JavaScript, чтобы создавать современные и полноценные приложения.

    В ходе курса мы напишем несколько приложений - от простых монолитов до сервисов, использующих микросервисную архитектуру. Ты получишь опыт работы с разными типами баз данных - как реляционных, так и не реляционных, научишься запускать их в docker-контейнерах и многое другое, связанное с серверной разработкой. Пройдя этот курс, ты сможешь смело претендовать на позицию Junior Backend Developer.
    256 академических часов
    Составлена практикующими IT специалистами для новичков в разработке. Это лучший курс по Node.JS для начинающих.​

    1. Введение в веб-разработку
    • Знакомство с HTML/XML/XHTML
    • Структура HTML-документа
    • Работа с текстом и HTML-тегами
    • Работа со шрифтами и фоном
    2. HTML и введение в CSS
    • Списки
    • Формы
    • Таблицы
    • Знакомство с CSS: способы подключения, виды селекторов
    • Понятие блочной и строчной модели
    • Float, inline-block
    • CSS-свойства:padding и margin
    3. Углубление в HTML и CSS (Часть 1)
    • Позиционирование блочных элементов, свойство position
    • Flex-модель
    • Семантическая верстка
    • Адаптивная и резиновая верстка
    • Сетка сайта
    • Работа с графическими редакторами (Photoshop, Figma)
    • Выдача задания на верстку макета
    4. Углубление в HTML и CSS (Часть 2)
    • Grid-модель
    • Псевдоклассы и псевдоэлементы
    • Анимация элементов
    • Значение форм в enterprise-приложениях
    5. Дополнительные инструменты верстки страниц
    • Bootstrap
    • Основы препроцессоров LESS, SASS/SCSS, Stylus
    • Локальная разработка на GULP-SASS
    • BEM и какие проблемы он решает
    • Консультация по вопросам сдачи индивидуального задания
    6. Системы контроля версий. Git
    • Что такое системы контроля версий и зачем они нужны
    • Классификация систем контроля версий
    • Git как система контроля версий
    • Основные команды Git
    7. Введение в JavaScript
    • Введение в программирование
    • Классификация языков программирования
    • Что такое JavaScript и для чего он нужен
    • История языка
    • Типы данных
    • Переменные
    • Базовые операторы
    8. Основы JavaScript
    • Как устроен JavaScript
    • Системы счисления (двоичная, восьмеричная, десятичная, шестнадцатеричная)
    • Компиляция и интерпретация исходного кода
    • Как работает JIT-компиляция
    • Приведение типов: явное и неявное
    • Условия (if, switch, тернарный оператор)
    • Циклы (while, for, for ... in, for … of)
    9. Введение в функции
    • Что такое функции и зачем они нужны
    • Способы объявления функций
    • Аргументы функции
    • Возвращаемое значение
    10. Продвинутая работа с функциями
    • Ключевое слово arguments и его роль
    • Оператор расширения в стрелочных функциях и его роль
    • Область видимости. Локальные и глобальные переменные
    • Всплытие значений
    • Стек вызовов функции
    • Рекурсия и ее роль
    • Замыкание и его роль
    • Функции обратного вызова
    • HOC функции
    11. Объекты и массивы
    (Часть 1)
    • Объекты как составной тип данных
    • Доступ к свойствам объектов
    • Массивы как частный случай объектов
    • Доступ к элементам массивов
    • Копирование объектов и массивов
    • Деструктуризация
    12. Объекты и массивы
    (Часть 2)
    • Перебор объектов и перебор массивов
    • Методы по работе с массивами
    • Преобразование объекта в массив и массива в объект
    13. Основы ООП
    • Введение в ООП. Понятие класса и объекта
    • Основные понятия ООП: инкапсуляция, наследование, полиморфизм, абстракция
    • Функции-конструкторы и их роль в создании объектов. Выделение памяти при создании объекта и ключевое слово new
    • Ключевое слово this и понятие контекста
    • Способы привязки контекста выполнения
    14. Прототипы и прототипное наследование
    • Прототипы и их роль
    • Отличие prototype и __proto__
    • Прототипное наследование в JavaScript
    • Появление классов в JavaScript
    • Статические свойства
    • Наследование с использованием классов
    • Свойства get и set
    • Приватные свойства классов
    15. Клиентский JavaScript. DOM
    • Что такое DOM
    • Навигация по элементам
    • Типы элементов и поиск элементов
    • Атрибуты элементов, добавление/изменение стилей и классов
    16. Обработка событий на стороне клиента
    • Введение в браузерные события
    • Всплытие и погружение
    • События по умолчанию
    • События мыши и клавиатуры
    • Обработка событий формы
    17. Асинхронность в JavaScript
    (Часть 1)
    • Что такое асинхронность
    • Отличие синхронного и асинхронного кода
    • Потоки и процессы
    • Отличие асинхронности от многопоточности
    • Событийный цикл
    • Таймеры setTimeout и setInterval
    • Выдача индивидуального задания на разработку собственного клиентского приложения
    18. Асинхронность в JavaScript (Часть 2)
    • Еще раз о функциях обратного вызова
    • Введение в promise
    • Цепочка промисов
    19. Асинхронность в JavaScript (Часть 3)
    • Продолжаем promise и обработка ошибок
    • Промисификация
    • Микро- и макро-задачи
    • Генераторы
    • Работа с promise через async/await
    20. Отправка запросов по сети. Протокол HTTP
    • Введение в клиент-серверную архитектуру
    • Как взаимодействует клиент и сервер
    • Протокол HTTP
    • HTTP запросы. Методы и статус-коды
    • Запросы через XMLHttpRequest, fetch и axios
    • Обработка ошибок в запросах
    21. Хранение данных в браузере. BOM
    • Объектная модель браузера
    • Куки-файлы
    • localStorage и sessionStorage
    22. Основы Webpack (Часть 1)
    • Что такое npm
    • Что такое Webpack и отличия от Gulp
    • Устанавливаем Webpack
    • Настройка окружения
    23. Основы Webpack (Часть 2)
    • Разбиение исходного кода проекта на файлы и запуск через Webpack
    • Работа с зависимостями
    • Плагины и лоадеры
    24. Паттерны проектирования
    • Что такое паттерны их роль
    • Классификация паттернов
    • Порождающие паттерны. Примеры
    • Поведенческие паттерны. Примеры
    • Структурные паттерны. Примеры
    25. MVC-концепция и концепция SPA
    • Семейство паттернов MVC
    • MVC/MVVM
    • Концепция одностраничных приложений
    26. Алгоритмы и структуры данных
    • Что такое алгоритм
    • Способы оценки сложности алгоритма
    • Алгоритмы поиска
    • Алгоритмы сортировки
    • Хэш-таблица, стек, очередь, куча
    • Коллекции Map/Set
    • Деревья
    27. Практическое занятие, консультация по вопросам сдачи проекта
    • Практическое занятие
    • Подробные индивидуальные консультации с преподавателем
    28. Введение в бэкенд-разработку и Node.js
    • Что такое сервер и зачем он нужен
    • Установка Node.js, обзор документации
    • Выполнение первого скрипта на Node
    • Работа Javascript на сервере
    • Архитектура Node.js, V8, libuv, c++ и node-gyp
    • Паттерн reactor и Event loop
    29. Глобальные объекты и модули (Часть 1)
    • Модули. Способы декомпозиции структуры проекта: common.js, es6 modules(.mjs и babel)
    • Встроенные модули: path, fs, os
    • Глобальный объект global в node.js и константы __dirname, __filename
    • Почему window и document не существует в node.js
    • Дебаггер
    30. Глобальные объекты и модули (Часть 2)
    • Объект process
    • Переменные окружения и dotenv, process.argv
    • Почему переменные окружения не должны попадать в репозиторий
    • Buffer API
    • Таймауты, интервалы
    31. Асинхронное взаимодействие с I/O
    • Модуль events. EventEmitter в действии
    • Объект Stream (потоки readable, writable, duplex). Pipe
    • Использование Promise и async/await со Stream API
    • Концептуальная роль Stream в node.js (stdin, stdout, fs, http)
    32. Компьютерные сети, работа интернета и протоколы
    • Понятие "Интернет" и "WEB"
    • Введение в компьютерные сети
    • Топологии компьютерных сетей
    • Стандарты и организация компьютерных сетей
    • 7 уровней модели OSI
    • 4 уровня в модели TCP/IP
    • Главное отличия TCP и UDP
    33. Модуль HTTP и первый веб-сервер на Node.js
    • Протокол HTTP (заголовки, тело запроса, статус коды). Модуль http
    • Айпи адреса, мак-адрес и порты. 127.0.0.1
    • Базовый веб сервер на node.js
    • Объекты request и response
    • Выполнение HTTP запроса на стороне node.js
    • HTTP/HTTPS, SSL/TLS
    34. REST API (Часть 1)
    • Статический веб-сервер
    • Углубление в клиент-серверную модель взаимодействия
    • Создание REST API сервера
    • Роутинг запросов
    35. REST API (Часть 2)
    • Методы GET, POST, PUT, DELETE, PATCH и их смысл в REST
    • Http-клиенты Postman и Insomnia
    • Выдача индивидуального задания на разработку REST API сервис
    36. Основы тестирования
    • Разновидности тестов
    • Unit-тестирование (assert)
    • Chai, mocha, sinon
    • Jest
    37. Авторизация и аутентификация (Часть 1)
    • Разница в понятиях "аутентификация", "авторизация" и "идентификация"
    • Методы аутентификации: сессионная, двухфакторная, беспарольная, SSO
    • Пишем первую авторизацию на Node.JS
    • Json Web Token
    38. Авторизация и аутентификация (Часть 2)
    • Модуль crypto
    • Имплементация JWT
    • Passport.js

    39. Мультипоточность, кластеры
    • Модуль child_process
    • Модуль worker_threads
    • Менеджер процессов pm2

    40. История Unix-систем
    • Основы unix-команд
    • Пользователи в unix
    • Права в unix
    • Система директорий в unix

    41. Деплоймент кластера на сервер
    • Настраиваем VPS-сервер
    • Устанавливаем зависимости и базовая настройка

    42. Практическое занятие, консультация по вопросам сдачи проекта
    • Практическое занятие
    • Подробные индивидуальные консультации с преподавателем

    43. Работа в команде и как писать понятный код
    • Контроль качества кода с помощью ESLint/Prettier/JSHint
    • Процесс code/review
    • Подход Git Flow
    • Гит хуки и husky.js
    • Аннотации

    44. Фреймворки Node.JS
    • Зачем писать на фреймворке
    • Обзор Node.JS фреймворков
    • Фреймворк express.js и почему он популярный
    • Настройка express.js. Роутинг, отправка статических файлов, концепция middleware, парсинг Content-type: application/json, обработка ошибок

    45. Концепция MVC в рамках express.js
    • MVC и шаблонизация данных на сервере
    • Контроллеры, модели, представления, сервисы
    • Выдача индивидуального задания на разработку собственного сервиса

    46. Валидация данных
    • Проблемы без валидации
    • Инструменты для валидации данных. Joi, ajv.
    47. Веб сокеты, polling, long polling, server sent events
    • Проблемы односторонней коммуникации межу клиентом и сервером
    • Polling, long polling
    • Понятие о web-sockets
    • ws/wss
    • Библиотека socket.io
    • Server sent event
    48. Знакомство с контейнеризацией, Docker, docker-compose
    • Установка и настройка Docker
    • Запаковываем наше приложение в docker-compose
    • Запускаем базу данных в docker-compose
    • Подключаем базу данных в наше express-приложение
    • Настраиваем GUI-приложение для базы данных
    • Выдача задания на контейнеризацию своего приложения
    49. Базы данных. Введение
    • Классификация БД
    • Реляционные базы данных
    • Язык запросов SQL
    • Драйвер для БД(pg)
    • Проектирование баз данных
    • SQL-injection
    50. Базы данных SQL
    • Агрегатные функции
    • Транзакции
    • Нормальные формы данных
    • PostgreSQL, JSON, JSONB
    • ORM: knex.js, sequilize
    • Миграция
    • Фикстуры
    • Переносим данные своего приложения в БД
    51. Базы данных NoSQL
    • Установка MongoDB
    • Синтаксис MongoDB
    • Драйвер mongodb
    • Mongoose: Модели, миграции, запросы
    • Агрегация
    52. Кэширование данных
    • Что такое key-value хранилища и для чего они нужны
    • Запуск Redis с помощью docker-compose
    • Подключение к редис с помощью драйвера
    • Сравнение скорости запросов в PostgreSQL и Redis
    53. HTTPS-сервер на Node.JS. Возможности продакшн веб-сервера
    • Node.js http2-модуль и openssl
    • Nginx: какие решает задачи
    • Nginx: Сборка, раздача статики, реверс проксирование
    • Nginx: Запуск и настройка
    • Nginx: Балансировка запросов, алгоритмы балансировки
    54. Мониторинг и логирование запросов
    • Для чего нужно следить за логами приложений
    • Простой логгер своими руками
    • Анализ логов Nginx с помощью утилиты goaccess
    • Инструменты логирования в Node.JS - Loggly/Winston/Morgan
    • Сервисы для логирования catchJS и Sentry.io
    55. Микросервисы
    • Преимущества и недостатки микросервисной архитектуры
    • Коммуникация между микросервисами
    • Первые микросервисы на http
    • Проблемы с http и понятие брокера сообщений
    • Виды брокеров NATS/Kafka/RabbitMQ/Redis as MQ
    • Выдача задания для разбиения приложения на микросервисы
    56. Документатор swagger
    • Документируем наше бэкенд-приложение для фронтенд разработчиков
    • OpenApi 3.0 / Swagger
    • Swagger: Настройка и запуск
    • Домашнее задание на подключения модуля swagger к проекту
    57. Проблемы микросервисной архитектуры
    • Проблема микросервисов на примере Socket.io
    • Решение проблемы с Socket.io-redis
    • Выдача задания на AB тестирование
    58. Микросервисные фреймворки
    • Какие задачи решает Moleculer.js / Nanoservices
    • Добавляем Moleculer в свой проект
    • Решаем задачу с распределением работы между инстансами
    • CRON jobs
    59. Деплоймент (Часть 1)
    • Настраиваем балансировщик для Docker
    • Запускаем приложение на VPS-сервере
    • Настройка домена
    • Задание на деплоймент своего приложения
    60. Деплоймент (Часть 2)
    • Практическое занятие по настройке приложения на VPS-сервере
    • Консультации с преподавателями по вопросам деплоя
    61. Поисковые движки
    • Проблемы БД при работе с большим количеством данных
    • Инструменты Elasticsearch и Sphinx
    • Запуск и настройка Elastic Search
    • Elasticsearch: запросы, индексы, фильтры
    62. Стресс-тесты
    • Инструменты для стресс-тестов: artillery / loadtest / autocannon
    • Тестируем наше приложение на отказоустойчивость на VPS-сервере
    • Финальное домашнее задание
    63. Подготовка к дипломному проекту
    • Повторение изученного материала
    • Выбор дипломного проекта
    64. Онлайн-тренинг "Трудоустройство в IT"
    • Составление резюме (теория + практика)
    • Составление профиля на LinkedIn (теория + практика)
    • Прохождение интервью
    • Soft skills, которые важны в рамках интервью
    • Проведение пробного интервью

    Программа
     
    1 человеку нравится это.
  2. Последние события

    1. Mita2019
      Mita2019 не участвует.
      23 сен 2024
    2. AlbinaKov
      AlbinaKov участвует.
      17 авг 2024
    3. skladchik.com
      В складчине участвует 20 человек(а).
      19 фев 2024
    4. skladchik.com
      В складчине участвует 20 человек(а).
      16 фев 2024