Functional Geekery Episode 41 – Eric Normand

In this episode I talk with Eric Normand. We talk about teaching ideas around functional programming, digging down into finding the motivations of why someone should care enough to want to learn something, and we end with some tips to keep in mind when teaching.

Our Guest, Eric Normand

@ericnormand on Twitter
[email protected]


Compose :: Conference will be taking place Thursday, Feb. 4th and Friday, Feb. 5 of 2016 in New York City. Compose is a conference for typed functional programmers, focused specifically on Haskell, OCaml, F#, SML, and related technologies. To find out more and to register, visit

LambdaDays 2016 will be taking place on the 18th and 19th of February in Kraków, Poland. The CFP and registration has opened, so make sure to visit to find out more. And make sure to use code FunkyGeekz4dWin to get 10% off registration.

:clojureD 2016 will be taking place on the 20th of February in Berlin, Germany. The CFP has opened, so make sure to visit to find out more.

ElixirDaze will be taking place March 4th in St. Augustine, Florida. ElixirDaze is a one day conference with a nearly full day of talks and a Helping Hack session to close it out. Visit to find out more.

Erlang Factory San Fransisco will be taking place on the 10th and 11th of March, with training on the 7th through the 9th of March and the 14th through the 16th of March. The Call for Talks is now open through December 15th, and the Very Early Bird registration is open as well.

LambdaConf will be taking place May 26th – 29th in Boulder, Colorado. The CFP is currently open, and keep an eye on to find out more.

If you have a conference related to functional programming, contact me, and I will be happy to announce it.


About Eric Normand
Eric’s previous appearance on Episode 18
Moving to smaller more frequent videos
Ruby Tapas
Elixir Sips
Eric on Giant Robots Smashing into Other Giant Robots
Eric on Ruby Rogues
The move to shorter more frequent videos and getting feedback on teaching
You can never underestimate the level you should be teaching at
Eric’s process for determining how to teach something
Teaching map, filter, and reduce
reduce as macaroni art
Finding the motivation of “why” someone should care
Count the number of mutations and see how much state you are keeping around
Composability of functions
Joel Spolsky’s Can Your Programming Language Do This?
Abstractions in common Object Oriented languages and their communities
Data modeling Students enrolling in Classes
Modeling a ManyToMany class as an object
How to start to get a “Functional Mindset”
Refactoring and Design Patterns as hooks to functional programming
Style Guides and Metrics as a way to promote functional programming
Vision of as interchange of functional languages
Call for interest in teaching other languages as part of
Notes from Eric on
Tips on teaching
Write blog posts on questions from IRC or StackOverflow
Keep breaking it down further and relate it to experience
Make it practical
“The material and transfer of it to other people should be the focus”

As always, a giant Thank You goes to David Belcher for the logo design.

One thought on “Functional Geekery Episode 41 – Eric Normand

  1. Ian Dickinson

    Just listening to this episode (I’m working my way through the back catalogue). I think that the explanation of why OO is bad about half-way through was pretty inaccurate. In particular, the analogy about how class registrations work was particularly egregious. Not only was it a poor description of the way that an experienced OO modeller would approach the problem (for example, reifying the registered-in relationship as a class would be an obvious thing to do), the proposed obvious solution of “just writing in a book” relies on mutable state!

    In general, I think it does a disservice to people coming from other languages to learn functional programming to set up straw-people arguments like “this task sucks in OO but it’s magically better in FP”. My advocacy: just focus on the positive arguments.


Leave a Reply

Your email address will not be published. Required fields are marked *