Teaching Functional Programming to Professional .NET Developers
Draft - Work in progress
Functional programming is often taught at universities to first-year or second-year students and most of the teaching materials have been written for this audience. With the recent rise of functional programming in the industry, it becomes important to teach functional concepts to professional developers with deep knowledge of other paradigms, most importantly object-oriented.
We present our experience with teaching functional programming and F# to experienced .NET developers through a book Real-World Functional Programming and commercially offered F# trainings. The most important novelty in our approach is the use of C# for relating functional F# with object-oriented C# and for introducing some of the functional concepts.
By presenting principles such as immutability, higher-order functions and functional types from a different perspective, we are able to build on existing knowledge of professional developers. This contrasts with a common approach that asks students to forget everything they know about programming and think completely differently. We believe that our observations are relevant for train¬ings designed for practitioners, but perhaps also for students who explore functional relatively late in the curriculum.
Draft and more information
- Download the draft (PDF)
- The Real World Functional Programming book by Manning
- The F# professional training offered by SkillsMatter