My Haskell learning

View source | View history | Atom feed for this file

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?”

In November 2020 I started regularly solving problems on Codewars. I find the combination of easy problems + answer checking + ability to see better solutions by others to be pretty addicting, but time will tell whether I continue with it.

In February 2021 I signed up for Exercism and started going through the Haskell track. I’ve found that mentor feedback makes me much more motivated to solve problems. I finished the ten core exercises during the month.