Course Overview

What this Haskell Programming course covers, how to use it, prerequisites.

A structured, hands-on course on Haskell, the purely functional, lazily evaluated, statically typed programming language. It runs from your first expression in GHCi to types and type classes, pattern matching, recursion, higher-order functions, algebraic data types, Functor/Applicative/Monad, IO, laziness, monad transformers, parsing, concurrency and STM, advanced type-level programming (GADTs, type families, DataKinds), lenses, effect systems, Template Haskell, testing with QuickCheck, performance tuning, the FFI, web development (Servant, Yesod, IHP), and production practices.

Targets GHC 9.x (with the GHC2021/GHC2024 language editions) and the modern toolchain (GHCup, cabal, Stack, HLS). Check your version with ghc --version.

Course Overview

Beginners, developers from imperative/OOP languages, functional programming learners, PL enthusiasts, backend engineers

Basic programming familiarity helps; high-school algebra intuition helps more than prior languages

~100–120 hours (self-paced), 12–14 weeks GHCup (installs GHC, cabal, Stack, HLS), VS Code + Haskell extension (HLS), or Vim/Emacs with HLS

GHCi, play.haskell.org, Exercism Haskell track, Advent of Code, Codewars, the "Haskell MOOC" (University of Helsinki)

Foundations → Types & Classes → Functor/Applicative/Monad → Practical → Concurrency → Advanced Types → Abstractions → Production
(1–8)         (9–15)            (16–21)                     (22–28)     (29–32)       (33–40)          (41–45)        (46–53)