четверг, 25 декабря 2014 г.

Закончил курс по haskell. Свежие впечатления.

Закончил курс
FP101x Introduction to Functional Programming
на edx.com

Определенно вхожу во вкус функциональщины всё больше и больше.

Но, я внезапно осознал, что  на примитивном уровне все эти фильтры и мапы были у меня и  в perl всегда, и я их всегда использовал.

Другое дело, что конечно, ребята наработали уже просто огромную базу. Начинаешь понимать. что тут дело на в мапах и не в high order functions — этим как раз никого не удивишь. А скорее в общем объеме. Ум за разум заходит как увидишь готовое решение со всеми этими моноидами когда закончишь лабу. А по отдельности, пока пишешь - очень даже ничего. Хороший метод декомпозиции задач.

Но я хотел написать не про собственно функциональщину, а про курс.

Оставил он смешанные чувства.

Плюсы:
  1. Очень интересный, вряд-ли его можно назвать "начальным", но мне как то в уровень попало. И не скучно и не сильно тяжело.
  2. Лекции мне понравились, все за исключением серии про монады. Чего там хотели добиться не понимаю. Явно что то перемудрили.
  3. Лабы - крутые реально, клево так придумали, что дают задание. которое ты выполняешь. что то высчитываешь и заливаешь им на проверку не саму прогу а ответ какой то зашифрованной ими функции. Типа такого:
    Крутая идея и крутая реализация, просто молодцы. И руками такое не посчитаешь - приходится прогу написать, и в тоже время никакой мороки с тестированием.
    И сами задания — интересные. Прямо хочется решить.
  4. Определенно хочется продолжать, было впечатление что окончилось внезапно. Это я считаю плюс.
Минусы: 


  1. Главный основной минус это задания послед лекций  (homework), на мой вкус — просто отвратительно. Что тестирует вот такой тест:

    В лучшем случае моё зрение. Но точно не о программировании он. Но это ягодки. Как вам такой:
    Бредятина на 10 экранов которую надо в уме распарсить и найти правильное решение из 4, а отличаются они парой символов.

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

    Это хорошо видно на графике моей успеваемости:
    Те homework где прогресс по 5% это они и есть. Меня это настолько раздражало что только из за этих заданий хотел бросить курс многократно.
  2. Jam sessions ну очень странные, я их записал в простую потерю времени. Ни идеи этого не понял, ничего полезного не вынес. Какая то ерунда.
  3. Мне не показалось что из этого курса можно что то целостное получить. Так, вариации на тему крутых хаскельных штучек, привлечь внимание.

Я так понял это первый запуск этого курса, можно простить некоторые шероховатости с заданиями ( а лучше их совсем выкинуть).

Плюсов очевидно больше чем минусов — думаю можно советовать курс всем заинтересованным функциональщиной.