This page documents my Haskell learning.
I have been interested in Haskell for a long time but have not managed to really dive deep into it. I think I first became interested in it in 2013 or 2014. I don’t exactly remember, but what drew me to it is some combination of (1) my interest in abstract math; (2) hearing good things about functional programming and Haskell in particular; and (3) wanting to try new things in programming. I remember in late 2014 going through Learn You a Haskell (which I think I completed) and then starting on Real World Haskell (which I stopped after the first few chapters). I think I also read a bunch of blog posts and “monad tutorials” (I didn’t end up understanding monads). After that, I gave up on learning Haskell, and also become less interested in pure math.
In late 2017, I read a Quora answer by Tikhon Jelvis that mentioned Haskell Programming from first principles by Christopher Allen and Julie Moronuki. This is a book that did not exist when I first became interested in Haskell, so I was curious to see what it was like. After working through the first few chapters, I was impressed with the authors’ attention to pedagogy. Looking around, I found Christopher Allen’s post “Functional Education”, which criticizes a lot of existing Haskell tutorials including the two that I had tried. Seeing the rejection of the tutorials that I had found lacking felt validating (here is somebody who had invested a lot of time thinking hard about teaching Haskell, and he agreed with my thoughts on other Haskell learning material! I wasn’t just stupid or “mathematically immature” after all!), and I was further motivated to give Haskell another chance.
As of late December 2017, I am about half way through Haskell Programming, working on it in part of my after-work hours. It may be too early to say, but I am quite impressed with this book. It makes me think thoughts like “why can’t every subject have materials this clear?”