Book of the Day: Functional JavaScript

Introduction #

Functional JavaScript by Michael Fogus (O'Reilly Media) is a wonderfully insightful book. It introduces functional programming concepts and shows how they work within the context of JavaScript.

The book #

JavaScript as a language supports functional programming but it’s quite possible to never use it in an intentionally functional way. In fact, many people practice an object-oriented programming approach instead. Functional JavaScript briefly explains the difference between an object-oriented approach and a functional approach to programming. Late in the book, there is also an exploration of how object-oriented programming and functional programming approaches can work together.

Rather than preach that there is only one right way to write JavaScript, Functional JavaScript broadens the toolkit that you have for solving problems with JavaScript. In fact, it teaches a way of thinking — a way of breaking problems down to their essential elements and composing abstractions out of the pieces to solve the problem.

Each chapter does a great job of building towards the next chapter while incorporating the concepts discussed in the prior chapters. All the while, Michael Fogus takes the reader through a sort of function inception as he breaks down problems and composes solutions from composable functions which themselves compose functions.

Who should read it #

Functional JavaScript is not a book for new-comers to JavaScript. The ideal reader of Functional JavaScript has a good understanding of JavaScript and wants to understand what the functional approach to JavaScript is all about. Familiarity with [Underscore.js]( ‘Underscore.js’) or LoDash is not at all necessary but I think it enhances the reading experience as a number of Underscore’s functions are explained along the way.

Verdict #

Functional JavaScript will not only teach you about functional programming, it will deepen your understanding of JavaScript, sharpen your JavaScript problem solving skills and increase your capacity for picking the right tool to solve the problem at hand.

Disclosure: I support this blog with affiliate links to the books I mention.


Now read this

Front-end development is a UX issue

Front-end development is about more than translating designs into working websites, it’s about more than “beautiful” code, and yes, its about more than technical expertise. Front-end development is about harnessing technical expertise,... Continue →