В конце ноября 2013 года мы с коллегой устроили встречу, на которой провели сеанс «интенсивного введения Scala в мозг добровольцев».
Выкладываю на суд общественности наше творчество и краткое описание «эксперимента».
Отказ от отвественности и Крик о помощи
Мы не являемся Scala-экспертами, но являемся практикующими специалистами.
Поэтому некоторые концепции мы можем обрисовывать неправильно.
Злого умысла в этом нет, errare humanum est.
Если вы видите неувязочку или уличили нас во лжи — оставьте комментарий к статье и разъясните нам, как жестко мы ошиблись. Я буду крайне за это благодарен!
TL;DR;
Все получилось. Нам понравилось. Людям понравилось. Смотрите и комментируйте.
Часть 1:Введение. Иммутабельность. «Строительные блоки». Основные типы. Иерархия классов.
Часть 2:Функции, методы. Функции как первородные объекты. Вывод типов. Замыкания. Коллекции. Циклы и for compehension. Сопоставление с образцом. Неявные конструкции.
Часть 3:Синтаксический сахар. Ленивые вычисления. Рекурсия. Streams. Монады.
Презентацию можно найти тут.
Отчет для представителей доLTDRной эры
Социальная часть
Итак, основной целью нашего выступления были следующие вещи:
- Повысить ЧСВ. Показать, что Scala не так страшна, как ее малюют.
- Продемонстрировать наличие крутых концепций, о которых многие вообще не думали.
- Задать вектор «кудаДальшеКопания».
- Подсадить на тяжелый наркотик Scala… ???… PROFIT!!
Проанализировав отзывы и пронаблюдав «подопытных» в естественной среде, мы пришли в к выводу, что большая часть наших целей выполнена! Ура!
Краткая примерная статистика:
- Зарегестрировалось около 130 участников.
- Пришло около 90 участников.
- До конца дожило около 40 участников.
- Письменные отзывы прямо на месте оставило 15 участников.
- Численность участников чатика Scala.UA выросла на 8 человек.
В ходе выступления мы рассмотрели практически все темы, необходимые для уровней A1, A2 и L1 из классификации скала-программистов.
К тому же мы испробовали интерактивный формат выступления:
- Любой участник задает вопрос в любой момент выступления
- Лайфкодинг, в ходе которого любой участник может предложить изменение
Вероятно, такая любовь вызвана тем, что мне нравится импровизировать и не нравится заучивать выступление.
К тому же, есть некий психологический дискомфорт, когда у человека появляется вопрос, необходимый для формирования концепции, а он не может его тут же прояснить.
Слушатель все же должен сформировать гештальт как можно быстрее.
Теоретическая часть
Мы прочитали ряд книжек, просмотрели ряд выступлений, прошли курс на курсере.
Скала сложна только потому, что при ее изучении человек утыкается в неизвестное в каждой теме, и углубляется в это неизведанное. Но стек в человеческом мозгу очень даже конечен, что приводит к «переполнению мозгового стека» при изучении 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.
Будем рады как новичкам, так и экспертам. Место проживания, раса, пол, и прочие малозначительные факторы значения не имеют.
This entry passed through the Full-Text RSS service — if this is your content and you're reading it on someone else's site, please read the FAQ at http://ift.tt/jcXqJW.
Комментариев нет:
Отправить комментарий