Scala-разработчик

Best Practice по Scala, подходам функционального программирования и самым мощным Scala-библиотекам

25 декабря

4 месяца

Онлайн

Пн/Ср 20:00 Мск

Где применяется Scala?

Scala создали на базе Java, но, в отличие своего «родителя», Scala получился лаконичным языком программирования. Языки не взаимоисключают друг друга: если вы пишите на Scala, можете использовать части кода на Java. На Scala разрабатывают микросервисы, инструменты для бизнес-аналитики, машинного обучения, обработки данных, а ещё – социальные сети

Для кого этот курс?

  • Для java-разработчиков с опытом от 1 года
  • Для разработчиков на других языках с опытом от 3 лет

Необходимые знания

  • опыт разработки на Java или других языках
  • опыт работы с БД (SQL или NoSQL)
  • знакомство с синтаксисом веб-приложений

Будет плюсом

  • умение работать с CompletableFuture/Promise
  • умение работать с Optional/Maybe
  • умение работать с библиотекой коллекций: для Java –Stream API; для C# – LINQ; для Rust – коллекции в Rust; для любого другого языка программирования – понимать, что такое flatMap или аналогичная операция в соответствующем языке
  • опыт работы с REST и json
При поддержке
логотип партнера
«Оцените свой уровень знаний для обучения на этом курсе» и кнопка «Пройти тест»

Что вам даст этот курс?

Вы изучите популярные технологии Scala, освоите подходы функционального программирования, а также познакомитесь с мощными библиотеками

Вы научитесь:

  • Создавать веб-сервисы с использованием стека технологий Scala
  • Использовать приёмы функционального программирования в SOLID-приложениях
  • Создавать приложения c помощью библиотеки ZIO, основываясь на функциональном подходе
  • Проектировать микросервисы на основе Akka с использованием CQRS/ES 
  • Создавать модульные тесты на основе инвариантов свойств: property-based tests

Авторская программа

Мы составили программу курса «Scala-разработчик» с учётом требований работодателей. Модули курса помогут вам погрузиться в реальные задачи enterprise-разработки

Процесс обучения

У нас нет предзаписанных уроков.
Занятия в OTUS – это онлайн-вебинары. Преподаватели-практики помогут погрузиться в теорию, обучат на реальных примерах, расскажут о необходимых в работе инструментах. Вы всегда сможете задать вопрос и получить обратную связь.
И самое главное – сможете практиковаться!

Будьте вне конкуренции

 

Scala постепенно набирает популярность: язык уже внедрили Twitter и Coursera

Учитесь у экспертов


Перенимайте опыт руководителей отделов разработки и старших программистов из крупных компаний

Дополните портфолио


Защитите собственный проект и используйте, как преимущество на собеседовании

Партнеры

  • Разместите резюме в базе OTUS: так наши партнёры смогут пригласить вас на интервью
  • Участвуйте в карьерных мероприятиях: там мы разбираемся, как составить резюме

Работодатели курса

Формат обучения

Интерактивные вебинары

 

2 онлайн-занятия по 2 академических часа в неделю, вечный доступ к обучающим материалам

Практика


Итоговая проектная работа усилит знания, а её успешная защита – откроет новые карьерные возможности

Активное комьюнити

 

Общайтесь с преподавателями на вебинарах, в закрытом телеграм-чате, при проверке домашних заданий

Программа

Cинтаксические конструкции Scala, асинхронность

В данном модуле будут рассмотрены следующие темы: - Введение в Scala - Основные языковые конструкции, синтаксис - Знакомство с функциональными особенностями языка Scala - Библиотека коллекций - Асинхронность силами стандартной библиотеки (Scala Future)

Тема 1: Обзор языковых конструкций. Интерфейсы, классы, методы

Тема 2: Обзор языковых конструкций. Интерфейсы, классы, методы. Часть 2

Тема 3: Функциональные конструкции языка scala

Тема 4: Алгебраические типы данных и сопоставление с образцом

Тема 5: Библиотека коллекций

Тема 6: Библиотека коллекций. Часть 2

Тема 7: Асинхронные операции, обработка исключений, неявные параметры

Тема 8: Асинхронные операции, обработка исключений, неявные параметры. Часть 2

Advanced Scala concepts, знакомство с концепциями функционального программирования

В данном модуле будут рассмотрены следующие темы: - Продвинутые возможности языка Scala - Типы высшего порядка - Scala implicits и type class паттерн - Начинаем знакомство с FP экосистемой Scala на примере библиотеки cats - Рассматрим основные структуры данных и type classes

Тема 1: Higher kind types, implicits, type classes. Часть 1

Тема 2: Higher kind types, implicits, type classes. Часть 2

Тема 3: Scala 3 в сравнении с Scala 2, основные изменения, обзор

Тема 4: Сats core, data types

Тема 5: Cats type classes

Функциональное программирование и эффекты в Scala. Подробное знакомство с ZIO и Cats effect

В данном модуле будут рассмотрены следующие темы: - Функциональное программирование на Scala с «эффектами» - Введем понятие функционального эффекта - Познакомимся с принципами функционального дизайна для некой предметной области - Рассмотрим такие библиотеки, как ZIO и Cats effect.

Тема 1: Введение в функциональные эффекты

Тема 2: ZIO эффект, конструкторы, базовые операции

Тема 3: ZIO модель ошибок

Тема 4: ZIO асинхронность и паралеллизм

Тема 5: ZIO работа с ресурсами

Тема 6: ZIO Environment и его место в DI

Тема 7: ZIO ZLayer, ZIO сервисы, тестирование ZIO программ

Тема 8: ZIO дополнительные типы данных

Тема 9: Cats effects: ведение, основные типы данных

Тема 10: Cats effects: работа с ресурсами

Тема 11: Cats effects: конкурентность

Scala библиотеки fs2 и http4s. Работа с БД

В данном модуле будут рассмотрены следующие темы: - Популярные библиотеки из FP экосистемы Scala - Web + Доступ к БД - Функциональные стримы на примере FS2 - Работа с http с помощью http4s - Реализация взаимодействия с БД JDBC, Scalike, Slick

Тема 1: Функциональные стримы на примере fs2

Тема 2: Введение в http4s + DSL

Тема 3: http4s middleware + аутентификация

Тема 4: http4s стриминг + работа с JSON

Тема 5: Доступ к БД

Akka и CQRS/ES с использованием Akka

В данном модуле будут рассмотрены следующие темы: - Модель акторов и ее реализация на Scala - Библиотека Akka - Событийные архитектуры - Паттерн с разделения команд и запросов (CQRS)

Тема 1: Акка

Тема 2: Обработка потоков данных

Тема 3: Событие как основной тип данных в системе

Тема 4: Разделение команд и запросов

Тема 5: Query часть CQRS

Тема 6: ES в кластере

Проектная работа

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

Тема 1: Выбор темы и организация проектной работы

Тема 2: Защита проектных работ

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

Проектная работа

 

Попробуйте себя в роли разработчика на Scala. Создайте отказоустойчивый, масштабируемый веб-сервис: REST API + backend + базы данных.

Первый этап: классическое SOLID-приложение в пять классов и с хранением данных в памяти.
Второй этап: приложение с FP-подходом (ZIO), расширенной функциональностью, простой схемой в SQL-базе данных.
Третий этап: микросервисы с отказоустойчивостью, ES на основе Akka Persistence, CQRS для сложных запросов

Преподаватели

Руководитель курса

Алексей Воронец

Naumen

Руководитель разработки департамента проектных решений и поисковых систем

4 года в Otus
252 занятия
349 студентов

Руководитель разработки департамента проектных решений и поисковых систем в компании Naumen. Опыт профессиональной разработки 14 лет. Последние 9 лет — это Scala. До этого были Java, JavaScript, когда-то знал PHP. Работал в разных странах и в разных командах. География: Беларусь, Франция, Россия Имеет опыт проектной и продуктовой разработки в B2B и B2C сегментах. Участвовал в проектировании, разработке и запуске различных проектов для Минобрнауки, Сколково, Росатома, крупных федеральных вузов. Проектировал, разрабатывал и запускал платформу RUSSIA.STUDY Сфера интересов: Scala, функциональное программирование, архитектура приложений.

Преподает на курсах

  • Apache Kafka
  • Scala-разработчик

Валентин Шилин

Deutsche Telekom IT GmbH

Старший программист/аналитик данных

3 года в Otus
206 занятий
726 студентов

Более 15 лет программирования на С++, С#, JavaScript, Python, Scala, Java. Эксперт в обработке больших данных с помощью Scala/Spark и Hadoop Cloudera. Проекты: - автоматизация документооборота для скандинавских стран в составе команды Aditro (10-15 человек); - автоматизация метеорадарной станции (программно-аппаратный комплекс управления метеорадаром MRL5) для активного воздействия на погоду (Болгария- Аргентина) (20 человек); - различные проекты от стартапов до крупных химических предприятий (Eurofins) в Германии с составом команды от 3 до 50 человек. Текущий проект: обработка сверхбольших данных DSL-метрик и прогнозирование потенциальных проблем на линиях связи в Deutsche Telekom. Образование: Прикладная математика и физика, СПбГУ ПM-ПУ Otus Certified Educator

Преподает на курсах

  • Python Developer. Professional
  • Spark Developer
  • Apache Kafka
  • Scala-разработчик

Эксперты-практики делятся опытом, разбирают кейсы студентов и дают развернутый фидбэк на домашние задания

Ближайшие мероприятия

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

Функциональные стримы в Scala на примере fs2
Валентин Шилин
На вебинаре мы:
- рассмотрим, что такое стримы и их разновидности;
- изучим конструкторы и комбинаторы fs2;
- проанализируем примеры использования стримов для обработки данных без загрузки в память.

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

В результате вебинара вы:
- поймете, что такое стримы и как они отличаются от коллекций;
- как использовать конструкторы и комбинаторы fs2 для обработки данных;
- получите примеры применения стримов в реальных задачах, что позволит оптимизировать обработку данных.
...
4 декабря в 17:00
Открытый вебинар
Эффекты в Scala
Алексей Воронец
На открытом уроке мы:
- узнаем, что такое эффекты и какие они бывают;
- познакомимся с понятием функционального эффекта;
- разберемся, какие задачи они могут решать;
- реализуем свой функциональный эффект.

Вебинар подойдет всем разработчикам, знакомым с языком Scala, или рассматривающим этот язык программирования для изучения.
...
16 декабря в 17:00
Открытый вебинар
Основы и особенности языка Scala
Алексей Воронец
Обсудим синтаксические особенности языка. Узнаем какие возможности языка позволяют комфортно использовать подходы функционального программирования. Попрактикуемся в написании функций и методов, создании иммутабельных конструкций, получим представление о возможностях композиции.

Занятие будет полезно тем, кто не знаком со Scala и только присматривается к переходу на Scala с других языков.
...
23 декабря в 17:00
Открытый вебинар

Прошедшие
мероприятия

Алексей Воронец
Открытый вебинар
Простой Web-сервис на ZIO. zio-http + zio + quill
Алексей Воронец
Открытый вебинар
Основы и особенности языка Scala
Оставьте заявку, чтобы получить доступ ко всем записям прошедших мероприятий. Записи всех мероприятий появятся в этом блоке

Корпоративное обучение для ваших сотрудников

OTUS помогает развивать высокотехнологичные команды. Почему нам удаётся это делать успешно:
  • Курсы OTUS верифицированы крупными игроками ИТ-рынка и предлагают инструменты и практики, актуальные на данный момент
  • Студенты работают в группах, могут получить консультации не только преподавателей, но и профессионального сообщества
  • OTUS проверяет знания студентов перед стартом обучения и после его завершения
  • Простой и удобный личный кабинет компании, в котором можно видеть статистику по обучению сотрудников
  • Сертификат нашего выпускника за 5 лет стал гарантом качества знаний в обществе
  • OTUS создал в IT более 120 курсов по 7 направлениям, линейка которых расширяется по 40-50 курсов в год

Отзывы

Яков Сидин

30.10.2024
Закончил курс по разработке на языке Scala от OTUS. Получил только положительные эмоции и фундаментальные знания. Начинал свой путь в IT с изучения Java. В процессе обучения в мое поле зрения попадали различные библиотеки и фреймворки, связанные с данным языком. Особое внимание, по рекомендации одного из моих преподавателей, заслужил фреймворк Akka, в основе которого лежит модель акторов. Изучая его документацию открыл для себя новый язык - Scala. В первую очередь, привлекла красота и лаконичность языка по сравнению с Java. Также открыл для себя новую концепцию - функциональное программирование. Рекурсивный подход, хвостовые рекурсии, отсутствие императивных циклов, отсутствие изменяемых переменных, каррирование - все это казалось чем-то недостижимым. Язык изучал по книгам («Профессиональное программирование Scala 3-е издание» Мартина Одерски) и бесплатным курсам. Но не хватало структуры и наставников. Нарвался на курс от компании OTUS. Сразу бросилось в глаза, что читают его преподаватели с огромным опытом в данной области. Прочитал программу обучения. В нее входило огромное количество тяжелых и интересных мне тем, относящихся к экосистеме языка. Поступил на курс. Все темы были раскрыты, домашние задания были тяжелыми, помогли закрепить полученные знания. Преподаватели достаточно оперативно все проверяли, давали развернутые комментарии, указывали на недочеты. Влюбился в ФП, но, самое главное, что вынес для себя - это то, что нужно от каждого подхода, будь то функциональный или объектно-ориентированный брать самое лучше и комбинировать их. Рассмотрели основы языка, поработали с конкурирующим кодом(Future), функциональными эффектами. Узнал про экосистему Cats и Zio. В финале курса поговорили про Akka Actors, Akka streams, принцип CQRS. За время прохождения курса, попал на свою первую работу, связанную с IT, разработчиком. Разработал конкурентную систему парсинга данных на Scala на основе акторов и Future. Курсом доволен полностью. Немного не хватило Zio и Cats. Но сами по себе эти темы очень обширны и требуют углубленного изучения. Считаю, что данный курс является одним из лучших для тех, кто хочет всеобъемлюще погрузиться в экосистему Scala, и поможет выбрать вектор для дальнейшего развития. Я же планирую развиваться в направлении Zio и пройти курс по архитектуре здесь же в OTUS. Спасибо, однозначно рекомендую!

Ярослав Зубарев

28.10.2024
Работаю в ПОА Сбербанк, блок "Технологии", на должности главного инженера по разработке. Наша команда разрабатывает проект на Scala. Поэтому причины выбора курса понятны. Прежде всего, с помощью курса я хотел структурировать свои знания о библиотеках и фреймворках, которые уже используются в нашем проекте, а также получить знания о фреймворках, которые не используются в проекте, но являются актуальными и популярными среди разработчиков на Scala и тем самым поднять свою квалификацию. Курс мне очень понравился. Два основных аспекта, которые я оценил высоко: актуальность и объем информации и, что очень важно, преподавательский талант ведущих курс преподавателей, прежде всего Алексея Воронца, который продемонстрировал умение объяснять просто (насколько это вообще возможно) сложные темы и вести лекции так, что интерес не теряется на протяжении 1,5 - 2 часов, пока идет занятие. В отношении Otus хочу отметить, что к все организовано на хорошем уровне, претензий у меня не возникало, все работало, возникающие вопросы решались оперативно. От курса я получил все, что ожидал. Можно сказать, в курс помог мне перепрыгнуть через три ступеньки в изучении Scala :). Надеюсь это поможет мне в текущей работе и мои приобретенные навыки и знания будут оценены руководством по достоинству.

Алексей Квашнин

28.10.2024
Работаю инженером данных и имею поверхностный опыт со Scala, хотел понимать лучше, т.к. сейчас у нас основные фреймворки разработки на Scala и хотелось лучше понимать этот язык разработки. Дополнительно был замотивирован, т.к. в начале года на интервью в другой отдел понял, что нужно свой уровень подтянуть. Курс выбрал в Otus, т.к. уже имел положительный опыт обучения в Otus на другом курсе. Курс очень понравился, т.к. инструкторы курсы хорошо раскрывают материал на простых примерах, что позволяет объяснить сложные вещи просто. Также хорошо подготовлены домашние задания. Из пожеланий: хотелось бы получить на курсе дополнительно больше материала по новым версиям фреймворков разработки, например ZIO2. В практическом смысле обучение помогает лучше и более уверенно ориентироваться в сложных задачах , где применяется Scala, на текущем месте работы.

Василий Сотников

25.06.2024
Работал Data Engineer’ом, в основном в банковской сфере, немного в телекоме. В целом очень нравился и нравится Scala как язык, хотелось продолжать в нем развиваться, но для этого нужно было перейти куда-то ближе к backend’у, ради чего я и записался на курс. На курсе нравится ориентированность на «работающего» ученика, разумный баланс между теорией и практикой, проработанные практические задания, где ты можешь сфокусироваться на решении проблемы, а не на настройке среды, мотивированные преподаватели. Где-то хотелось бы улучшить документацию по ДЗ, в частности, по последним заданиям, потому что там пришлось повозиться с настройкой Docker на Linux, а также собрать все практические задания в одном репозитории (их было три). Где-то за месяц-полтора до окончания курса перешел на позицию backend Scala-разработчика в «Тинькофф» (теперь - «Т-Банк»), наверное, большего от курса и не мог бы пожелать.

Антон Лыткин

29.09.2023
Напишу свой отзыв здесь в целом по курсу. Итоговой опрос уже прошел, там все детали описал. Хотел бы выразить огромную блогадрность организаторам и преподавателям Алексею Воронцу и Валентину Шилину. Курс действительно мощный, охватывает много. От части это и его минус, потому что части тем оставили вопросы, но вектор есть, куда копать понятно, иначе весь курс занял бы год, а то и больше. В целом список тем актуальный, темы раскрыты, но с разной степенью качества, тоже надо признать. Остался очень доволен темой с zio, по-другому взглянул на concurenncy, поигрался со scala 3, до этого ее вообще не видел, систематизировал для себя эффекты, монады, функторы и прочую местную экзотику. Курс однозначно пошел на пользу, апгрейднул навыки и позволил выйти за пределы стандартной скалы. Все то, за чем я шел на курс, я получил.

Денис Сладковский

25.09.2023
Отличный курс! Не только помог привести текущие знания по scala в порядок но и освоить довольно сложную, для меня тему - функциональное программирование. Большое спасибо преподавателям за работу над этим курсом)

Павел

15.12.2022
Курс понравился, ожидания оправдались. Информация подаётся в систематизированном виде. По итогу можно сказать, что прошёл основной roadmap по миру Scala, получил базис, теперь на этом базисе можно продолжать самостоятельное изучение. Преподавательский состав понравился, особенно запоминались занятия Алексея из-за чёткости и структурированности изложения материала и хорошей камеры :)

Максим Петров

09.12.2022
Обучение проходило хорошо. Курс по наполнению понравился. Но есть проблемы с подачей материала у Павкина и не много у Опольского. Павкин - мало структурности в подаче, перепрыгивает с мысли на мысль, видно что знаний много, но правильно поделиться не может. В этом отношении отличная подача материала происходит у Воронец Алексея. Но в общим знаний дали много, узнал новое и теперь собираюсь это применять в своём новом проекте.

Алексей Аносов

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

Александр Степанянц

25.12.2021
Отличный курс. Особенно понравились модули, посвященные функциональному программированию. Очень рекомендую.

Александр Грачев

29.09.2021
Курс в целом понравился лекции по ZIO, Cats - огонь. Akka Typed + CQRS также заинтересовала после лекций преподавателя. К сожалению, темы рассмотренные на курсе слишком обширны, для полного охвата. По каждой можно составить отдельный курс. Что бы я посоветовал, прошлому себе :-) , перед началом курса - сосредоточится на одной теме, слушать лекции, читать по ней статьи, прорабатывать неясные моменты и чаще спрашивать преподавателя.

Константин -OP

03.02.2021
Цель обучения была систематизировать и углубить знания по Scala для трудоустройства. До этого пытался сам изучать язык но слишком много новых концепций взрывали мозг и прогресс стопорился. Нашёл курсы по Scala от профессиональных разработчиков, что конечно же подкупило. Кроме того, понравилась ширина охвата тем и материала. По итогу, ожидания оправдались: - опытный преподаватель Семен с большим опытом разработки, бодро отвечал на все вопросы и жег большим количеством и темпом подачи материала, давал много дополнительных ссылок для изучения. - с другой стороны, для мозга не привыкшего к ФП, большое обилие функциональных концепций может быть тяжеловато, но тут каждый сам решает что ему важно. Добавить хотелось бы : большей структурированности подачи + более интересные домашки и финальный проект. Чтобы было интересно делать. Что дало обучение: усвоил базовые концепции Scala и сложил в голове более сложные темы, типа Akka и немного функциональных вещей из ZIO, cats. Отзыв писал по первому запуску курса, сейчас может уже все не так: курс переработали и сделали более продолжительным чтобы лучше уложилось в голове новые концепции. В любом случае спасибо команде Отуса и замечательным преподавателям которые очень стараются за продвижение крутых технологий, хотя, иногда ДЗ можно проверять и поживее;).

Сертификат о прохождении курса

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

После обучения:

  • получите доступ к обучающим материалам: видеозаписям всех вебинаров, презентациям к занятиям, к решениям задач и проектов в виде кода на GitHub
  • приобретёте опыт enterprise-разработки на Scala
  • дополните портфолио проектом веб-сервиса

Частые вопросы

Что, если в середине курса я не смогу продолжать обучение?
Вы можете бесплатно перейти в другую группу. Но только один раз.
Обязательно ли защищать выпускной проект?
Для получения сертификата OTUS сдавать проект необязательно (в сертификате будет отражено кол-во выполненных домашних работ). Для получения Удостоверения о повышении квалификации необходимо выполнить итоговый проект. Кроме того, проект необязательно защищать перед аудиторией, а можно сдать в чате с преподавателем.
Я могу вернуть деньги?
Да, мы можем вернуть деньги за то время, которое вы ещё не успели отучиться. Например, если курс длится пять месяцев, а вы отучились один, мы вернём деньги за оставшиеся четыре месяца.
Обязательно ли выполнять домашние задания? Кто проверяет домашние задания и итоговый проект?
Да, если вы действительно хотите повысить свои навыки программирования на Scala. На все задания развернутую обратную связь дают наши преподаватели и наставники. При желании вы можете защитить свой итоговый проект перед руководителем и преподавателями курса.
Можно ли задавать вопросы?
Да, даже нужно! Вы можете задавать преподавателю вопросы по содержанию во время онлайн-вебинара, в закрытом Telegram-чате или в чате по ДЗ. На организационные вопросы вам всегда поможет ответить коммьюнити-менеджер курса.
Насколько сложно учиться?
Курс подходит для всех, кто имеет опыт разработки на Java, Scala или других языках программирования. Для успешного прохождения обучения необходимо приложить усилия и старания, в т.ч. и при самостоятельном изучении материалов. Будьте готовы тратить на обучение и выполнение домашних заданий от 6 до 12 часов в неделю.
Какой объем практики предусмотрен на курсе?
Больше 80%. Также во время обучения вам будут доступны дополнительные источники информации, богатый список литературы и референсов для ознакомления и углубления знаний, видеозаписи всех вебинаров занятий. А наши преподаватели всегда готовы поделиться с вами самыми актуальными материалами.
Помогаете ли вы с трудоустройством после курса?
Мы проводим вебинары на тему трудоустройства в OTUS Club: разбираем резюме, способы прохождения собеседований, особенности реферальных программ при найме. Что важно: преподаватели курса занимают ведущие позиции в разных компаниях, и вы можете получить ценную рекомендацию. Поэтому будьте активны, выполняйте домашние задания, проявляйте себя
Здесь нет моего вопроса
Позвоните по номеру +7 499 938-92-02 (звонок бесплатный) или напишите на почту [email protected]: мы постараемся ответить на все ваши вопросы