Курсы по функциональному программированию

Анастасия Сичкаренко Редактор
Обновлено
5.00
1
4 нед
Логотип StepikStepik
Kotlin: курс для начинающих + профессиональный уровень
Функциональное программирование
Kotlin
Разработка мобильных приложений
Разработка под Android
ООП
Многопоточное программирование
Многопоточность
Асинхронное программирование
Паттерны проектирования
от 3 995 ₽/мес
или сразу 7 990 ₽
Обложка курса
5.00
1
16 мес
Логотип ХекслетХекслет
Fullstack-разработчик на Node.js
Функциональное программирование
Fullstack-разработка
Node.js
React
HTML/CSS
Разработка
JavaScript
Git
GitHub
HTTP
ООП
Ajax
REST API
Верстка сайта
Базы данных
Chrome DevTools
Apache Flex
Ubuntu
VS Code
Алгоритмы и структуры данных
Парсинг
Регулярные выражения
Асинхронное программирование
Redux
Lean startup
SQL
Веб-разработка
161 250 ₽
-26%
215 008 ₽
1 нед
Логотип Учебный центр IBSУчебный центр IBS
JVA-I-001 Java: ООП и функциональная парадигма
Функциональное программирование
ООП
Java
Разработка
Паттерны проектирования
22 000 ₽
Обложка курса
4.88
24
8 мес
Логотип ProductStar × РБКProductStar × РБК
Профессия: Python-разработчик + ИИ
Функциональное программирование
Python
ООП
Git
Backend-разработка
SQL
Flask
Разработка
GitHub
Waterfall
Kanban
Scrum
Jira
Confluence
Базы данных
REST
Django
ORM
CI / CD
REST API
Алгоритмы и структуры данных
Pandas
Jupyter Notebook
SOLID
Agile
Многопоточность
Асинхронное программирование
от 2 160 ₽/мес
-73%
или сразу 69 984 ₽
Обложка курса
2 мес
Логотип AndroidSprintAndroidSprint
Kotlin основы: ИИ-ментор 24/7 + персональный наставник
Функциональное программирование
Kotlin
ООП
Intellij IDEA
Git
Создание чат-ботов
Разработка под Android
Разработка мобильных приложений
Разработка
от 1 625 ₽/мес
-34%
или сразу 39 000 ₽
1 мес
Логотип StepikStepik
Функциональное программирование на языке Haskell
Функциональное программирование
Haskell
Разработка
Бесплатно
1 нед
Логотип Учебный центр IBSУчебный центр IBS
WEB-024 JavaScript. Продвинутый уровень
Функциональное программирование
JavaScript
Асинхронное программирование
Frontend-разработка
Разработка
Реактивное программирование
WebSockets
REST API
TypeScript
52 900 ₽
1 мес
Логотип ProductStar × РБКProductStar × РБК
Python: навык ООП и функционального программирования
Функциональное программирование
ООП
Python
Jupyter Notebook
SOLID
от 2 999 ₽/мес
-50%
или сразу 29 990 ₽
2.50
1
1 нед
Логотип Учебный центр IBSУчебный центр IBS
JVA-074 Java Advanced I: функциональное, асинхронное и реактивное программирование
Функциональное программирование
Java
Асинхронное программирование
Реактивное программирование
Node.js
Backend-разработка
Разработка
RxJava 2
WebSockets
79 500 ₽
1 нед
Логотип Учебный центр IBSУчебный центр IBS
WEB-007 Разработка на JavaScript
Функциональное программирование
JavaScript
Frontend-разработка
HTML/CSS
React
Angular
Vue.js
Разработка
Ajax
JSON
WebSockets
47 900 ₽

Как выбрать и купить обучение?

Перед тем, как выбрать курс на Хабр Карьере, подумайте о том, что для вас важно в обучении и ответьте себе на несколько вопросов:

  • Курс поможет вам достичь карьерной цели?

    Хотите ли вы сменить профессию, вырасти в должности или освоить новый навык? Поможет ли он улучшить резюме и зарабатывать больше?

  • Какой формат вам подходит?

    Готовы ли вы учиться интенсивно и закончить курс за несколько недель — или комфортнее растянуть на несколько месяцев? Нужен ли вам ментор или предпочитаете разбираться самостоятельно?

  • Нужна ли вам рассрочка?

    Длительность некоторых курсов может быть от полугода и больше, что сильно влияет на стоимость. Готовы ли вы заплатить за весь курс сразу или удобнее платить по частям? Позволит ли ваш кредитный рейтинг получить рассрочку на выгодных условиях или лучше начать с короткого и недорогого курса?

  1. 1

    Оцените свой уровень знаний

    Потому что он напрямую влияет на выбор курса. Новичкам подойдут базовые программы, а более опытным — продвинутые или узкоспециализированные. Если не уверены в своем уровне, многие платформы предлагают бесплатные тесты или вводные уроки. Если чувствуете, что знаний пока не хватает, лучше начать с более простого курса — можно выбрать программу с наставником или обучаться с сообществом.

  2. 2

    Выберите длительность и определите свой бюджет на обучение

    Честно оцените, сколько времени в неделю вы готовы тратить на учебу и сколько готовы за нее заплатить. Сравните курсы по цене, длительности и формату — это поможет выбрать программу, которую вы не бросите на середине.

  3. 3

    Изучите предложения

    Выбирайте курсы с бесплатным пробным доступом или демо-уроками — так вы оцените качество до оплаты. Обязательно читайте отзывы: наша команда собрала и проверила более 10 000 отзывов покупателей курсов за последний год — можно изучить опыт других или ориентироваться на наш рейтинг школ.

  4. 4

    Сравните несколько школ

    Посмотрите минимум три варианта и сравните программы, преподавателей, есть ли практика и сертификат. Уточните, нет ли скрытых расходов — например, за проверку домашних заданий или доступ к материалам.

  5. 5

    Оформите покупку

    Если нашли подходящий курс — переходите на сайт школы и оформляйте покупку. Перед оплатой внимательно прочитайте договор: стоимость, условия возврата, доступ к материалам и поддержку. Иногда нужна регистрация на платформе или дополнительные данные.

  6. 6

    Начните обучение и держитесь плана

    После покупки вы получите доступ к курсу — иногда сразу. Составьте себе расписание и придерживайтесь его: так больше шансов дойти до конца. Можно включить напоминания или выбрать курсы с поддержкой кураторов — это поможет не откладывать обучение.

Когда лучше покупать онлайн-курс?

Лучший момент — когда у вас есть конкретная цель и понимание, какой результат вы хотите. Это поможет выбрать подходящую программу, формат и не переплатить за ошибочный выбор.

«Онлайн-курсы приносят максимальную выгоду, когда человек приходит с конкретным запросом: не „хочу разобраться в маркетинге“, а „хочу уметь самостоятельно запускать рекламные кампании в Яндекс Директе“. Чем точнее сформулирован желаемый результат, тем легче найти подходящую программу и тем выше шанс дойти до конца. В отличие от самообучения, курс избавляет от необходимости самому искать, фильтровать и выстраивать материал — над структурой и содержанием работают команды методистов и редакторов, которые уже прошли этот путь за вас. А в отличие от ментора, качество подачи здесь не зависит от одного человека: программа отточена на тысячах студентов и постоянно улучшается»

При выборе курса смотрите не только на программу, но и на дату последнего обновления материалов и актуальность инструментов — хорошие платформы следят за изменениями в индустрии.

И не торопитесь из-за тех же сезонных скидок: решение лучше принимать исходя из своих целей и готовности учиться, а не дедлайна акции.

Вот когда покупка курса действительно оправдана:

  1. 1

    Вы хотите сменить профессию или освоить новую специальность

    Структурированный курс с практикой и обратной связью поможет войти в новую область быстрее, чем если вы будете сами искать и сохранять самые разные материалы в интернете. Сравните несколько программ по длительности, формату и наличию сертификата.

  2. 2

    Вам нужно быстро что-то освоить

    Курсы хорошо справляются с точечными задачами: нужно разобраться с новым инструментом или прокачать конкретный навык для роста в карьере — курсы дают всю нужную для этого информацию.

  3. 3

    Вы хотите совмещать обучение со своими делами

    Онлайн-курсы делают для тех, у кого плотный график: вы сами выбираете, когда и сколько учиться. Не нужно подстраивать расписание — чаще всего достаточно находить 30-60 минут в день в удобное время.

Несколько советов, которые помогут сделать правильный выбор:

  • Формулируйте цель конкретно: «хочу уметь делать X через Y недель» работает лучше, чем просто «хочу научиться»;

  • Сравнивайте программы, а не только цены — содержание и формат важнее скидки;

  • Читайте отзывы тех, кто правда учился на курсе, а не маркетинговые описания.

Онлайн-курс, ментор или самообучение: что выбрать?

Если не можете определиться, мы вместе с нашими экспертами составили сравнительную таблицу плюсов и минусов каждого формата — чтобы помочь выбрать то, что подойдет именно вам.

Критерий
Онлайн-курс
Персональный ментор
Самообучение
Стоимость
Средняя
Высокая
Минимальная
Структурность
Высокая
Высокая
Низкая
Гибкость обучения
Высокая
Средняя
Максимальная
Обратная связь
Ограниченная
Персональная
Отсутствует
Мотивация
Дедлайны, куратор и группа
Контроль ментора
Самодисциплина
Скорость старта
Сразу
Нужно найти ментора
Сразу
Сертификат
Часто есть
Нет
Нет
Риски
Низкие
Низкие
Высокие
Для чего подходит?
Сменить профессию и прокачать навыки
Достичь сложных или узких карьерных целей
Закрыть конкретные пробелы в знаниях

Как мы отбираем лучшие курсы и онлайн-школы

Экспертность Хабр Карьеры на рынке онлайн-образования

20
лет
в бизнесе
400
образовательных
учреждений
10 тыс
оцененных
курсов
300 тыс
данных
о курсах
Подробнее про нашу методологию оценки

Чтобы собрать витрину, наша команда проанализировала более 10 000 онлайн-курсов и школ на русскоязычном рынке. В список попадают только программы с прозрачной структурой, актуальными для рынка труда навыками и подтвержденными результатами студентов.

Каждый курс и школу мы оцениваем по 4 критериям:

  • Качество программы

    Оцениваем актуальность учебного плана, глубину тем и востребованность навыков у работодателей — на основе опросов более 3 000 компаний с Хабр Карьеры. Дополнительные баллы получают курсы, в которых регулярно обновляют контент, есть практика на кейсах и понятные результаты обучения.

  • Условия и доступность

    Учитываем формат, длительность, наличие рассрочки, пробного периода и бесплатных вводных уроков. Смотрим, подходит ли курс для разных уровней — от новичков до практикующих специалистов. Дополнительные баллы получают школы, у которых высокий процент завершаемости курсов, активная реакция на отзывы студентов и прозрачные условия возврата.

  • Клиентский опыт

    Оцениваем репутацию школы и курса на основе двух источников: отзывов верифицированных пользователей нашей платформы на основе более 100000 резюме, а также оценок на независимых внешних ресурсах — таких как отзовики, профессиональные сообщества и оценок экспертов. Подробнее про наш рейтинг можно посмотреть вот здесь.

  • Прозрачность

    Оцениваем, насколько честно и полно школа или платформа рассказывает о курсе: указана ли итоговая стоимость, описаны ли требования к студентам, опубликованы ли реальные отзывы и истории выпускников.

Ответственная информация

Важно: мы в Хабре самостоятельно отбираем курсы на этой странице и рекомендуем их. Несмотря на то, что мы можем получать вознаграждение за переходы, регистрацию или покупку обучения, это не влияет на наши рекомендации и рейтинги курсов — здесь у нас нет соглашений с онлайн-школами и платформами обучения.

Хабр Карьера — независимый агрегатор и не является образовательной организацией. Мы не предоставляем образовательные услуги. Позиции отмеченные «Реклама», размещены на платной основе согласно ФЗ-38 «О рекламе» и всегда промаркированы и явно помечены.

Информация о ценах и программах, а также текущем рейтинге онлайн-курсов по тематике Функциональное программирование актуальны на 09.08.2026.

Итоговую стоимость и условия покупки уточняйте на сайтах школ, они могут измениться — перед оплатой проверьте актуальные условия на сайте школы.

Наличие лицензии у школы проверяйте на сайте Рособрназдора.

18+. Материалы носят информационно-справочный характер. Хабр Карьера не гарантирует трудоустройство после прохождения курса — это зависит от усилий студента, опыта и условий рынка труда. Перед оформлением рассрочки или кредита на обучение оцените финансовые возможности и внимательно изучите условия договора.

Отзывы об онлайн-курсах по направлению Программирование и IT

Екатерина Савина
Пользователь Хабра
Достоинства: 1. Стало понятно, какая область фронтенда мне нравится больше всего и куда хочу двигаться дальше.2. Отдельные куски знаний соединились в систему.
Недостатки: Позиционируется как курс "с нуля", но это не так. Хорошо бы иметь понимание об устройстве сайтов и знать хотя бы один язык программирования. У меня была база, но часто было сложно. Курс очень объёмный, катастрофически не хватало времени на то, чтобы погрузиться в тему, максимум - поверхностно понять, если не было опыта в ней раньше.
Комментарий: Нужна хоть какая-нибудь связанная с фронтендом база или опыт в смежной области. Это не курс, который делает Миддла с нуля, как обещает.Есть смысл пройти чтобызакрыть пробелы (если есть опыт)илипонять, что вообще происходит во фронтенде (если опыта нет).
Влад Логинов
Пользователь Хабра
Достоинства: Отмечу вспомогательные сервисы, которые помогают на всём пути обучения: «Битва покемонов» — моё почтение, снимаю шляпу как говорится, такого подхода к обучению путем совмещения игры и обучения, я не встречал нигде, вот тут как раз и подходит выражение совмещать приятное с полезным! Тренажёр по Devtools — очень полезная вещь на пути к постижению знаний тестирования web Json тренажёр — так же незаменимая палочка выручалочка в познании Json Так же множество инструментов которыми пользуешься на протяжении всего курса: Miro, Яндекс. Трекер, Вики — и это лишь небольшая часть инструментов благодаря которым весь путь обучения становился максимально понятным и удобным.
Недостатки: Из всех минусов обучения пожалуй отмечу продолжительность некоторых лекций, да я понимаю что теория, она важна, но как будто бы можно было и чуть-чуть подсократить, ибо порой длинна трёх лекций в спринте достигала 5-6 часов, где приходилось несколько раз взбадриваться с помощью пары чашек кофе что бы не уснуть.
Комментарий: Если есть действительно желание связать свою жизнь с it, но не знаешь с чего начать, школа QA studio — это пожалуй самый лучший вариант!
Alex Fadeev
Пользователь
Комментарий: Всем доброго времени суток. Вот и подошел к концу курс по Asp.net и сказать, что я устал значит сказать ничего. Но усталость эта безумно приятная, т.к. поставленные перед собой задачи были выполнены и я безумно счастлив! О курсе: Курс проходит в формате видео уроков + небольшие тесты. Все по делу, без лишней воды. Так же в конце каждой недели вебинар на котором можно было обсудить все вопросы касаемые текущего задания. О кураторе: Во время первого вебинара Иосиф представил кураторов потока, так же каждый куратор рассказал немного о себе и каждому ученику предстояло выбрать себе наставника. Я выбрал Светлану и получил ровно тот спектр эмоций, которых хотел. Светлана мастер своего дела и я хочу сказать тысячу спасибо за ее проделанную работу, обратная связь по вопросам очень быстрая и все по делу, иногда было ощущение, что нахожусь на реальной работе. Код стал чище в разы, пришло понимание как надо писать код. Вообщем только позитивные эмоции. Огромное и огромное спасибо! Финал: Финал и окончание курса, Последний вебинар и чувство удовлетворения, что смог, а главное, понял как писать приложения. И конечно большое спасибо создателю курса Иосифу и его команде! Спасибо, что даете возможность стать лучше В курсе много практики, по сути мы выполняли задания как будто мы на работе. Нужно учитывать то что перед началом курса желательно хоть немного изучить ASP MVC, прям с нуля будет тяжело. Также нужно будет рассчитать время, некоторые задания не сильно затратные по времени, а некоторые прям хорошо нагружают. Также в название курса наверное стоит добавить что это ASP .NET Core MVC, так как разница точно есть.
Олег Смирнов
Пользователь
Комментарий: Огромное спасибо авторам курса! Потребовалось много месяцев для прохождения всех учебных материалов, многие из которых являются уникальными в том. что дают более глубокое понимание отдельных ИТ технологий. Просьба. дополнить курс материалами вопросов от учеников и ответов от поддержки преподавателей они закрывают выявленные пробелы в учебных материалах. Отдельное спасибо за высокую практичность курса, изучение которого давало хорошие знания ИТ и как следствие, лучшую готовность к техническим собеседованиям.
Левон Гукасов
Пользователь
Комментарий: Хорошо спланированная программа обучения, информативные видеоуроки, удобная экосистема, все понравилось.
Евгений С.
Пользователь
Комментарий: Курс дает понимание того, как Python и ИИ работают вместе в реальных проектах. Особенно понравился модуль по дообучению моделей и работе с промптами через Python. Практические задания сразу применимы в работе. Хотелось бы немного больше разбора DevOps-практик для деплоя ИИ-приложений, но основа дается хорошо. Прошёл примерно половину курса. Уже интегрировал ИИ-функционал в один из своих рабочих проектов.
Антон Б.
Пользователь
Комментарий: Обучение по FullStack-разработчик: тариф PRO превзошло ожидания: много практики, реальные проекты в портфолио и сильная поддержка кураторов. Материал структурирован логично, от базовых концепций к профессиональным инструментам. Иногда проверка домашней работы занимает чуть больше времени, чем хотелось бы, но качество обратной связи это компенсирует. Рекомендую всем, кто серьезно настроен на карьеру в разработке.
Валерия З.
Пользователь
Комментарий: Курс дает отличную практическую базу по Разработчик игр на Unity: тариф PRO. Особенно нравятся живые кейсы от практикующих разработчиков и задания, максимально приближенные к реальным рабочим задачам. Куратор дает профессиональный code review, что очень помогает расти. Хотелось бы чуть больше материала по оптимизации кода, но преподаватели всегда готовы ответить в чате. Портфолио пополняется, и уже есть первые успехи на собеседованиях. Рекомендую всем, кто хочет войти в IT-разработку.
Посмотреть все отзывы

Промокоды и акции для направления Программирование и IT

Популярные направления

Популярные курсы Программирования и IT

Бесплатные курсы Программирования и IT

Курсы Программирования и IT с трудоустройством

ТОП онлайн-курсов по Функциональному программированию

1. Kotlin: курс для начинающих + профессиональный уровень

Kotlin активно используется в Android-разработке, backend-разработке, Data Science и других сферах. В этом курсе вы изучите язык Kotlin с самого нуля, начиная с основ программирования и до профессионального уровня.
Школа: Stepik
Дата начала: В любое время
Длительность: 4 недели
Стоимость курса: 7 990 ₽
Цена без скидки: 7 990 ₽
Рассрочка: Да
Формат занятий: Онлайн
Помощь с трудоустройством: Нет
Сертификат об окончании: Да

2. Fullstack-разработчик на Node.js

Получите профессию fullstack разработчик на javascript. Научитесь создавать сайты и веб-приложения. Работайте с сервером, логикой и базой данных. Полная программа обучения с нуля до специалиста
Школа: Хекслет
Дата начала: По мере набора группы
Длительность: 16 месяцев
Стоимость курса: 161 250 ₽
Цена без скидки: 215 008 ₽
Рассрочка: Нет
Формат занятий: Онлайн
Помощь с трудоустройством: Да
Сертификат об окончании: Да

3. JVA-I-001 Java: ООП и функциональная парадигма

В данном курсе рассматриваются специфические особенности внутренних классов, статических компонентов, а также обобщенных типов (Generics) и коллекций из Java Collections Framework, которые, являясь обязательными элементами подготовки любого Java-разработчика, служат фундаментом данного учебного блока, чье внимание сосредоточено на функциональном программировании: современной парадигме решения вычислительных задач, внедренной в 8-й версии Java.

  • Внутренние классы.
  • Статические компоненты.
  • Абстрактные классы и интерфейсы.
  • Введение в дженерики.
  • Обобщенные типы и методы.
  • Java Collections Framework: List, Set, Map.
  • Введение в лямбда-выражения.
  • Функциональные интерфейсы: Function, Predicate, Consumer, Supplier.
  • Встроенные функциональные интерфейсы.
  • Введение в Stream API.
  • Нововведения в Java 9-22.
  • Модульная система (Jigsaw).
  • Локальные переменные с типом var.
  • Records и sealed classes.
  • Singleton, Factory, Builder.
  • Decorator, Observer, Strategy.
  • Adapter, Bridge, Composite.
Дата начала: По мере набора группы
Длительность: 1 неделя
Стоимость курса: 22 000 ₽
Цена без скидки: 22 000 ₽
Рассрочка: Нет
Формат занятий: Онлайн
Помощь с трудоустройством: Нет
Сертификат об окончании: Да

4. Профессия: Python-разработчик + ИИ

Научитесь программировать на языке Python, добавите сильные проекты в портфолио и станете востребованным специалистом для любой IT компании.Разберемся в синтаксисе Python, используем разные типы данных, работаем с текстовой информацией, создаем и применяем функции. Научитесь писать запросы и управлять большими объёмами данных. Станете полноценным FullStack-разработчиком. По итогу обучения вы сможете самостоятельно выбрать дальнейшую специализацию Web-разработка, Devops или Data Science.
Дата начала: По мере набора группы
Длительность: 8 месяцев
Стоимость курса: 69 984 ₽
Цена без скидки: 259 200 ₽
Рассрочка: Да
Формат занятий: Онлайн
Помощь с трудоустройством: Да
Сертификат об окончании: Да

5. Kotlin основы: ИИ-ментор 24/7 + персональный наставник

Фундаментальное изучение Kotlin с нуля до первого проекта. От переменных до собственного Telegram-бота в портфолио. 390+ практических задач с персональным код-ревью, изучение ООП, функционального программирования и работа с профессиональными инструментами. Персональный AI-ментор доступен 24/7.
Школа: AndroidSprint
Дата начала: В любое время
Длительность: 2 месяца
Стоимость курса: 39 000 ₽
Цена без скидки: 59 000 ₽
Рассрочка: Да
Формат занятий: Онлайн
Помощь с трудоустройством: Нет
Сертификат об окончании: Да

6. Функциональное программирование на языке Haskell

Курс знакомит слушателей с языком Haskell - наиболее известным чистым функциональным языком программирования. Мы изучим понятийный аппарат и методы программирования, характерные для функциональных языков, и научимся применять их, используя богатый инструментарий, предоставляемый языком Haskell.
Школа: Stepik
Дата начала: В любое время
Длительность: 1 месяц
Стоимость курса: Бесплатно
Рассрочка: Нет
Формат занятий: Онлайн
Помощь с трудоустройством: Нет
Сертификат об окончании: Да

7. WEB-024 JavaScript. Продвинутый уровень

JavaScript – сложный и зрелый язык программирования, имеющий множество неочевидных функций. Данный курс поможет слушателям получить более глубокое понимание этого популярного языка, который, на первый взгляд, кажется простым, но на самом деле довольно сложен.

  • Объект классов.
  • Дескрипторы объекта.
  • Методы объекта.
  • Наследование прототипа.
  • Символы.
  • Итераторы.
  • Генераторы.
  • Создание итерируемых объектов.
  • Асинхронные генераторы.
  • Обзор типов.
  • Номер типа.
  • Проблемы плавающей точки и округления.
  • Тип «Строка».
  • Тип Boolean.
  • Конвертация типов.
  • Map, Set, WeakMap, WeakSet.
  • BigInt.
  • ArrayBuffer.
  • Типизированные массивы.
  • DataViews.
  • Blobs.
  • FileReader.
  • Обработка загруженных файлов.
  • Асинхронные вызовы.
  • Использование в обратных вызовах.
  • Класс «Промис».
  • Обработка исключений Promise.
  • Методы all(), any(), race(), allSettled().
  • Отмена промиса с помощью Promise.race().
  • Отмена промиса с помощью AbortController.
  • Синтаксис async/await.
  • Синтаксис async/await: Обработка исключений.
  • Синтаксис async/await: await высокого уровня.
  • Синтаксис async/await: Ограничения.
  • Архитектура REST.
  • Коды состояния HTTP.
  • Методы HTTP.
  • Отсутствие сохранения состояния и масштабируемость.
  • Операции CRUD и сервисы Rest.
  • Формат возвращаемых данных: XML, JSON, XHTML.
  • Функция Fetch.
  • Fetch с возможностью отменить запрос.
  • Библиотека Axios для вызовов REST.
  • Обработка ошибок в Axios.
  • Отмена запросов в Axios.
  • Перехватчики в Axios.
  • Протокол WebSocket.
  • WebSocket в браузере.
  • WebSocket на сервере (Node.js).
  • Когда использовать WebSocket?
  • Workers.
  • Типы worker.
  • Worker APIs.
  • Регистрирующий worker.
  • Примеры использования Worker.
  • Сервисные workers.
  • Кэш API.
  • Регистрирующий Service worker.
  • Жизненный цикл Service worker.
  • Service worker как прокси сервера.
  • Стратегия Cache First (Cache Falling Back to Network).
  • Стратегия Network First (Network Falling Back to Cache).
  • Стратегия Stale-While-Revalidate.
  • Какую стратегию использовать.
  • Обновление кэша в стратегии пуш-сообщений.
  • Обновление кэша в стратегии фоновой синхронизации.
  • Функции как данные.
  • Аргументы функции и массив аргументов.
  • Функции как методы.
  • Вызов и применение методов.
  • Привязка функции к объекту.
  • Замыкания.
  • Создание инкапсулированного значения через замыкание.
  • Функция «Конструктор».
  • Функции массивов: map/filter/reduce.
  • Парадигмы программирования.
  • Декларативное и императивное программирование.
  • Функциональное программирование.
  • Высокоупорядоченные функции.
  • Чистые функции.
  • Преимущества чистых функций.
  • Неизменяемость.
  • Неизменяемость объектов: Оператор Spread.
  • Преимущества неизменяемости.
  • Immutable.js.
  • Встроенные структуры данных в Immutable.js.
  • Монады и функциональная композиция.
  • Function pipe().
  • Декомпозиция функций.
  • Монады для операций SIMD.
  • Частичное применение функции.
  • Карринг.
  • Нулевая безопасность.
  • Шаблон проектирования Null Object.
  • Монада Maybe.
  • Частично определенная функция.
  • Правила хорошего кода для написания функций.
  • Функциональные шаблоны проектирования.
  • Шаблон проектирования MVC с чистыми функциями.
  • Шаблон проектирования «наблюдатель» (observer).
  • Шаблон проектирования «порождение событий» (event sourcing).
  • Шаблон проектирования REDUX.
  • REDUX DevTools.
  • Преимущества REDUX.
  • Шаблоны проектирования в реактивном программировании (RxJS).
  • Операторы filter/map/take.
  • Операторы MergeMap/ConcatMap/SwitchMap.
  • Операторы Window/Buffer.
  • Операторы Sample/Throttle/Debounce.
  • Преимущества и примеры использования реактивного программирования.
Дата начала: По мере набора группы
Длительность: 1 неделя
Стоимость курса: 52 900 ₽
Цена без скидки: 52 900 ₽
Рассрочка: Нет
Формат занятий: Онлайн
Помощь с трудоустройством: Нет
Сертификат об окончании: Да

8. Python: навык ООП и функционального программирования

Для разработчиков, которые знают Python и хотят писать чище и масштабируемее
Дата начала: В любое время
Длительность: 1 месяц
Стоимость курса: 29 990 ₽
Цена без скидки: 59 980 ₽
Рассрочка: Да
Формат занятий: Онлайн
Помощь с трудоустройством: Нет
Сертификат об окончании: Да

9. JVA-074 Java Advanced I: функциональное, асинхронное и реактивное программирование

Погрузитесь в современные парадигмы Java: функциональное, асинхронное и реактивное программирование. Этот курс не только расширит ваше понимание Java, но и научит эффективно использовать современные подходы для создания масштабируемых и производительных приложений. Вы освоите ключевые концепции и инструменты, такие как NIO2, CompletableFuture, RxJava, Reactor, R2DBC, SSE, Spring Data reactive, WebClient, reactive WebSocket, RSocket, которые помогут вам оставаться на передовой IT-индустрии.

  • Функциональные интерфейсы.
  • Ссылки на метод.
  • Потоки данных.
  • Map / filter / reduce.
  • Агрегационные функции.
  • Reduce при параллельной и последовательной обработке.
  • Цепочки потребителей.
  • Потоковые коллекторы.
  • Использование Executors.
  • Future интерфейс.
  • Использование интерфейса Callable.
  • Отмена задач.
  • ForkJoin Framework.
  • Создание пула задач ForkJoin.
  • Параллельные потоки в Java 8+.
  • ForkJoin vs. параллельные потоки vs. последовательные потоки.
  • Основные различия между Java NIO и IO.
  • Потоково-ориентированный или буферно-ориентированный.
  • Блокирующий против неблокирующего ввода-вывода.
  • Java NIO Buffer.
  • Java NIO Channel.
  • Direct буфер.
  • Mapped file буфер.
  • Java NIO Selector.
  • Асинхронный ввод/вывод с NIO.
  • Блокировка файла.
  • Сервер NIO.
  • Архитектура сервера Netty.
  • Проблемы синхронного кода.
  • NodeJS архитектура.
  • Параллельная обработка потока данных.
  • CompletableFuture: sync и async методы.
  • Объединение (combine), составление (composing) и быстрейший побеждает (quicker wins).
  • Обработка исключений в CompletableFuture.
  • Отмена CompletableFuture.
  • Использование CompletableFuture для реального потока данных.
  • Домашняя работа. Практика (2 часа).
  • Что такое реактивность?
  • Основы RxJava: наблюдатель и наблюдаемый (Observable и Observer).
  • Реактивные потоки в Java 9 (Java Reactive Streams).
  • Методы для побочных эффектов (side effects).
  • Обработка ошибок.
  • Горячие и холодные потоки (hot/cold).
  • Разделяемые и подключаемые потоки (shared/connectable).
  • Освобождение потоков (disposing).
  • Реактивные операторы (полный каталог).
  • Subjects.
  • Распараллеливание потоков (Schedulers).
  • Противодавление (backpressure) и интерфейс Flowable.
  • Тестирование реактивных потоков.
  • Операторы Flux / Mono в Reactor.
  • Работа с backpressure в Reactor.
  • Reactor и многопоточность (Reactor Schedulers).
  • Parallel Flux потоки.
  • Оборачивание синхронных вызовов.
  • Тестирование Reactor.
  • Процессоры (Reactor processors).
  • Реактивный доступ к БД.
  • Реактивные драйверы R2DBC.
  • Spring Data - реактивные репозитории.
  • Поддержка страниц (paging) в Spring Data reactive.
  • WebFlux: функциональные контроллеры.
  • Spring REST контроллеры, возвращающие реактивные данные (Mono / Flux).
  • Spring REST контроллеры, возвращающие SSE (server-sent event).
  • WebClient: получение реактивных данных с сервера.
  • SSE и протоколы WebSocket.
  • Использование WebSocket для передачи/получения данных JSON.
  • Использование WebSocket для передачи/извлечения двоичных данных.
  • Протокол RSocket.
  • Контроллер RSocket на стороне сервера.
  • RSocket клиент: обмен JSON и двоичными данными.
  • RSocket с балансировкой нагрузки.
  • RSocket с взвешенной балансировкой нагрузки.
  • Использование реактивных потоков с брокером сообщений (RabbitMQ).
  • Spring Data MongoDB реактивные репозитории.
  • Бенчмарки: R2DBC против JDBC и WebFlux против Web MVC.
  • Архитектура и шаблоны реактивного программирования.
  • Домашняя работа. Практика (2 часа).
Дата начала: По мере набора группы
Длительность: 1 неделя
Стоимость курса: 79 500 ₽
Цена без скидки: 79 500 ₽
Рассрочка: Нет
Формат занятий: Онлайн
Помощь с трудоустройством: Нет
Сертификат об окончании: Да

10. WEB-007 Разработка на JavaScript

Изучите увлекательные подходы к разработке интерактивных веб-приложений на JavaScript, включая DOM, асинхронность и фреймворки.

  • Версии и реализации JavaScript.
  • Области применения JavaScript (браузер, сервер, мобильная разработка).
  • Типы данных: String, Number, Boolean (понятие truthy и falsy).
  • Операторы, приоритет операторов.
  • Объявление переменных: var, const, let.
  • Циклы: while, for, for … in, for … of.
  • Работа с числами и строками.
  • Значения null и undefined: отличия и цели применения.
  • Работа с консолью.
  • Исключения в JavaScript.
  • Формат JSON, примеры.
  • JSON.parse и stringify.
  • Объекты, работа с классом Object.
  • Создание объектов (с помощью литерала {}, оператор new, метод create).
  • Прототипическое наследование, ссылка proto.
  • Геттеры и сеттеры.
  • Оператор in и hasOwnProperty, понятие перечислимых свойств.
  • Метод toString(), вызов и переопределение метода.
  • Метод valueOf(), вызов и переопределение метода.
  • Создание массивов: литералы и new Array().
  • Автоматическое изменение длины массива.
  • Получение и установка длины массива length, усечение массива.
  • Применение методов join() и concat().
  • Использование метода sort, задание порядка сортировки массива.
  • Использование методов slice и splice.
  • Использование методов push, pop, shift, unshift: создание стека или очереди.
  • Применение конструктора new Date().
  • Понятие компьютерного представления даты как времени с Epoch.
  • Использование getTime() и setTime().
  • Парсинг строкового представления дат.
  • Варианты создания строк в JS: использование одинарных и двойных кавычек.
  • Интерполяция строк (строка в апострофах).
  • Экранирование специальных символов в строке.
  • Конкатенация строк, перевод в верхний и нижний регистр.
  • Поиск подстроки с помощью indexOf() и lastIndexOf().
  • Выделение подстроки с помощью substring() и substr().
  • Применение методов includes, endsWith, startsWith.
  • Управление окном браузера, документом, событиями и оформлением (CSS-стилями).
  • Объект window и его применение.
  • Подключение кода JavaScript к HTML-странице.
  • Порядок выполнения скриптов на странице.
  • Кэширование скриптов, CDN-серверы, принудительная перезагрузка JavaScript.
  • Работа с ссылками, подключение JavaScript к ссылкам.
  • Событие onload и его использование.
  • XSS-атаки на сайт.
  • Работа с DOM: использование window, document, childNodes.
  • Манипуляции документом с помощью DOM: создание, удаление, перемещение элементов.
  • Использование getElementById(), getElementsByTagName(), getElementsByClassName() для поиска элементов на странице.
  • Работа с методами и свойствами HTMLDocument и HTMLElement.
  • Понятие событийного программирования.
  • Обработчики и слушатели событий.
  • Подключение обработчиков с помощью addEventListener().
  • Свойства и методы класса Event.
  • Распространение событий вверх (bubbling) и вниз (capturing).
  • Остановка распространения.
  • События окна.
  • События мыши и клавиатуры, специальные свойства событий.
  • События формы.
  • Стандарт CSS, основные свойства CSS.
  • Общие стили и стили отдельных элементов.
  • Каскадирование стилей.
  • CSS-селекторы.
  • Изменение CSS с помощью JavaScript.
  • Отступы: margin, padding, border.
  • Управление видимостью элементов: visibility и display.
  • Позиционирование элементов: absolute, fixed, relative, установка top и left.
  • Единицы измерения px, pt и другие.
  • Переполнение элемента и управление через свойство overflow.
  • Управление слоями документа: свойство zIndex.
  • Анимация, перемещение элементов.
  • Работа с классами, установка className.
  • Работа с прозрачностью и переходами (transition).
  • Метод querySelectorAll().
  • Причины использования модулей.
  • Экспорт из модуля.
  • Импорт из модуля.
  • Реэкспорт.
  • Работа с NPM, файл package.json.
  • Папка node_modules, загрузка пакетов с помощью NPM.
  • Глобальная и локальная установка пакетов.
  • Применение webpack для сборки проекта.
  • Загрузчики CSS и TypeScript.
  • Конфигурация webpack.config.js.
  • Создание бандла, сжатие.
  • Плагины webpack.
  • Применение старых систем модульности – CommonJS и AMD.
  • Использование CommonsChunkPlugin, несколько точек входа.
  • Горячая замена модулей HMR.
  • Прототипное наследование, ссылка proto.
  • Прототип объекта.
  • Использование instanceof.
  • Ключевое слово class, создание классов.
  • Ключевое слово super.
  • Применение метода Object.assign().
  • Применение метода Object.defineProperty().
  • Геттеры и сеттеры.
  • Spread-оператор для работы с объектами и массивами.
  • Деструктурирование массива и объекта.
  • Функции как переменные.
  • Массив arguments.
  • Класс Function, методы call() и apply().
  • Метод bind(), установка this и части параметров с помощью bind.
  • Замыкания в JavaScript.
  • Инкапсуляция значений с помощью замыканий.
  • Создание функции через конструктор Function: конструирование строки.
  • Стрелочные функции, примеры их применения.
  • Функциональная манипуляция массивом: find, findIndex, filter.
  • Примеры использования map/filter/reduce для обработки данных в массиве.
  • Понятие иммутабельности, ее преимущества.
  • Мутабельные и иммутабельные методы изменения объектов и массивов.
  • Понятие и преимущества Virtual DOM.
  • Тестирование иммутабельных функций, применение Jest.
  • Мемоизация, ее преимущества.
  • Основные ошибки и рекомендации при использовании функционального программирования.
  • Паттерн MVC, создание пользовательского интерфейса.
  • Обзор основных библиотек для разработки интерфейса: Angular, React, Vue.
  • Понятие и необходимость асинхронности.
  • Работа с setTimeout, setInterval, clearTimeout.
  • Функции обратного вызова (коллбэки).
  • Потеря this при работе с функцией обратного вызова. Варианты решения (использование bind, стрелочных функций и др.).
  • Понятие промисов, возвращение Promise из асинхронной функции.
  • Метод Promise.all(), его применение.
  • Синтаксис async/await, варианты применения, ограничения.
  • Обработка внештатных ситуаций: Promise reject, обработка исключений при асинхронных вызовах.
  • Протокол HTTP.
  • Заголовки и методы HTTP (GET, POST, PUT, DELETE, другие), передача данных.
  • HTTP-серверы (обзор).
  • Коды ответа HTTP-сервера.
  • Использование форм для отправки данных.
  • Передача данных на сервер с помощью AJAX.
  • Архитектура REST: преимущества и особенности.
  • Реализация CRUD (операций Create/Read/Update/Delete) при работе с REST.
  • Применение функции fetch() для получения и отправки данных.
  • Документирование REST-сервисов с помощью Swagger.
  • Понятие HATEOAS, применение.
  • Сравнение высокоуровневой библиотеки Axios и применения низкоуровневого fetch().
  • GET- и POST-запросы в Axios.
  • Применение async/await с Axios.
  • Обработка ошибок при использовании Axios.
  • Отмена запроса с помощью Axios.
  • Протокол WebSocket.
  • Примеры использования WebSocket, сравнение с HTTP.
  • HTML-анимация.
Дата начала: По мере набора группы
Длительность: 1 неделя
Стоимость курса: 47 900 ₽
Цена без скидки: 47 900 ₽
Рассрочка: Нет
Формат занятий: Онлайн
Помощь с трудоустройством: Нет
Сертификат об окончании: Да

Рейтинг лучших школ по направлению Программирование и IT