Haskell is an advanced, purely functional programming language. I use Haskell because of its correctness guarantees that are difficult or impossible to achieve with mainstream programming languages 1 .
My first foray into Haskell was to write fullstack web applications using Reflex-FRP, after having used Elm prior to that. Nowadays I consider it my go-to language for general application development.
- Some prefer concise learning materials; if this is you, check out the two books by Graham Hutton and Richard Bird. For a thorough and practical book, Vitaly Bragilevsky’s Haskell in Depth or Will Kurt’s Get Programming with Haskell might be of interest. Books are only a starting point (see the next two sections).
- Learning anything takes practice, and this is particularly a key for a purely functional language like Haskell. See Haskell Mentors List for progressing in learning Haskell by way of contributing to open source projects that you already enjoy using.
- Talk / Share
- Join FP Slack to chat with other Haskellers (the Slack also has rooms for other FP languages). If you prefer a forum format, rather than interactive chat, there is Haskell Discourse. If you are interested in hacking on my open source projects, join this room on Matrix (it is a part of Awesome-list-of-Haskell-mentors).
Take the red pill with Nix
Entirely optional, but if you are feeling adventurous consider getting acquainted with Nix, which in turns allows you to leverage haskell-template for instantly getting started with bootstraping Haskell projects with full IDE support in VSCode.
Graham Hutton: “My experience is that people need to be ‘ready’ to learn what a monad is. If they are ready, it’s not too difficult, but still requires quite a bit of effort - as with anything worthwhile."