Создание сервиса для агрегации вакансий ИТ-направлений
Программа курса
Познакомишься с языком Scala, узнаешь его историю и роль в разработке. Узнаешь об инструментах написания кода на Scala.
Научишься правильно использовать базовые возможности Scala и писать свои первые программы на этом языке. Разберешь основные концепции языка Scala — от переменных до ООП.
Поймешь, как писать универсальный код, который можно применять с разными типами данных. Познакомишься с основными функциями для работы с коллекциями в Scala.
Познакомишься с концепцией функционального программирования и узнаешь, чем эта концепция отличается от «классического» стиля. Освоишь базовые принципы и инструменты Scala, которые помогут писать программы в функциональной парадигме.
Сможешь задать интересующие вопросы и обсудить решение домашнего задания.
Изучишь концепцию тайпклассов и поймешь, как они применяются в Scala для предоставления полиморфизма. Освоишь несколько тайпклассов из функциональной библиотеки Cats и разберешь примеры их использования.
Реализуешь функционал для взаимодействия с базой данных и генерации SQL-запросов, используя тайпклассы и монады. Поймешь, как применять эти концепции для построения отказоустойчивого приложения.
Изучишь библиотеку ZIO, научишься контролировать побочные эффекты функций и разберешь, что такое функциональный эффект. Освоишь обработку данных в эффекте, реакцию на ошибки и предоставление зависимостей эффектам.
Узнаешь, как строится реальный проект на ZIO, изучишь библиотеки для работы с базами данных, HTTP и другими компонентами. Попробуешь написать простой сервер с их использованием.
Познакомишься с возможностями параллельных вычислений в Scala и ZIO, а также освоишь способы эффективного управления ресурсами.
Поработаешь как со стандартными инструментами параллельности и асинхронности Scala, так и с файберами ZIO, применяя их для решения классических задач разработки.
Изучишь библиотеки для написания бэкенда и получишь обзор ряда библиотек из экосистемы ZIO.
Попробуешь себя в роли кандидата. Подготовишь резюме и отработаешь самопрезентацию. Научишься грамотно отвечать на вопросы рекрутера. После собеседования получишь обратную связь от экспертов.
Учим так, чтобы был результат
Предлагаем удобный формат
Лекции проводим раз в неделю в вечернее время с 18:00 до 19:30 Екб.
Даем актуальные знания
Регулярно обновляем курс, поэтому в программе только те навыки, которые сейчас нужны рынку.
Доступно объясняем
Для нас важно, чтобы студенты разобрались даже в самых сложных темах. Поэтому на курсе будет не только теория, но и практика — для каждого урока предусмотрено домашнее задание.
Делимся экспертизой
Вести лекции и отвечать на вопросы будут разработчики Naumen, которые на практике ежедневно применяют Scala.
Что будет после прохождения курса?
При успешном завершении курса получишь Сертификат об окончании и возможность попасть на стажировку в Naumen.
Тестовое задание
1. Выбери 2-3 любых приложения, которыми ты активно пользуешься. В качестве ответа на вопрос укажи:
операционную систему, которая установлена у тебя на устройстве
название приложения
ценность этого приложения (максимум 3 предложения)
как часто ты пользуешься этим приложением
2. Для каждого выбранного приложения укажи в порядке приоритета 3-5 неудобств, которые доставляют тебе максимум дискомфорта. В качестве ответа на вопрос требуется
короткое описание неудобства/проблемы
не более трех предложений, объясняющих, почему тебя это бесит.
Примечание: наличие рекламы и платной версии приложения не может рассматриваться как проблема приложения.
3. Выбери любую (одну) из обозначенных тобой проблем и предложи свое решение. В качестве ответа на вопрос укажи:
один или более возможных вариантов решения проблемы
выбери один из них и опиши его подробно. В описании можешь использовать схемы, графики, таблицы, картинки.
4. Для любого из выбранных тобой приложений укажи 2-3 пожелания по развитию в формате User Story.
"User Story" - это классический термин из области анализа требований. Определение вы без труда найдете в интернете, если не сталкивались с ним ранее.
Наиболее часто используемый формат описания User Story: "Как, <роль/персона юзера>, я <что-то хочу получить>, <с такой-то целью>
Как будем оценивать тестовое задание? Максимально за тестовое задание можно набрать 18 баллов:
3 балла за соответствие описания приложений заданию и донесение ценности.
5 баллов за описание 3 и более проблем. Смотрим на значимость проблем, пояснение к ним, упорядоченность и оформление.
5 баллов за описание возможного решения. Смотрим насколько подробно описано решение и как оно оформлено. Балл повышают таблицы, схемы, скриншоты и прототипы решения.
3 балла за UserStory, которые соответствуют формату и отражают ценность.
2 балла за общее оформление тестового задания. 2 балла можно получить, если задание легко читать, в нем удобно ориентироваться, и видно, что автор вложил время и усилия в его оформление.
Все понятно, пойду делать!
Если у тебя появились вопросы, напиши нам на nautrainee@naumen.ru