• 13 февраля 2017, понедельник
  • Москва, Берсеневская набережная, д. 6, стр. 2, 3 этаж (м. Кропоткинская) "КЛЮЧ ОКТЯБРЬ"

Курс Scala-программирования (1-я ступень)

Регистрация на событие закрыта

Извините, регистрация закрыта. Возможно, на событие уже зарегистрировалось слишком много человек, либо истек срок регистрации. Подробности Вы можете узнать у организаторов события.

Другие события организатора

2629 дней назад
с 20:00 13 февраля до 22:00 12 апреля 2017
Москва
Берсеневская набережная, д. 6, стр. 2, 3 этаж (м. Кропоткинская) "КЛЮЧ ОКТЯБРЬ"

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

Курс Basic Scala ориентирован на разработчиков с опытом программирования, желающих освоить современный язык Scala, подходящий не только для простых задач, но и для сложных распределённых систем и анализа больших данных.
 
Включает: 16 занятий по 2 часа + домашние задания. Обучение на курсе основано на практических заданиях.
 
Требования к участникам: основные знания программирования на Java, а также классических алгоритмов и коллекций. Плюсом будет опыт разработки на любом функциональном языке.

Для тех, кто захочет конвертировать полученные навыки в профессию – после окончания курса для студентов будут организованы собеседования с представителями компании Tinkoff и блокчейн-платформы Waves, которые используют Scala в своих проектах и ищут новых сотрудников в команду.

Для девушек-разработчиков предусмотрен небольшой подарок в виде скидки на обучение. Напишите нам на teachme@scala.wtf
 
РАСПИСАНИЕ
13 февраля – 12 апреля 2017 года
по понедельникам и средам
с 20:00 до 22:00
 
ПРОГРАММА
 
1 занятие. Основы Scala.
  • Знакомство с кодом. Hello world.
  • Консольный интерпретатор. Scala REPL.
  • Написание базовых выражений, создание константы и переменных.
  • Обзор импортируемых пакетов языка Scala по-умолчанию.
  • Ввод и вывод данных в консоль.
  • Условный оператор if: основы и особенности в Scala.
  • Циклы: while, do, until, for (почти цикл).
  • Функции как объекты первого класса. Простые и анонимные.
  • Классы. Создание методов и их наследование.
  • Пишем конструкторы и поля классов.
  • Переопределение методов классов.
  • Модификаторы доступа полей и методов.
  • Создаем пакет и несем в нем классы.
  • Численные типы и строки.
  • Основы SBT и Intellij IDEA.
  • Создаем SBT проект.
  • Разбираемся в структуре Scala-Sbt проекта. Файлы конфигурации сборки.
  • Пишем первую программу.
 
2 – 3 занятия. Основы Scala, продолжение.
  • Иерархия типов Scala.
  • Типаж. Их отличие от абстрактных классов class, применение с sealed.
  • Case class и его особенности.
  • Объекты-компаньоны.
  • Кортежи.
  • Обобщения типов.
  • Перечисления в Scala.
  • Исключения и их обработка.
  • Комбинируемые типы (Try, Option, Either).
  • Сопоставление с шаблоном.
  • For-включения.
  • Разные нотации вызова методов.
 

4 – 5 занятия. Все о функциях.

  • Объединение функций.
  • Определение чистых функций.
  • Каррирование функций.
  • Переменное количество аргументов у функции.
  • Частичные функции.
  • Кортежи. Их запаковка и распаковка.
  • Вызов по имени и по значению.
  • Ленивые поля.
  • Неявные функции.
  • Знакомства с границами типов.
  • Хвостовая рекурсия и ее оптимизация.

6 занятие. Все о функциях, продолжение. 
  • Классы-значения и ссылочные классы.
  • Implicits преобразования и все о них.
  • Больше примеров и интерактива.

7 занятие. Коллекции.
  • Иерархия коллекций в Scala
  • Мутабельные и иммутабельные коллекции
  • Списки
  • Массивы
  • Наборы
  • Карты
  • Вектора
  • Поток
  • Iterable, iterator или traversable
  • Вычислительная сложность Scala коллекций

8 – 10 занятия. Коллекции, продолжение.
  • Ленивое выполнение операций над элементами.
  • Операции основных интерфейсов коллекций.
  • Методы списков.
  • Еще больше методов. Собери их все!
  • Интерактивные задачи с коллекциями.
  • Создаем строки из коллекции.
  • Java коллекции в Scala: как и зачем.

11 занятие. Параллельность в Scala.
  • Конкуренция против параллелизма.
  • Обзор пакета scala.concurrent.
  • Future и контексты исполнения.
  • Promise. Обещания надо выполнять.
  • Scala-async: что и зачем.
  • Параллельные коллекции.

12 занятие. Основы Akka.
  • Актор.
  • Система акторов.
  • Акторы требуют надсмотра. Мы им поможем.
  • Прозрачность расположения и основные принципы позади Akka.
  • О чем никогда не стоит забывать.
  • Плюсы и минусы акторов.

13 занятие. JDBC в Scala. Работа с базами данных.
  • Обзор разных подходов и библиотек для взаимодействия с реляционными базами данных: Slick, Scalikejdbc, Play anorm, Doobie.
  • Их сравнение и примеры использования.

14 занятие. Основы ScalaTest и ScalaMeter.
  • Обзор доступных стилей тестов ScalaTest.
  • Пишем и разбираем примеры тестов.
  • Обзор ScalaMeter.
  • Меряем производительность кода правильно.

15 занятие. Основы Play.
  • Швейцарский нож Web разработчика.
  • Обзор возможностей Play Framework.
  • Валидация форм с Play.
  • Работа с Json в Play.
  • Помянем Anorm.
  • Встроенный кеш ответов.
  • Авторизация с OAuth.
  • Работа с WebSocket.
  • Инъекция зависимостей в Play.

16 занятие. Основы деплоя Scala приложений.
  • Сборка с помощью SBT assembly и stage.
  • Обзор возможностей sbt-native-packager.
  • Место Scala в мире разработке.
  • Где применяют Scala и зачем?
  • Разберемся, что же нам делать с этим дальше?
Место проведения: "Ключ Октябрь", Берсеневская набережная, д. 6, стр. 2, 3 этаж (м. Кропоткинская).
 

Партнеры

Регистрация

Рекомендуемые события

Организуете события? Обратите внимание на TimePad!

Профессиональная билетная система, статистика продаж 24/7, выгрузка списков участников, встроенные инструменты продвижения, личный кабинет для самостоятельного управления и еще много чего интересного.

Узнать больше