/fp-resources

A list of resources that helped me understand and learn functional programming concepts and patterns and how to use them in my day to day programming missions.

fp-resources

A list of resources that helped me understand and learn functional programming concepts and patterns and how to use them in my day to day programming missions.

Composing software

After seeing references to FP, point-free style, declarative coding and many other concepts on different platforms such as Stack Overflow, Medium, tutorials and so on; I decided it was time to dig a bit deeper into what exactly functional programming is. And the very first useful resource I found was this excellent series of Medium articles by Eric Elliot:

Composing Software: An Introduction

Eric Elliot is a well season programmer to say the least. He's contributed to software experiences for Adobe Systems, Zumba Fitness, The Wall Street Journal, ESPN, BBC, and top recording artists including Usher, Frank Ocean, Metallica, and many more.

He helped me understand core concepts of FP along with useful patterns and I think every programmer out there should give it a read.

Functional programming

Another very useful resource is this "Mostly adequate guide to functional programming" by Professor Frisby which is written in JS. One could say that JS is not quite the right choice for a functional programming guide as it's not purely functional. And this is where this guide proves that theory wrong. Most devs already know JS and using it as a learning vector makes it easier to learn.

Mostly adequate guide to functional programming

This book is super easy to read and full of jokes. Professor Frisby knows how to make difficult things a pleasure to read. He alsmo made video courses on egghead.io which are really really nice to understand FP (in JS) with more code and a bit less theory.

Ramda

As a Javascript developer, Ramda quickly popped into the thinks I'd want to learn but I could not find a way to easily get started until I found a series of posts by Randy Coulman (which is also referenced by Ramda's documentation):

Thinking in Ramda

It's amazing how made it look simple to use Ramda. Now I can hardly begin a project without using this amazing library. Think of it as Lodash or UnderscoreJS for functional programming (although Lodash exists in a FP version which is also really great!)

Elm

As I continued to read further posts about FP, I read about Elm and started reading its Documentation with interest. Seriously, if you have time ahead, don't hesitate to learn Elm as it is a fully functional language that compile to Javascript. It's incredibly fast, lightweight, easy to read and the compiler is your future best programming friend.

Elm Slack is also a really good place to read and post as the community is very helping. I wish I had more time to invest on getting experience with Elm because I think it's one of the greatest think that happened to front-end development in years.