Beta: Start Programming With F# Today

Learn industry leading functional programming in the cross-platform F# language
4.3 (116 ratings)
Instead of using a simple lifetime average, Udemy calculates a
course's star rating by considering a number of different factors
such as the number of ratings, the age of ratings, and the
likelihood of fraudulent ratings.
5,688 students enrolled
Start Learning Now
  • Lectures 30
  • Length 4.5 hours
  • Skill Level Beginner Level
  • Languages English
  • Includes Lifetime access
    30 day money back guarantee!
    Available on iOS and Android
    Certificate of Completion
Wishlisted Wishlist

How taking a course works


Find online courses made by experts from around the world.


Take your courses with you and learn anywhere, anytime.


Learn and practice real-world skills and achieve your goals.

About This Course

Published 11/2015 English

Course Description

This course aimed at people with little or no skill in programming, no prior skills are required all. You just need a computer with Linux, OSX or Windows and an internet connection.

This course is about introducing you to programming in F#. We’ll complete an F# project together and generate procedural images in code, while learning functional programming principles. We will walk you through and explain every line of code and point out all the important programming concept as we progress.

F# is a mature, functional-first language especially well suited to computer science, machine learning, distributed computing and web applications too. There really is no limit to what F# can do for you!

We’ve structured the course to make learning all the material as easy and accessible as possible. We’ll challenge you to complete an F# programming task in every video to make sure you’ve got a great grip on all the concepts. But don’t worry, because after every challenge, we’ll also walk you through a solution line by line.

We have structured the course to enable anyone, no matter their background or experience, to get up and running with F#.

If you want to program with a language that has computer science at its heart and want to future proof your learning then this course is for you.

What are the requirements?

  • How to download and install software on their machine.
  • Nothing else :)

What am I going to get from this course?

  • Run F# in an interactive environment on their platform.
  • Understand how values and functions work in F#.
  • Generate procedural images in F#.
  • Craft dynamic web APIs and sites with Suave
  • Learn to use ReactJS and Redux to create usable, interactive frontend apps.
  • Use your web APIs with JavaScript to learn full stack web development.

Who is the target audience?

  • People who want to learn how to program
  • Developers who want to learn an awesome functional programming language.
  • People that want to understand what functional programming can do.

What you get with this course?

Not for you? No problem.
30 day money back guarantee.

Forever yours.
Lifetime access.

Learn on the go.
Desktop, iOS and Android.

Get rewarded.
Certificate of completion.


Section 1: An introduction to F#

Welcome to this course! In this video, we go over what we'll be doing in this section! Hope you have fun learning F#!

This section is extremely basic, the aim is to cater for all skill levels from complete novice. Don't skip <NecessaryParts> as we will explain where you find the resources through the rest of the course.


We show you what to expect in the videos and how to find files and get in touch with us.


In this video, we go over the best practices for asking good questions and why they matter.


In this session you will be walked through how to download and install Xamarin Studio on your Mac.


In this session you will be walked through how to download and install Xamarin Studio on your Windows computer.


An introduction to Xamarin Studio and a few tips to get you started.


Introduction to some of the common types in F# and an example of how to use them.


This video will introduce you to functions, the fundamental unit of program execution.


This session explains what a version control system is and why we use Git and Github.

If you do not have an account on then you will need to create one in order to participate on this course.


In this session we show you how you can access source code on and how you can make changes to the source code and share it.

11 questions

This quiz will test your understanding of the concepts you have been exposed to on the Introduction section.


We review what we learnt in this section and give you some ideas on where to go from here.

  1. Explore the FSI a little more and try things out for yourself
  2. Join the F# Gazette on our website FSharp.TV for regular F# news
  3. Explore the F# community and its awesome members
Section 2: Building spirographs

Welcome to the second section of this course! In this video, we go over what we'll be doing in this section! Hope you have fun learning F# and figuring out how to create a spirograph generator!

This section is straight forward, with the aim of learning the fundamental concepts of functional programming but it is not by any means the complete functional programming primer. If you have not completed the first section then we advise you to do so first as you may miss out on the important environment setup tips that could help you get started with F# and where we explain where to find the resources throughout the rest of our courses.


Tuples are basic building blocks in F# and it is good to gain understanding of these type now so we can use them in the several following videos.


Learn the ins and outs of functions and their basic usage.


In this lecture we introduce the concepts required for creating bitmaps and saving them as images. We start small but will get more in depth in the following lectures.


We discover the way a pixel can be plotted and hopefully the method employed should make it clear that it is not very practical. This section is designed to make you smile :-)


It's hip to be square, in this section we show you how too. Learn how to build instructions to plot pixels using a loop and eventually assign the instructions to a reusable, albeit rudimentary, function.


We begin to flesh out the implementation for our naive line function, focussing on one aspect at a time.


In this video we highlight the need for accurate division, otherwise we end up in situations where are lines are not drawn properly.


Learn how to make our lines draw when starting from a backwards position, this will incrementally improve our line drawing function giving it greater capability.


Records are a core part of F# and in this section we are introduced to them and start to utilise them in our code.


We start constructing a record to help retain the last position drawn on the bitmap, this enables us to drawn lines relative to other lines and provides a more intuitive set of functions to work with.


In this section we upgrade our functions and add new functions to enable us to turn and move rather than specifying coordinates to plot from and to.


This lecture will explain how to chain together a series of functions in a more common sense fashion, it also introduces the pipe-forward operator.


In this short video we introduce the fold function so that we are primed for the next series of lectures.


This section add more capabilities to our set of functions and now we can create shapes using a new polygon function.


This lecture introduces you to the sequence expressions that enable us as developers to achieve powerful results typing less code.


Finally, you can go crazy and build your very own spirograph to share with the world to behold.

Building spirographs
15 questions

Well done for getting this far! You now have a good grasp of the concepts of functional programming in F#! We hope you enjoyed this introduction, and we give you a few options regarding what to do next!


Well done for completing the introduction to F# programming! Join us on our other courses for more F#!

Students Who Viewed This Course Also Viewed

  • Loading
  • Loading
  • Loading

Instructor Biography

I have been a passionate software engineer since 2002 and have worked for companies such as The AA, Volkswagen Financial Services and Compare the Market, to name but a few.

I discovered programming when I was 18 and taught myself web development and Java and then moved into the .NET world in 2003. I now run the Cambridge F# User Group and co-organise the Cambridge DDD Nights User Group, both meet on a monthly basis.

My love of programming has given me the opportunity to experience various programming languages but I have happily settled on F# and I am now a proud sustaining member of the F# Software Foundation.

Ready to start learning?
Start Learning Now