Introduction to Haskell Crash Course

A couple of years ago, I wrote a six-hour introduction to Haskell workshop for ZuriHac 2018. The workshop was held live at ZuriHac that year, and it was ambitious in its attempts to take people from zero Haskell knowledge to seeing what a monad is.

In 2020, ZuriHac was held online, and Chris and I once again volunteered to provide an introduction to Haskell workshop for ZuriHac attendees. The online-only delivery format coupled with somewhat unpredictable internet service where we live inspired us to record the material as videos that we could watch in sync with the attendees and then chat, answer questions, and share exercise answers in the ZuriHac Discord forum. Although nothing beats being in gorgeous Rapperswil to meet people face to face and hang out by the lake, we felt that the online version of the workshop went well.

Since we had all these videos recorded, we decided to make this course permanently accessible and free to anyone interested in taking a crash course on Haskell.

Course structure

The course is divided into fifteen lessons over four sessions, which is how it was divided to fit into ZuriHac’s schedule. We have retained that basic structure, rather than combine the shorter videos into longer ones. The breaks between videos come in places where we’re hoping that you are taking time to write some code of your own and pause to ask any questions that you have before you move on. While ZuriHac was specifically set up for that chat, we would like to encourage people to still take the breaks and write answers to the exercises and seek out forums where they feel comfortable asking questions.

Each video lesson is accompanied by a full transcription of the content, so you can follow along with the entire course through video or text or make use of both formats.

While we doubt anyone realistically expects to learn a programming language fully in the span of six hours, we have tried to present the most important concepts of Haskell and how they fit together, with the goal of making Haskell more approachable from the start and more comprehensible as a whole. For those who are interested in continuing to learn Haskell, we have a course on using GHCi, as well as the Validation course or book and Functortown that will teach you more about Functor and Monad. For more free resources, there is also the Haskell Phrasebook.