Skip to content
New this month 24 fresh C++, C#, F#, JavaScript, TypeScript and Lua courses just landed. Browse new releases Use code WELCOME10 for 10% off your first order · 14-day refund

F# from Zero: Functional Programming on .NET for Beginners

Your first functional language, taught with running code instead of category theory.

Rated 3.5 out of 5 from 2 reviews 8 students

JB Created by Jonas Berg

  • Last updated August 2026
  • English
  • 6h 36m of material
  • 50 lessons

What you will learn

8 concrete outcomes

Every bullet below is something you will have built, shipped or be able to explain by the time you finish the last lesson.

  • Work confidently with immutable values, functions and the pipeline operator
  • Use lists, arrays, tuples, records and discriminated unions to model data
  • Replace loops with map, filter, fold and recursion, and know when each fits
  • Match on structure exhaustively and let the compiler find your missing cases
  • Read type inference errors and add annotations only where they help
  • Handle missing data with Option instead of null checks
  • Use F# Interactive as a fast feedback loop while developing
  • Build three complete small programs without mutable state

Course curriculum

6 modules · 50 lessons · 6h 36m of material

9 lessons running 1h 10m in total. Each lesson ships with the finished source files and a short written recap, so you can follow along in your own editor and skim the module again later.

Lesson-by-lesson titles, code downloads and exercises live inside the course library you get access to straight after checkout.

9 lessons running 1h 08m in total. Each lesson ships with the finished source files and a short written recap, so you can follow along in your own editor and skim the module again later.

Lesson-by-lesson titles, code downloads and exercises live inside the course library you get access to straight after checkout.

10 lessons running 1h 20m in total. Each lesson ships with the finished source files and a short written recap, so you can follow along in your own editor and skim the module again later.

Lesson-by-lesson titles, code downloads and exercises live inside the course library you get access to straight after checkout.

9 lessons running 1h 12m in total. Each lesson ships with the finished source files and a short written recap, so you can follow along in your own editor and skim the module again later.

Lesson-by-lesson titles, code downloads and exercises live inside the course library you get access to straight after checkout.

7 lessons running 54m in total. Each lesson ships with the finished source files and a short written recap, so you can follow along in your own editor and skim the module again later.

Lesson-by-lesson titles, code downloads and exercises live inside the course library you get access to straight after checkout.

6 lessons running 52m in total. Each lesson ships with the finished source files and a short written recap, so you can follow along in your own editor and skim the module again later.

Lesson-by-lesson titles, code downloads and exercises live inside the course library you get access to straight after checkout.

6 modules · 50 lessons

6h 36m total length

Requirements

Short list, and deliberately so. If you meet these you can start today.

  • Some programming experience in any language, even a scripting one
  • The .NET SDK installed with VS Code and the Ionide extension
  • No .NET or functional programming background required

About this course

Functional programming is usually introduced with vocabulary that assumes you already understand it. This course does the opposite. Nothing is named until you have written it, and every idea appears first as a small program running in F# Interactive where you can change a value and see the result immediately.

You begin with immutable values, functions and the pipeline operator, then build up lists, tuples, records and discriminated unions. Recursion and higher-order functions replace the loops you would have written elsewhere, and pattern matching becomes the tool you reach for instead of chains of conditionals. Along the way the compiler teaches you: type inference means most annotations are optional, and exhaustiveness warnings catch the cases you forgot.

The last third builds three small programs: a text-processing tool that ranks word frequency, a JSON-driven report generator, and a terminal quiz that keeps state without a single mutable variable. Each one is written twice, once the way a newcomer would and once idiomatically, so the difference between writing F# and writing C# with F# syntax becomes concrete.

Topics covered

Frequently asked questions

Still unsure about something? Write to misteryjj100@gmail.com and a human answers, usually the same working day.

No. The course installs the SDK with you and never assumes .NET knowledge. If you do know C#, the dedicated F# for C# developers course will move faster.

Yes, the .NET SDK and Ionide work identically on Windows, macOS and Linux, and all examples were verified on all three.

Considerably. Immutability, algebraic data types and pattern matching transfer directly to OCaml, Elm, Rust and Scala, which the closing lesson maps out.

Checkout is handled on our provider's secure payment page. The moment your payment clears we email your personal access link and access code to the address you used at checkout, and the same link appears in your account library. There is nothing to install and nothing to wait for.

Email misteryjj100@gmail.com within 14 days of your purchase, quote your order number, and we refund the full amount to your original payment method. No form to fill in and no questions about how much of the course you watched.

What students say

Reviews are written by people who bought this course. We publish the critical ones too.

3.5

Rated 3.5 out of 5

Course rating · 2 reviews

Rating distribution

  • 5 stars 50%
  • 4 stars 0%
  • 3 stars 0%
  • 2 stars 50%
  • 1 star 0%
  • SD

    Solveig Dahl

    Software engineer

    Jan 2026
    Rated 5.0 out of 5

    Writing each program twice is a brilliant device

    Every one of the three programs is written once the way a newcomer would write it and once the way an F# developer would, on the same screen. Seeing my own instinct sitting next to the better version did more for me than any list of rules ever has.
  • CR

    Christoph Reiter

    Self-taught, switching careers

    May 2025
    Rated 2.0 out of 5

    Not from zero on the .NET side

    The functional content is fine and the discriminated unions chapter is clear enough. The trouble is that it repeatedly assumes you know what a solution file is, how NuGet resolves a package and why the runtime version would ever matter, none of which a beginner has any reason to know. Twice I was stuck on tooling rather than on the language, and there is no help offered for that anywhere in the course. Rename it F# from zero for people who already have .NET working and I would have no argument.

Your instructor

JB

Jonas Berg

Functional programmer and F# instructor

  • 64 students taught
  • 3 courses published
  • 4.0 instructor rating
  • F#
  • Functional programming
  • Type-driven design
  • Domain modelling

Jonas has written F# in production for over a decade, mostly in insurance and logistics where correctness is far cheaper than speed. He teaches functional programming as a practical tool: types that make bad states unrepresentable, and pipelines you can test without touching a database. His courses convert real imperative code into functional code one step at a time, so nothing feels like a leap of faith. He maintains a small but well-used F# validation library.

$45 USD

One-time payment · lifetime access

The WisdomCharms dispatch

One useful email a week. No fluff, no spam.

New course releases, discount codes before anyone else, and a short, practical breakdown of one technique — a prompt pattern, a C++ idiom, a TypeScript trick — that you can use the same day.

  • Subscriber-only launch pricing
  • Unsubscribe in one click
  • We never sell your address

By subscribing you agree to our Privacy Policy. Questions? Write to misteryjj100@gmail.com.