This was inspired by Gabriel Gonzalez's post, so you may wish to read that first.


You should be motivated to learn Haskell. Part of this is learning it for the right reasons, certainly, but another part is picking a task that Haskell is well-suited to.

For me this was monadic parser combinators. I'd done some parsing in Python before, and it was awful. Doing it in Haskell brought much clarity to the problem, and it got me excited about Haskell in general: something that was quite hard in other languages (Go, Rust, Julia, etc.) suddenly became downright easy.

Learn Deliberately

There are two components to this: one is picking new projects that help you learn. The other is not trying to learn too many new things for one project.

Over time, this approach will make you much more familiar with the Haskell landscape. I learned applicative parsers, monadic parser combinators, and recursion schemes in this way. Each of these is impossible to express in non-functional languages, so you see the benefit of learning Haskell early on.