Learning Functional Programming - A Roadmap

This is a learning roadmap for Functional Programming (FP). There are quite a lot of resources to learn FP on the web (just like on any subject). So the challenge is not to find a resource to learn, but to find quality resources. This post is an attempt to compile those (obviously based on what helped me, and might be subjective to some extent).

Starting Point

What you pick first is often important since unlearning is more difficult than learning. So start with the best - SICP. The course videos as well as the book are freely available online.

Other excellent courses

This can be followed up with some other good courses available online (at the time of writing):

Short bytes

If you are looking for short insights into why FP is important or some key aspects of it, following videos are recommended:

Thinking functionally

After you learn the basics, the most important skill needed is to think functionally. The best way to grok that is to get your hands dirty - do the exercises, apply it on the next programming task you do, etc.

Following are some good books which will deepen your knowledge on FP:

Developing purely functional data structures is another art to master. Okasaki's Purely Functional Data Structures is still the best resource in this area. This post highlights some of the other functional data structures.

Interesting Papers

Summing up

These are just some pointers that came to my mind. If I missed anything important please let me know.

I hope this helps you in your functional programming journey!