Как-то я уже упоминал курс "Функциональное программирование на языке Haskell". Наконец могу поделить собственными впечатлениями об этом курсе. Этот курс стоит того, что бы его пройти и сделать (или хотя бы попытаться сделать) все предложенные задания. Лучшего вводного курса по Хаскелю я не встречал. Огромное спасибо Денису Москвину (основной преподаватель) и команде за курс.

Курс состоит из 5 блоков, каждый из которых раскрывает некоторые аспекты языка: типы данных, списки, монады и т.п. Каждый блок - это набор видео уроков с заданиями где-то на 5-6 часов работы.

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

Отдельно нужно отметить количество и качество практических заданий. Их много - в среднем по 4-5 за урок. По большей части в заданиях просят написать кусок кода на Хаскеле. Сложность варьируется очень сильно (причем она даже не сильно зависит от баллов, которые назначены за задачу создателями курса). Но это, скорее, связано с особенностями функционального подхода. Порой поломать голову приходится над задачами в 1 балл больше, чем над задачей в 3 балла.

Курс определенно стоит того, чтобы потратить на него 5 недель своего времени. Хаскель может и не самый востребованный язык программирования, но без условно он оказывает огромное влияние на другие языки. Программисту стоит ознакомиться с его основами.



c