10 Best F# Courses for 2024: A Functional .NET Language
Learn F#, the third highest-paying programming language with these free and paid online courses.
Here to learn F#, the functional-first counterpart of C#?
In this Best Courses Guide (BCG), I’ve searched across the web to find the best F# online course out there. While many of these courses are free, offering great value, there are also paid options that are well worth their price tag.
These courses cater to a wide range of learners — from software developers to complete beginners, and even C# / .NET developers curious about F#. If you’re coming from an Object-Oriented Programming (OOP) background, the shift to a new programming style might seem challenging. But don’t worry. These courses introduce the functional programming approach in a gentle manner, starting from an OOP perspective. Plus, you don’t even have to ditch OOP — F# is versatile, blending the best of both worlds by applying OOP or functional programming (FP) where they fit best, and sometimes even combining them.
Click on the shortcuts for more details:
Here are my top picks. Click on one to skip to the course details:
What is F#?
F# is a versatile, strongly-typed, multi-paradigm programming language that, similar to C#, runs on the .NET Common Language Runtime (CLR). But unlike C#, which emphasizes Object-Oriented Programming (OOP) by treating objects as first-class citizens, F# prioritizes functional programming (FP).
In the FP paradigm, functions are the primary building blocks. They accept inputs and return new outputs without altering the inputs (immutable states) or interacting with external data (no side effects). There are less moving parts that need to be kept track of, and as a result, less unpredictability. Thus, developers can easily construct complex logic just by chaining simple, reusable functions together.
That’s one of the many reasons why F# developers who switched from C# swear by the language— not only can you focus more on solving the problem domain by thinking less about the small details, you also write less, thanks to F#’s much more concise syntax.
Making up one-third of members of Microsoft’s .NET language suite, F# developers enjoy the full benefits of the .NET ecosystem. This includes the ability to execute F# code across various platforms (including desktop, web, cloud, and mobile) and access a wealth of libraries and toolkits via NuGet.
And unlike some other functional languages, F# is versatile and has been used extensively in industry — whatever C# can do, F# can do it even better. Financial institutions like Credit Suisse and Facebook have utilized F# to develop quantitative finance models, while in data science, Jet.com (acquired by Walmart) have leveraged F# for machine learning and data analysis tasks, and in the cloud, Microsoft uses F# in the development of its Azure cloud services.
You may worry that F# is a niche language. That’s true — less than 1% of developers use F#. But if you think that means there’s no demand for it, you’d be hilariously wrong — F# devs are the third-highest paid developers, at least according to StackOverflow 2023 Developer Survey. And with the tech giant Microsoft putting its full support behind the language, it’s safe to say that F# is here to stay for a long time.
BCG Stats
- Seven of the courses are free, while three of the courses are paid (one has a free trial).
- Around 1.2K people are following F# Courses on Class Central.
Best Free Official Text-based Crash Course for Absolute Beginners (Microsoft)
Reasons to Take |
|
Curious what programming is all about? Microsoft’s less-than-2-hours-long learning path is perfect for getting your toes wet.
Take your first steps with F# will teach you all the basic syntax and features necessary to write your very own simple applications. And while you’ll mainly learn by reading, you’ll also have the opportunity to apply what you’ve learned by completing the coding tutorials, multiple-choice quizzes, and labs provided.
The learning path is made up of five modules. You’ll earn badges, points, and trophies at the end of each module to gamify your learning experience. These modules are:
- Write your first F# code: Before you can write your first line of code, you’ll need to set up a development environment. Afterward, you’ll get your first look at the F# syntax by printing a message to a text console.
- Store and retrieve data by using F#: All programs involve receiving input, processing the input, and output the results. Here, you’ll learn how to store various kinds of data in variables.
- Manage execution flow in F#: Add logic to your programs using loops and conditional constructs. This will help you control the flow of execution in your program to make decisions.
- Create and architect with functions in F#: You’ll start creating blocks of logic called functions to help you reuse code in one or more projects. You’ll also learn how to architect and compose smaller functions into larger functions to form a data pipeline.
- Store and apply operations on list data in F#: There are three data structures you can use to represent collections of data, each with its own pros and cons, purpose, and methods. You’ll cover all of them and find which are the best for storing and manipulating sequences of data.
Provider | Microsoft |
Instructor | Jeff Fritz |
Prerequisites | None |
Workload | 1–2 hours |
Cost | Free |
Exercises | Coding tutorials, MCQs, and labs |
Certificate | Badge |
Best Free Official Video-based Crash Course for Absolute Beginners (Microsoft)
Reasons to Take |
|
Prefer watching to reading? Then pick F# for Beginners!
Produced by the official .NET YouTube channel (part of Microsoft), this free concise YouTube playlist will provide you with the tools and knowledge to successfully develop F# applications — no programming experience required.
Luis Quintanilla (the instructor) covers the same core topics as the previous official text tutorials through bite-sized video lessons and code demonstrations. The only difference is that this course covers a little bit more, specifically:
- Object-Oriented Programming: You’ll learn about classes and interfaces: the former are blueprints for creating objects that can hold data and perform actions, while the latter are contracts that specify what actions an object must be able to perform.
- Code Organization with Modules: As your application grows, you want to make sure that it’s organized well for easy reference. You’ll accomplish that with modules.
- Async Programming: You’ll perform multiple tasks at the same time instead of having to wait for one task to complete first with asynchronous programming.
You can find the code examples used in the course here: fsharp-101-samples.
Channel | dotnet |
Provider | YouTube |
Instructor | Luis Quintanilla |
Prerequisites | None |
Workload | 1–2 hours |
Views | 96K |
Cost | Free |
Exercises | Coding demos |
Certificate | None |
Best Paid Comprehensive Course for Beginners (Kit Eason)
Reasons to Take |
|
Whereas the previous two courses are meant to get your feet wet with F#, this course will push you right in from the get go. If you consider yourself computer-literate enough to be able to swim on your own, or already have some experience in other programming languages, then you’ll love F# From the Ground Up!
Kit Eason is an excellent teacher, and by the end of this paid course, you’ll have a good appreciation for F#’s basic features and you’ll be able to build command line programs from scratch for yourself. And while the course also discusses some object-oriented F# features, you’ll learn to adopt the functional way™ of programming and see just how concise yet elegant your code can be.
Provider | Udemy |
Instructor | Kit Eason |
Prerequisites | None |
Workload | 5–6 hours |
Enrollments | 2.7K |
Rating | 4.5 / 5.0 (903) |
Cost | Paid |
Exercises | Code demos |
Certificate | Paid |
Best Free University Course for Applied Functional Programming in .NET Core (The Arctic University of Norway)
Reasons to Take |
|
This university Masters-level course is the most theoretically in-depth course on F# and Functional Programming in this BCG. If you’re up to the challenge, you’ll reap great benefits from this free YouTube playlist!
INF-3910-5: Applied functional programming in .NET Core is delivered by Jonas Juselius from the Arctic University of Norway.
By the end, you’ll not only be able to brag to your friends and family that you understand what “a monad is a monoid in the category of endofunctors” means, but you’ll also be able to apply functional programming techniques such as reactive programming in your everyday work.
Here’s what you’ll learn from INF-3910-5 based on the syllabus from the course website:
- Perspective: History and development of programming languages
- Introduction to lambda calculus
- Introduction to type theory
- Introduction to functional programming in F#
- Pure functions and referential transparency
- Abstraction: Higher-order functions, partial application and currying
- Designing with types
- Patterns: Functors, applicatives and monads
- Embedded domain-specific languages: HTML combinators, parser combinators
- Functional reactive programming and the Model-View-Update architecture
- Transpiling F# to JavaScript and writing client-server HTML5 applications in F#
- Functional programming techniques in C#
Institution | The Arctic University of Norway |
Provider | YouTube |
Instructor | Jonas Juselius |
Prerequisites | Bachelor’s degree in Computer Science or similar education |
Workload | 20–21 hours |
Views | 6.8K |
Cost | Free |
Exercises | Code demos |
Certificate | None |
Best Free Crash Course for Programmers (Ben Gobeil)
Reasons to Take |
|
Transitioning to the functional way of doing things from an object-oriented perspective can be tough. Fear not, for Ben Gobeil’s F# Fundamentals Tutorial is here!
In this free 3-hour long YouTube course, you’ll cover everything you need to know about F# and functional programming to get comfortable, from the basics to the advanced. Assuming you come from an OOP background, you’ll also pick up the best FP practices so that you won’t have to unlearn bad habits.
Here are the topics you’ll cover:
- Functions: Dive into defining and using functions, understanding expressions vs statements, lambda expressions, currying, partial application, operator notations, and function composition including custom operators.
- Files, namespaces, and modules: Learn how to organize code effectively in F# through the use of files, namespaces, and modules, including the importance of ordering definitions and files, and managing access control.
- Hello World/Main function: Familiarize yourself with the structure of a basic F# program: the main function, unit type, printing to the console, and more.
- Type system: Model complex data structures with F#’s robust type system. You’ll explore product types (with a focus on record, tuple, and anonymous records) and sum types (highlighted by discriminated unions).
- Pattern Matching: Master pattern matching in F#, including using the “function” keyword and applying pattern matching with let and fun for more concise and readable code.
- Option type: Say no to Null, say yes to Option! You’ll see how F# encourages better error management by differentiating between domain errors and exceptions.
- Collections: Explore F#’s collection types (arrays, lists) and libraries, learning how to perform operations like iteration, mapping, folding, reducing, summing, and binding.
- Exception handling: A follow-up to the Option type, you’ll manage errors and exceptional cases in F# here through exception handling and results/error modeling.
Channel | Ben Gobeil |
Provider | YouTube |
Instructor | Ben Gobeil |
Prerequisites | OOP Programming experience |
Workload | 3 hours |
Views | 35K |
Likes | 849 |
Cost | Free |
Exercises | Code demos |
Certificate | None |
Best Free In-Depth Walkthrough for Programmers (Matthew Crews)
Reasons to Take |
|
Do you hate reading documentation, and would rather listen to somebody talk through the language while demonstrating with code examples? That’s what Fast F# is all about.
Matthew Crews will guide you through every essential aspect of the language through practical in-depth walkthroughs. He’s a great teacher with a knack for breaking down complex concepts. You’ll discover the best practices to achieve the most optimal performance for your application while also ensuring that your code is elegant and simple to understand.
The free YouTube playlist covers the following topics:
- F# Basics
-
-
- Numbers
- Simple data structures: Records and Anonymous Records, Structs, Discriminated Unions, and Tuples
-
- F# Functions
-
-
- Basics of functions, including defining functions, currying and closures, higher-order functions, and composition
-
- F# Collections and Data Structures
-
-
- .NET Generic Collections, Active Patterns, Arrays and Lists (Creation, Processing, Recursion, Piping), Array and List Comprehensions, Loops, Maps, Options, Sets
-
- F# OOP
-
-
- Classes and Interfaces
-
- F# Other
-
- Units of Measure and Modules
You can find all the code examples shown in the videos here.
Channel | Fast F# |
Provider | YouTube |
Instructor | Matthew Crews |
Prerequisites | Programming experience |
Workload | ≈9 hours |
Views | 6.5K |
Cost | Free |
Exercises | Code demos |
Certificate | None |
Best Paid Course for C# & .NET Developers (Pluralsight)
Reasons to Take |
|
Coming to F# from C# .NET background? F# 6 Fundamentals is just what you’re looking for!
Michael Heydt, a seasoned software developer with over 17 active Microsoft certifications in Azure and C#, will quickly help you become as productive as you were before as a .NET developer, if not even more.
By the end of this paid 8 hour long Pluralsight course with free trial, you’ll be able to focus more on solving your problem domain, rather than the details of programming, thanks to F#.
Here’s what you’ll learn:
- Configure the .NET 6 and F# 6 development environment on your PC.
- Learn F# basics: variables, data types, conditionals, functions, and loops.
- Dive deeper into functions, highlighting differences in functional vs. object-oriented programming.
- Explore data representation in F# and create functions for data manipulation, including function pipelines, composite functions, and function dependency injection.
- Understand functional modeling of data relationships using discriminated unions and options in F#.
- Discover functional approaches to working with data collections, avoiding complex imperative code.
Provider | Pluralsight |
Instructor | Michael Heydt |
Prerequisites | C# and .NET experience |
Workload | 8 hours |
Rating | 5.0 / 5.0 (25) |
Cost | Free Trial / Paid |
Exercises | Code demos |
Certificate | Paid |
Best Paid Hands-On Course for Programmers (F# Bite-sized)
Reasons to Take |
|
Are you a programmer eager to learn F#? Learning a new language, let alone a whole new paradigm, can be daunting. Luckily, F# Bite-sized aims to gently introduce beginners to Functional Programming in F# through bite-sized topics with video lectures, exercises, and quizzes.
Greatly received by the founder of F# himself, by the end of this paid course you’ll be a master of F# and its multiple supported programming paradigms.
Some of the things you’ll learn, from the basics to the more complex, include:
- Fundamentals of Functional Programming,
- How to write, use, and compose Functions
- How to define and use Record and Union Types
- How to Pattern Match
- How to work with Collections using Lists and Sequences
- How to do Async programming
- How to handles errors with Result
- How to use and create a Computation Expression
- How to write Tests
Provider | Independent |
Instructor | Almir Mesic |
Prerequisites | Programming experience |
Workload | 4–6 hours |
Cost | Paid |
Exercises | Code demos, quizzes, and exercises |
Certificate | None |
Best Free Exercise Platform (Exercism)
Reasons to Take |
|
Exercism is a free online coding platform offering autograded coding exercises on over 60 programming languages, with F# being one of them.
But that’s not the best part of Exercism. After submitting a solution, you can ping one of 160+ F# mentors to review your code. Human feedback is invaluable, especially when you’re just starting out with an unconventional language like F# and an even more unconventional paradigm like functional programming.
Exercism features two tracks — learning mode and practice mode.
- Learning: A structured way of learning by coding. You’ll need to solve simpler learning exercises to unlock harder exercises. Complete beginners should start here!
- Practice: Already know some F#? Choose any difficulty level from over 130+ exercises, be it implementing a RESTful API for tracking IOUs; spelling out any number from 0 to 999,999,999,999; or counting the scored points on a Go board.
Programmers of all levels of experience can join this platform, as exercises range from easy to challenging. Read this starters guide to Exercism first before you join, though.
Provider | Exercism |
Prerequisites | None |
Workload | N/A |
Enrollments | 10K |
Cost | Free |
Exercises | Autograded coding exercises |
Certificate | None |
Best Free Hands-On Course for Koans (Chris Marinos)
Reasons to Take |
|
Learn through testing — that’s the motto of the free Functional Koans – F# course.
This course is inspired by EdgeCase’s Ruby koans course, where a koan means a topic or teaching. When you first run the koans, you’ll encounter a runtime error and a stack trace. Your job is to make the error go away by fixing the broken code, thereby learning as you code.
The first few basic koans feature let bindings, branching statements, and loops. Then you’ll move on to functions and its associated concepts like pipelining, before moving to .NET collections, related data structures (arrays, lists, and tuples), and more.
You should have some experience with programming before taking this course.
Provider | GitHub |
Author | Chris Marinos |
Prerequisites | None |
Workload | N/A |
GitHub Stars | 1.3K |
GitHub Forks | 670 |
Cost | Free |
Exercises | Koans |
Certificate | None |
Why You Should Trust Us
Class Central, a Tripadvisor for online education, has helped 60 million learners find their next course. We’ve been combing through online education for more than a decade to aggregate a catalog of 200,000 online courses and 200,000+ reviews written by our users. And we’re online learners ourselves: combined, the Class Central team has completed over 400 online courses, including online degrees.
Best Courses Guide (BCG) Methodology
I built this ranking following the now tried-and-tested methodology used in previous BCGs (you can find them all here). It involves a three-step process:
- Research: I started by leveraging Class Central’s database and the internet. Then, I made a preliminary selection of F# courses by rating, reviews, and bookmarks.
- Evaluate: I read through reviews on Class Central, Reddit, and course providers to understand what other learners thought about each course and combined it with my own experience as a learner.
- Select: Well-made courses were picked if they presented valuable and engaging content, fit a set of criteria and be ranked according to comprehensive curriculum, affordability, release date, ratings and enrollments.