Я недавно (снова) взял в руки Haskell, просто для удовольствия - потому что учусь на протяжении всей жизни. Я старею, для молодежи, помимо того, что вы знаете (скорее всего, Java, JavaScript, PHP, C #, Python, Ruby), я настоятельно рекомендую выучить хотя бы:
- Системный язык, например C / C ++, Go, Rust и т. Д. (C рекомендуется, остальные вам понравятся больше).
- (Чистый) функциональный язык, обязательно порекомендую Haskell!
- Дискретная математика, только основы.
Вам не нужно полностью понимать (или покрывать) что-либо из них, не говоря уже об освоении. Запутаться - это нормально, вы в хорошей компании, в том числе и я. Это часть процесса обучения.
Они сделают вас лучшим мастером программного обеспечения, предоставив вам практический способ изучения различных парадигм программирования и формирования вашего мышления в качестве лица, решающего проблемы:
Языки приходят и уходят влево и вправо в зависимости от того, «что популярно». Технология устаревает через несколько месяцев или лет, в зависимости от того, какова технологическая кривая. (Интернет осуждает технологии каждые 6 месяцев).
Техника программирования и теория информатики всегда остаются неизменными.
- источник
В этой серии, которую я называю Pearls from Haskell (далее PFH # ‹number›), я буду выделять вещи из Haskell, от которых у меня мурашки по коже :)
Что касается пункта 1, я начну с понимания списка. Что впечатляет в LC в Haskell, так это то, что он так похож на то, что вы находите в своей дискретной математике.
Например:
В Haskell это приведет к следующему:
Ищите PFH # 2, дай Бог :)
PS. Вы хотите, чтобы мы подружились и изучали нас Haskell вместе, отправьте мне запрос, добавив +1 к этой проблеме Github здесь.