# Resources for learning Haskell

*I'll be updating this page through out 2022* 

Haskell is a functional programming language that originated in the 1990s. Like most functional programming languages, Haskell has a reputation for being particularly challenging to learn for newcomers to this paradigm. Over the decades, it has built a legendary cult status amongst programmers. Here are some resources to help you conquer this language.

 [Functional Programming in Haskell: Supercharge Your Coding](https://www.futurelearn.com/courses/functional-programming-haskell)  - online course at FutureLearn.

Free to undertake, the FeatureLearn functional programming course is divided up into six weeks of two hours study per week. Created by the University of Glasgow - widely considered the home of Haskell - this course is equal part code exercises and part video tutorials. By the end of the course, there is an assumed knowledge of advanced mathematics that some will find intimidating.
***

[The Haskell Phrasebook](https://typeclasses.com/phrasebook) website is a "is a free quick-start Haskell guide comprised of a sequence of small annotated programs."

***

Packt Publishing online courses [Learning Haskell Programming](https://www.packtpub.com/product/learning-haskell-programming-video/9781786465542) and the 
 [Fundamentals of Practical Haskell Programming](https://www.packtpub.com/product/fundamentals-of-practical-haskell-programming-video/9781787288768) by [Hakim Cassimally](https://www.linkedin.com/in/hakim-cassimally-4144a51/) and [Richard Cook](https://blog.rcook.org/beginning-practical-haskell/) respectively.
***

[*Haskell Programming From First Principles*](https://haskellbook.com/) by [Christoph Allen](https://bitemyapp.com/) and [Julie Moronuki](https://argumatronic.com/).

At nearly 2k pages, this is currently the main book which Haskell neophytes learn from. Groups form their own study circles, such as organised by the [Berlin Functional Programming Group](https://twitter.com/berlinfpgroup?lang=en), and readers use the IRC channels #haskell and #haskell-beginners

![haskell-book-cover-825x450.jpg](https://cdn.hashnode.com/res/hashnode/image/upload/v1613483161438/6gvF8y0XL.jpeg)
***

[*Programming in Haskell*](https://www.cs.nott.ac.uk/~pszgmh/pih.html) by [Graham Hutton](http://www.cs.nott.ac.uk/~pszgmh/)

![hask.jpg](https://cdn.hashnode.com/res/hashnode/image/upload/v1613483219882/vYPAaW0_3.jpeg)
***

As well as being the author of *Programming in Haskell*, Graham Hutton is a Professor of Computer Science at the University of Nottingham. He leads the undergraduate Haskell module. During the pandemic, the university switched to online learning and [Graham uploaded his pre-recorded tutorials to YouTube](https://www.youtube.com/watch?v=rIprO6zoujM).

For an IDE, use [Visual Studio Code](https://code.visualstudio.com/) and its Haskell plugins. You will also need to  [download and install](https://www.haskell.org/platform/)  the Glasgow Haskell Compiler, Cabal build system and the Stack tool. An alternative to is to use the browser IDE, [Repl](https://repl.it/). An advantage of using Repl is it will allow you to quickly spin your Haskell code into a server environment (apparently, I haven't tried this yet).

Please leave any other recommendations in the comments.

