8 Best F# Courses to Take in 2023
Learn how to program with the best F# online courses (including free ones) for beginners and also for more experienced developers.
In this guide, I’ve picked the best online courses to learn F# (F sharp), an open-source, cross-platform programming language. Just like its brother C#, it is part of Microsoft’s .NET tech stack and has been used extensively enterprise-wide. What makes F# special is its emphasis on functional-programming, though it does support object-oriented programming. The language is popular among data scientists and machine learning researchers.
Here are my top picks. Click on one to skip to the course details:
Course | Workload | In Brief |
1. Take your first steps with F# (Microsoft) | 2 hours | Best F# course for programming beginners |
2. F# for Beginners (dotnet) | 1–2 hours | Best concise F# course |
3. F# From the Ground Up (Kit Eason) | 5–6 hours | Best comprehensive F# course for beginners and experienced programmers |
4. F# Fundamentals Tutorial (Ben Gobeil) | 3 hours | Alternative to 1, also for beginners but video-based |
5. Functional Koans – F# (Chris Marinos) | N/A | Best interactive hands-on F# course |
6. F# Workshop (fsharpworkshop.com) | N/A | Best slide-based F# course |
7. F# (Exercism) | N/A | Best for learning by practicing F# coding |
8. F# 6 Fundamentals (Pluralsight) | 8 hours | Best for C# developers |
What is F#?
F# is a general purpose, strongly typed, multi-paradigm programming language. F# normally targets the .NET CLR like C#, but unlike C#, F# has less of an emphasis on object-oriented programming, and more of an emphasis on functional programming. It makes writing correct code simple, and checking correctness of code simpler.
As F# is part of Microsoft’s .NET language stack, programmers using F# can benefit from the entire .NET ecosystem. That means being able to run F# code cross-platform (desktop, web, cloud, mobile, and others) while also having access to the many libraries and toolkits available on NuGet.
Unlike some other functional languages, F# is enterprise-ready and has been used extensively in industry — what C# can do, F# can also do it. It is used for quantitative finance programming by Facebook, machine learning research by Walmart, and a host of other uses from other companies. Indeed, its use in AI research is also the reason why F# is popular among data scientists.
Best Courses Guides Methodology
I built this ranking following the now tried-and-tested methodology used in previous Best Courses Guides (you can find them all here). It involves a three-step process:
- Research: I started by leveraging Class Central’s database with 100K online courses and 200K+ reviews. Then, I made a preliminary selection of F# Courses 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 and they have to fit in a set of criteria and be ranked accordingly: comprehensive curriculum, affordability, release date, ratings and enrollments.
Course Ranking Statistics
Here are some aggregate stats about the ranking:
- All of the courses in this ranking except for one are free or free-to-audit.
- Half of the courses are beginner-friendly (no programming experience required) while the other half are for intermediates (have some programming experience).
- Around 500 people are following F# Courses on Class Central.
Without further ado, let’s go through the top picks.
1. Take your first steps with F# (Microsoft)
My #1 pick for the best F# course is Microsoft’s Take your first steps with F# learning path.
In this course with free certification, you’ll learn the basic syntax and features of the language to be ready to start creating your own F# programs.
No prior knowledge of programming is required to take this course.
What You’ll Learn
The first module begins by teaching you how to write your first F# application. You’ll set up a development environment, write your first app, and then run it in the console.
Next, you’ll learn how to do some basic input and output, and store that information in variables. You’ll also take note of the kinds of data types a variable may have.
Then, you’ll learn how to add logic to your programs using logic and conditional constructs. This is useful for managing the flow of execution to have your programs make decisions.
Functions make up functional programming — it’s literally in the name! 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 use function patterns to build your own data pipelines.
In the final module of the course, you’ll cover collections and lists, which help you store and manipulate large sets of data.
How You’ll Learn
This course is 2 hours long. You’ll learn by reading the articles and completing the coding tutorials, multiple-choice quizzes, and labs provided. You’ll get badges, points, and trophies for completing the courses.
Provider | Microsoft |
Instructor | Jeff Fritz |
Level | Beginner |
Workload | 2 hours |
Certificate | Free |
Fun Facts
- Microsoft Learn is a free, online training platform that provides interactive learning for Microsoft products and programming languages, like C++, C#, Python, and TypeScript.
If you’re interested in this course, you can find more information about the course and how to enroll here.
2. F# for Beginners (dotnet)
My 2nd pick for the best F# course is F# for Beginners by the official dotnet YouTube channel.
This free concise course provides you with the tools and knowledge to help you be successful as you start developing F# applications — no programming experience required!
What You’ll Learn
You’ll begin the course with an introduction to the F# programming language and why you should consider it as you build your next application.
After setting up your development environment, you’ll learn how F# represents values, what immutability means, and how you can build reusable components of code using functions. You’ll see how bigger functions can be built from smaller functions and group data can be represented with data types like records and classes.
Chances are that you don’t just have a single instance of data, but multiple. Worry not, we have collections! You’ll create them and utilize some of their built-in functionality to process and transform your data.
As you process your data, there’s going to be special cases and certain behavior that you’re going to want to handle differently. For those scenarios, you can use things like pattern matching to have the compiler enforce correctness in your code.
Now, as your application grows, you want to make sure that it’s organized and that it performs well. You’ll take a look at modules and see how you can use them to organize your code into cohesive units. Finally, the course discusses async programming and they can be used to create scalable applications.
How You’ll Learn
This course is 1–2 hours long. You’ll learn by watching the lecture videos and following along with the instructor as he codes throughout the course.
Channel | dotnet |
Provider | YouTube |
Instructor | Luis Quintanilla |
Level | Beginner |
Workload | 1–2 hours |
Enrollments | 43K |
Certificate | None |
Fun Facts
- Luis Quintanilla is a Program Manager at Microsoft. He is currently working on Machine Learning for .NET.
- This course is best paired with the first pick in this ranking.
If you’re interested in this course, you can find more information about the course and how to enroll here.
3. F# From the Ground Up (Kit Eason)
F# From the Ground Up is an amazing introduction to the F# language for both beginner software developers and experienced software developers. 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.
Some prior coding experience is helpful but not a requirement for this course.
What You’ll Learn
You’ll begin the course by setting up your environment in VSCode, a local code editor, and installing .NET, a software framework. Then, you’ll work on creating, building and running a program in your terminal. Basic programming concepts like declaring values and functions, working with arrays, lists, and other collections, conditional branching and looping, and object-oriented programming will be discussed.
The next few topics cover concepts unique to F# and functional programming. For example, you’ll learn about forward piping, record types, higher-order functions, generics, and lambda expressions. You’ll finally wrap up the course with suggestions for your next steps with F#.
How You’ll Learn
This course is 5–6 hours long. You’ll learn by watching the lecture videos and by completing the coding exercises where you’ll have to fill in the expected changes.
Provider | Udemy |
Instructor | Kit Eason |
Level | Beginners |
Workload | 5–6 hours |
Enrollments | 2.7K |
Rating | 4.4 / 5.0 (705) |
Certificate | Paid |
Fun Facts
- Kit is a software developer with several decades experience working in the railway industry. He works primarily in F#, but also has C#, JavaScript, TypeScript and many other languages in his toolbelt.
- He has also written a practical guide to F# called Stylish F# 6.
If you’re interested in this course, you can find more information about the course and how to enroll here.
4. F# Fundamentals Tutorial (Ben Gobeil)
Ben Gobeil’s F# Fundamentals Tutorial is an amazing free course that goes over the basics of F# and functional programming. You’ll move slowly, taking your time to digest the information from the easy topics all the way to more advanced concepts.
You should know one object-oriented programming language prior to taking this course.
What You’ll Learn
After setting up your development environment, you’ll start learning the foundational concepts of F# starting with bindings that associate values with a variable. Then, you’ll learn how to write and modify functions, but careful: functions in F# behave a little differently from functions in other paradigms!
F# has a rich type system. You’ll learn about products, records, tuples, sums, and most importantly, discriminated unions. You’ll also know what it means by lazy evaluation and how pattern-matching allows you to extract data from data structures with ease.
The final few sections of the course discusses collections. You’ll be acquainted with arrays and lists along with their methods. You’ll also incorporate recursion into your code, handle exceptions, and learn how to model errors with the result type.
How You’ll Learn
This course is 3 hours long. You’ll learn by watching the lecture video and following along with the instructor as he demos his codes.
Channel | Ben Gobeil |
Provider | YouTube |
Level | Beginner |
Workload | 3 hours |
Views | 27K |
Likes | 714 |
Certificate | None |
Fun Facts
- Ben is a Full Stack Blockchain Developer at Arkitoken Inc. His channel focuses on transitioning to a functional programming paradigm from an object-oriented perspective.
- He also offers F# consulting on his website here.
If you’re interested in this course, you can find more information about the course and how to enroll here.
5. Functional Koans – F# (Chris Marinos)
Learn through testing — that’s the motto of the free Functional Koans – F# course.
When you first run the koans, you’ll be presented with a runtime error and a stack trace indicating where the error occurred. Your goal is to make the error go away. As you fix each error, you should learn something about the F# language and functional programming in general.
You should have some experience with programming before taking this course.
What You’ll Learn
You’ll begin the course with the let binding, branching statements, and loops as the basics. Then you’ll move on to functions and its associated concepts like pipelining, before moving on to other concepts like .NET collections and related data structures (arrays, lists, and tuples) along with asserts, discriminated unions, record and options types, and more.
How You’ll Learn
This course consists of 23 exercises. You’ll learn by completing all of them gradually to practice your coding skills.
Provider | GitHub |
Instructor | Chris Marinos |
Level | Beginner |
Workload | N/A |
Certificate | None |
Fun Facts
- You can run this course completely online on GitHub Codespaces if you’ve signed up for the beta.
- This course was inspired by EdgeCase’s Ruby koans course.
If you’re interested in this course, you can find more information about the course and how to enroll here.
6. F# Workshop (fsharpworkshop.com)
F# Workshop combines theory and practice to help you learn the basics of F# and Functional Programming. By the end of this free course, you’ll have a solid grasp of functional programming with F#.
The prerequisite for this course is having prior programming experience.
What You’ll Learn
In the first module, you’ll learn how to write a simple F# expression. Most notably, you’ll learn that F# uses bindings and not assignments. This means that statements such as x = x + 1
are illegal. Then, you’ll learn how to work with functions, making sure that you’ve structured them properly, before learning how to use tuples and records.
The next module introduces you to high-order functions — passing functions into functions. You’ll learn how and when to use them. Don’t confuse them with pipelining though, where you pass the results of a function to another function. You’ll also learn about other funky function behaviors like partial application and composition.
In the third and fourth module, you’ll discuss the more advanced concepts in F# programming. Some of them include options, pattern-matching, discriminated unions, and units of measure (very handy!). Finally, you’ll end the course with functional lists, type providers, and also a bit of F# object-oriented programming.
How You’ll Learn
This course is split into 4 modules, each of them containing a presentation (theory) and one exercise (practice). You’ll learn by reading through the slides and working on the exercises.
Website | fsharpworkshop.com |
Instructor | Jorge Fioranelli |
Level | Beginner |
Certificate | None |
Fun Facts
- Jorge works as Director of Engineering at Jet.com and is very passionate about F#, Domain-Driven Design and Distributed Architectures. He is a regular speaker, co-founder of the F# Sydney user group and frequently runs workshops to introduce F# to developers.
If you’re interested in this course, you can find more information about the course and how to enroll here.
7. F# (Exercism)
Exercism is a free online coding platform that provides tons of coding exercises with instant automated feedback for you to practice and learn from.
The platform allows you to request personal mentoring for certain exercises for free. What this means is that if you want your code for a specific problem checked, you can get a mentor proficient in F# to look over your work and give you feedback on how to improve your code. That to me is the best feature about this platform!
Programmers of all levels of experience can join this platform, as exercises range from easy to challenging.
What You’ll Learn
There are two sections to this course: learning mode and practice mode.
In learning mode, you are required to solve learning exercises to unlock other exercises. This ensures that the difficulty level of exercises is not too high for you. They are pretty simple, some of them teaching you concepts like dates, discriminated union types, and arrays.
Meanwhile in practice mode where all exercises are unlocked from the get go, you’ll be presented with exercises of three different difficulties: easy, medium, and hard.
For easy exercises, you’ll be tasked to write simple programs like managing a player’s high score, calculating the number of grains of wheat on a chessboard, and computing the scrabble score for a word.
Medium difficulty exercise will have you count the frequency of letters in texts using parallel computation, implementing a RESTful API for tracking IOUs, and creating simple shift ciphers.
Finally, the hard exercises include printing a diamond starting with ‘A’ while having a desired supplied letter at the widest point, spell out any number from 0 to 999,999,999,999, and counting the scored points on a Go board.
How You’ll Learn
This course is self-paced, so you can take all the time you need to complete the 130+ hands-on programming exercises. Each exercise comes with automatic analysis of your code as well as an opportunity to request personal mentoring to help you better understand your code’s strengths and flaws.
Provider | Exercism |
Level | All levels |
Workload | N/A |
Enrollments | 8K |
Certificate | None |
Fun Facts
- Exercism has coding exercises on 50+ programming languages including Python, Kotlin, JavaScript, and WebAssembly.
- Their mission is to help everyone get really good at programming, regardless of their background, share the love of programming, and help people upskill as part of their upward social mobility.
- Over 70 people have contributed towards the F# syllabus and exercises, with around 120 mentors available at the time of writing.
If you’re interested in this course, you can find more information about the course and how to enroll here.
8. F# 6 Fundamentals (Pluralsight)
F# 6 Fundamentals on PluralSight teaches you the fundamentals of programming with F#.
You’ll learn the basics of the F# language as well as get an introduction to important concepts of functional programming. By the end of the 10 days free-to-audit course, you’ll know all the F# and functional programming concepts that you need to create before creating applications with F#.
The prerequisites for this course is knowing basics of .NET development as well as some knowledge of C# programming.
What You’ll Learn
First, you’ll configure the .NET 6 and F# 6 development environment on your PC. Then, you’ll learn the F# basics like variables, data types, conditionals, functions, and loops. But, you’ll take a deeper look at functions, as they behave differently in functional programming compared to object-oriented programming.
What you’ll do is explore representing data in F# and creating functions to work with that data, including function pipelines, composite functions, and injecting function dependencies. Then, you’ll learn how to functionally model relationships in data with F#’s data types, specifically the discriminated unions and options.
Finally, you’ll discover how to work with collections of data in a functional manner instead of using complex and troublesome imperative code.
How You’ll Learn
This course is 8 hours long. You’ll learn by watching the lecture videos and following along with the instructor as he codes.
Provider | Pluralsight |
Instructor | Michael Heydt |
Level | Beginner |
Workload | 8 hours |
Certificate | Paid |
Fun Facts
- Mike is a seasoned software developer. He has worked in many industries including finance/trading systems, cable television/interactive TV, GIS, healthcare, social media, and genomics. He holds over 17 active Microsoft certifications in Azure, C#, development, and also multiple AWS certifications in development.
If you’re interested in this course, you can find more information about the course and how to enroll here.
