Haskell - Best book, course or tutorial recommendation please

Never done Haskell but know many popular languages.

Thanks guys!


I started learning Haskell with wikibook.



Best Haskell book known to man. Also available online for free


http://haskellbook.com/ - by far the best, IMHO, worth every penny.


I concur, I originally tried to get into learn you a haskell a couple years back but past the fun drawings it left a lot to be wanted for solid explanations. The Haskell Book which Martin linked costs a bit, but it’s really worth it.

1 Like

Just bought that one (i.e. haskellbook.com) tonight based on the advice here. Very good so far.

Haskell Programming from First Principles

Hands down the best


1 Like

Has anyone tried all three books and has an opinion about the differences btw them?

Learnyouahaskell seems intuitive, but I read the reviews that it isn’t in-depth enough.

Haskellbook looks like comprehensive but I am not sure I can follow the authors who might use Haskell specific concepts early on.

Haskell from the first principles looks thorough but again the reviews say the chapters leave out a lot of depth till later… in some form of a cliff hanger.

Also what operating system would you recommend for Haskell programming?

I want to be able to install and start working on exercises without spending too much on configuring my IDE.

Finally, where can I find projects where I can contribute as a junior Haskell developer?

1 Like


  1. If you a Masochist, use Linux,
  2. if you an extreme Masochist, use Windows,
  3. if you just want a hassle-free env use macOS.
    with Visual Studio Code with Haskell Syntax Highlighting, hoogle-vscode
    , Haskero extension (Max 3 mins install setup)

I used Linux (hardcore) for more than 15yrs after I switched completely to MacOS (BSD based UNIX), but sometimes still nostalgic with Linux. I used still have to use Windows (at work).
Also, I had experience with a lot of IDEs and editors, from Netbeans, Eclipse, Monodevelop, JetBeans (for C/C++ C# Python, Java), Microsoft VisualStudio, Androind Studio, Xcode, Atom, vi, ed, Emacs etc. But, I would say VSCode is the one of the bests and more importantly easiest to use.


Guess I am a masochist. Would love to use Mac but hate the thought of having two different computers.

Everything that I do on Windows takes 2x more time so Linux it is!

That command line wizardry is pretty awesome too!

Will need to buy that Linux bible and get busy learning the tools of the trade.

I use sublime as my editor for python. It has served me well so far. Hope I can configure it to work with Haskell.

Sublime is good, but VSCode’s plugin/extension system is unbeatable, you can use it almost for any languages, but of course, it’s always a personal preference.

If you really want to deep dive into the UNIX/Linux world, you have to read the best book ever, the Unix Operating Evnironment from Brian W. Kernighan. It will teach you through pipes, filters, regex, ed editor (predecessor of sed and vi/vim) and lot of really deep stuffs.
But, to understand UNIX/Linux you need to understand networks (LAN, WAN etc) too and to understand them, the best books are the Andrew Tanenbaum’s Computer Networks book (1st edition /w 7 OSI Layer or the latest /w TPC/IP hybrid layer) and the TCP/IP illustrated series.

They’re all on my bookshelf with some others for decades now.


Thanks for these recommendations. You guys are a big part of why I love Cardano. It’s by far the best community. I have learned a lot from all of you.

Well, I learned Haskell through the already mentioned book “Learn you a Haskell for Great Good”, I think it’s okay especially if as you say, you already know other programming languages, but don’t expect to be proficient in Haskell by finishing this book, I think of it more like an introduction and a high level overview of the language. One thing that this book lacks are exercises, and I think they are necessary specially for someone that never has approached pure functional programming (let alone functional programming), for this I recommend to accompany the book with the CIS 194 course lectures and exercises, these will make the learning experience more fun:


And if you want more exercises you can find the data61’s fp-course repo on github, there’s a guy in YouTube (Brian McKenna) that goes through most of those exercises.

Now, on the haskell book “programming from first principles” it’s very good in the sense that all in there is explained bit by bit, it’s like a bible, if you’re serious about Haskell and don’t know anything about it then get it, it’s pricey but worth it. However I would say is more like a reference book, for example I didn’t get monad transformers until I read those chapters in the book, and there are others that I just skipped since there’s too much detail that once you finish LYAHFGG and the course I linked to, you sincerely don’t need.

Finally, if you not only are new to Haskell but to programming in general, there’s the book “Haskell: The Craft of Functional Programming by Simon Thompson” which by the way Simon Thopmson is the designer of Marlowe :grinning:, I believe this is good for beginners, I did not go through all of the book because it seemed to basic at the time (I had already finished the course and all that).

The next stop to step up your game is Real World Haskell, a little old but very good, but I don’t think this is needed to develop Plutus smart contracts, only if you want to make a living writing Haskell, honestly is not a difficult book, it’s very practical and uses Haskell to do real world stuff (go figure) but because of this it doesn’t dive in details about the functional programming constructs that other books (like LYAHFGG) go through. It’s available free online, you can try it, if it’s too much then take one of the others.

Good luck!


Quick question: is VSCode available on Linux?

Want to give it a try.


1 Like

If you haven’t come across the Path to Plutus YouTube channel, please do check it out for a Haskell tutorial series: http://bit.ly/2UOs5KY. It is based on the book learn you a Haskell for great good and aimed at beginners but with my own twist! The aim is for it to be an enabler for learning Plutus. If you guys like it, do subscribe and let as many people know about it as possible - it’s much appreciated. The next video in the series will be released soon and will look into Haskell’s type system.

1 Like