- PVSM.RU - https://www.pvsm.ru -

Основы Scala. 5 часов поедания мозгов

Добрый день, уважаемое читатели!image

В конце ноября 2013 года мы с коллегой устроили встречу, на которой провели сеанс «интенсивного введения Scala в мозг [1] добровольцев».

Выкладываю на суд общественности наше творчество и краткое описание «эксперимента».

Отказ от отвественности и Крик о помощи

Мы не являемся Scala-экспертами, но являемся практикующими специалистами.
Поэтому некоторые концепции мы можем обрисовывать неправильно.
Злого умысла в этом нет, errare humanum est [2].

Если вы видите неувязочку или уличили нас во лжи — оставьте комментарий к статье и разъясните нам, как жестко мы ошиблись. Я буду крайне за это благодарен!

TL;DR;

Все получилось. Нам понравилось. Людям понравилось. Смотрите и комментируйте.

Часть 1:Введение. Иммутабельность. «Строительные блоки». Основные типы. Иерархия классов.

Часть 2:Функции, методы. Функции как первородные объекты. Вывод типов. Замыкания. Коллекции. Циклы и for compehension. Сопоставление с образцом. Неявные конструкции.

Часть 3:Синтаксический сахар. Ленивые вычисления. Рекурсия. Streams. Монады.

Презентацию можно найти тут [3].

Отчет для представителей доLTDRной эры

Социальная часть

Итак, основной целью нашего выступления были следующие вещи:

  1. Повысить ЧСВ. Показать, что Scala не так страшна, как ее малюют.
  2. Продемонстрировать наличие крутых концепций, о которых многие вообще не думали.
  3. Задать вектор «кудаДальшеКопания».
  4. Подсадить на тяжелый наркотик Scala… ???… PROFIT!!

Проанализировав отзывы и пронаблюдав «подопытных» в естественной среде, мы пришли в к выводу, что большая часть наших целей выполнена! Ура!

Краткая примерная статистика:

  • Зарегестрировалось около 130 участников.
  • Пришло около 90 участников.
  • До конца дожило около 40 участников.
  • Письменные отзывы прямо на месте оставило 15 участников.
  • Численность участников чатика Scala.UA [4] выросла на 8 человек.

В ходе выступления мы рассмотрели практически все темы, необходимые для уровней A1, A2 и L1 из классификации скала-программистов [5].

К тому же мы испробовали интерактивный формат выступления:

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

Апарт №1

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

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

Теоретическая часть

Апарт №2

Главная проблема при рассказе про Scala — правильная структура и последовательность материала.
Мы прочитали ряд книжек, просмотрели ряд выступлений, прошли курс на курсере.

Скала сложна только потому, что при ее изучении человек утыкается в неизвестное в каждой теме, и углубляется в это неизведанное. Но стек в человеческом мозгу [1] очень даже конечен, что приводит к «переполнению мозгового стека» при изучении Scala у неподготовленных адептов.

Мы попытались структурировать материал немного иначе, чем принято его подавать, чтобы оградить людей от «концентрированных знаний» в самом начале.

Наш список основных тем выглядит примерно так:

  • Introduction
  • Immutability
  • Building blocks
  • Basic types
  • Class hierarchy
  • Functions. Methods. First-class functions
  • Type inference
  • Closures
  • Collections
  • Loops. For comprehension.
  • Pattern matching.
  • Implicits
  • Scala syntax sugar

Ряд дополнительных тем «вшит» в само выступление и разъясняется по мере того, как аудитория этих тем касается.

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

Так делать нельзя!
Вопросы про хитрые конструкции языка будут всплывать практически во всех рассматриваемых темах.
Как правильно показать и разъяснить сахар по мере выступления — вопрос открытый.


Спасибо за внимание и конструктивную критику.
Приглашаем всех желающих в наш скайп-чат: bit.ly/scalaua [4].
Будем рады как новичкам, так и экспертам. Место проживания, раса, пол, и прочие малозначительные факторы значения не имеют.

Автор: MrMig

Источник [6]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/programmirovanie/53048

Ссылки в тексте:

[1] мозг: http://www.braintools.ru

[2] errare humanum est: http://en.wiktionary.org/wiki/errare_humanum_est

[3] тут: http://www.slideshare.net/alexeymigutsky/scala-intro-27425692

[4] Scala.UA: http://bit.ly/scalaua

[5] классификации скала-программистов: http://www.scala-lang.org/old/node/8610

[6] Источник: http://habrahabr.ru/post/209532/