Functional Thinking is… functional

Product: Functional Thinking by O’Reilly Digital Media
Submitted at: O’Reilly
Pros:
<div>
  Concise, Easy to understand, Accurate, Helpful examples
</div>

<div>
</div>
Best Uses:
<div>
  Intermediate, Expert, Novice, Student
</div>

<div>
</div>
Describe Yourself:
<div>
  Developer
</div>

<div>
</div>

I’ve reviewed Neal Ford’s “Functional Thinking” video series as part of O’Reilly’s bloggers program and I must say it is one of the best videos I’ve seen.

I’m familiar with functional programming techniques from other languages, but I wish I had originally learned some of the concepts from this video. For example, when Neal gives an example of currying versus partial application, I felt like any developer I know would fully understand the difference between the two (not an easy feat).

Neal covers quite a bit of ground in this video, and he does it in a way that is easy to follow and clearly understand. One of the things I liked best about this video series is how examples are given in a format of first demonstrating code in an object-oriented Java snippet followed by a transitional snippet that is somewhat more functional, then a final fully functional example in one or more functional languages.

That said, I also think this video series could have done without all of the Clojure examples. It was nice to see Groovy, Scala, and some functional Java examples. I feel like the content matter would have been a little more effective to someone unfamiliar with functional programming without the common shock of trying to discern a Lisp-style language.

I especially enjoyed Neal’s discussion about the paradigm shift from object-oriented programming to more functional programming. He is able to support this with concrete examples of functional concepts like map/fold, functional data structures, preferring composition over inheritance, and a lot more that I think any developer of any experience level would benefit from watching.

I’d recommend this video series to everyone interested in functional programming.

Related Articles