4) Б. Пирс. Типы в языках программирования (newstar.rinet.ru/~goga/tapl/) — элементарное введение в теорию типов. 5) Абельсон, Сассман. Структура и интерпретация компьютерных программ (newstar.rinet.ru/~goga/sicp/) — очень полезное введение в функциональное программирование на Scheme.
6) Журнал «Практика функционального программирования» fprog.ru — все семь номеров с отличными статьями по разным темам. 7) Bartosz Milewski. Category Theory for Programmers (PDF: github.com/hmemcpy/milews…), blog: bartoszmilewski.com
8) Мой мини-курс по соответствию Карри Ховарда: 9) Мой курс теории категорий: 10) Мой курс по Idris в ВШЭ:
Итак, история. В 2007 году в космос собрался очередной миллионер, Чарльз Симони. И его приземление (на полигоне в Казахстане) должно было быть заснято на видео и показано в эфире канала Россия. Вернее, не само приземление, а когда их из посадочной капсулы уже достанут.
С технической точки зрения задумка была в следующем. Специализированный джип, со спутниковой антенной на крыше, должен был найти капсулу первым. Найдя её, персонал должен был убедиться в том, что космонавты в порядке и помочь им вылезти из капсулы.
А после этого они должны были сделать следующее: используя спутниковую антенну, навести её на нужный геостационарный спутник, установить канал связи, и по этому каналу передать сигнал от веб-камеры в ЦУП. И эту запись, с радостыми космонавтами, должны были показать в эфире.
Хорошо, друзья, давайте двигаться дальше, а то, чувствую, дискуссии уже потихоньку превращаются в холивары... Продолжим о практике.
Один из старых мифов касательно Haskell - отсутствие инструментария для проекта и чрезвычайно скудное число библиотек. Мол, у вас там только голый компилятор, и готовых решений почти никаких, поэтому велосипедить приходится.
Справедливости ради, в прошлом так оно и было. Голый компилятор, и пара десятков библиотек (со скудной документацией и без примеров использования). Но те времена давно прошли.
Под занавес моего дежурства в @backendsecret разрешу себе воспользоваться служебным положением и поднять тему, которая волнует лично меня.
Это тема истерии вокруг блокчейнов-млокчейнов. Ох как же мне бомбит от этого, вы бы знали.
Я с 2014 года делаю публичные лекции про биткоин в частности, криптовалюты в общем, блокчейн и всё, что с этим связано. Я активно агитировал людей изучать тему (а НЕ бежать покупать биткоина), когда мы были ещё в самом начале цикла хайпа, в самом низу.
Теперь же весь мир сошёл с ума и переместился на самую вершину хайпа. Это довольно тяжёлые времена, когда профессионалам бОльшую часть времени приходится объяснять людям, что им НЕ нужен блокчейн.
Во время второй мировой войны союзники построили много своих авиабаз на удалённых островах в океане. Туземные жители видели как много вкусных ништяков приносят этим странным людям большие железные птицы и захотели сами себе того же.
Чтобы приманить больших железных птицы, они строили из говна и палок взлётные полосы, диспетчерские вышки, ходили строем и рисовали у себя на спине буквы USA. Словом, повторяли все те же самые ритуалы, что и странные новые люди, значит всё должно было сработать.
Ну, признавайтесь, кто узнал внедрение agile в большинстве фирм? :-)
Итак, как учить программистов в университете? Напоминаю, что вуз не может и не должен учить фронтендеров или бэкендеров, джавистов для Сбербанка и скалистов для Тинькофф. Основная его цель — подготовка специалистов широкого профиля, способных менять сферы деятельности.
Я буду говорить преимущественно о бакалавриате, причём применительно к отечественной системе образования. Поэтому у нас на входе абитуриенты, сдавшие ЕГЭ по информатике (если повезло) или не сдававшие его (т.е. потенциально вообще без знания программирования).
Есть удобный способ расчётов при проектировании учебных планов — кредиты. За 4 года студент должен набрать 240 кредитов (по 30 в семестр, 8 семестров). Из них 30 (в лучшем случае, может и больше) заберут разного рода гуманитарные предметы, ещё 30 уйдёт на внеучебные виды работ.
Когда-то мне подарили книгу Фридриха Шеллинга «Лекции о методе университетского образования». Каюсь, толком я её не прочитал, но тут важно само название. Есть такой метод, метод университетского образования. Сейчас попробую на эту тему порассуждать, только вброшу ещё одну мысль.
Некоторое время назад я заявил в своём твиттере @_bravit, что программистам математика не нужна. Как известно, мысль изречённая есть ложь, а уж мысль в формате твита и подавно (тогда ещё нам давали 140 символов). Обсуждение было богато как на поддержку, так и на осуждение.
Знаменитейшие фронтендеры рунета высказывались в поддержку, крупнейшие специалисты по реализации красно-чёрных деревьев из зарубежа осуждали и издевались. В общем, всё как обычно в твиттере. Тогда я не стал особенно развивать тему, но сейчас об этом можно порассуждать.