Typeclass Consulting was born out of experience. Our foundersJulie Moronuki and Chris Martin
have seen firsthand the struggles people have learning Haskell and functional programming, all the way from learning it as a curiosity to convincing their teams that Haskell has something to offer in production to deploying services.
We’ve taught FP in person, in settings both casual and intense. We write blog post tutorials. We answer questions online. We’re writing a book.The Joy of Haskell
And in the process of teaching, we’ve learned. Now we’re applying what we’ve learned to a new course for beginner and intermediate Haskell, functional programming, and fundamental programming and math concepts.
Haskell really is different from what most programmers are accustomed to, and it relies on math concepts that are unfamiliar to most people.
This presents a great deal of novelty to the Haskell learner. It’s tempting as a teacher to confront the learner with too much of that novelty at once.
You think you can rely on programmers’ previous experience with lists, for example, a familiar data structure. However, lists in Haskell are novel in some important ways – the possibility of infinities is no small matter, and lists and the standard library’s list functions force you to confront higher-order recursive functions and nonstrict evaluation, and before you know it you’re throwing around terms like “weak head normal form.”
This doesn’t mean we need to introduce new concepts slowly. For the most part, it doesn’t even dictate a particular order in which such concepts must be grappled with.
But it does mean we will introduce concepts deliberately.
For example, we came to recognize that the problems of teaching
Monad aren’t about
Monad per se — the difficulties there lie ultimately in shallow understanding of the typeclass system and the notion of a functor. Your first introduction to typeclasses and functors should not be while you’re first encountering
What you can expect as a subscriber:
We believe that it’s important to approach Haskell from different perspectives. In addition to the structured courses, therefore, we will also provide a range of materials to supplement the courses:
If you are interested in having us come teach your team, please send a message to email@example.com.