0345 4506120

Fast Track to F#

Fast Track to F# with Tomas Petricek & Phil Trelford

F# is increasingly used in domains such as finance, gaming, mobile & web development and testing - it makes it possible to solve complex problems with simple, maintainable and robust code.

This two-day course looks at a number of applications, exploring how F# simplifies domain modelling & testing, looking at it’s advanced, indispensable features for asynchronous and concurrent programming and data processing - making this an essential course for anyone looking to start using F# in practice who would like to begin making the most of functional and concurrent programming concepts.

About the Authors

Tomas Petricek

Tomas Petricek

Tomas is a computer scientist and open-source developer. He is a Visiting Researcher at the Alan Turing Institute working on tools for open data-driven storytelling. He wrote a popular book called "Real-World Functional Programming" and is a lead developer of several F# open-source libraries.

Phil Trelford

Phil Trelford

Phil is an active member of the software development community, regularly attending and speaking at user groups and conferences, blogging and contributing to open source projects. He is a co-organizer of the London F# User Group and a founding member of the F# Foundation.


Are you:

  • A software developer who wants to use F# in a real-world software system?
  • A software architect and want to find out how to best leverage the power of F#?
  • A developer who wants to broaden your skill set and get a better grasp on concurrency and functional ideas?

This course has been tailored for C# & C++ developers with at least 2-3 years of enterprise experience, who would like to start evaluating or using F# or gain a new perspective on software architecture and development.


Learning Objectives

Learn how to:

  • Write effective and succinct solutions to complex problems in F#
  • Model complex domains with functional types and domain specific languages (DSLs)
  • Learn how to integrate F# in to your company workflow through prototyping, testing and scripting
  • Use F# 3.0 type providers to gather and process data
  • Use F# asynchronous workflows and agents to write scalable concurrent code



Whilst this course does not require prior experience with F# or functional programming, we do recommend that you have working knowledge of some object-oriented language. Similarly, some knowledge of .NET would be useful, but not required.

Bring your own hardware

Delegates are requested to bring their own laptop to participate in this course.

Course Content

Introducing F#

  • How does F# fit with the rest of the world?
  • Object-oriented F# from a C# perspective
  • Working with F# types and functions
  • How F# avoids NullReferenceExceptions

Domain modelling and DSLs

  • Modelling problem domains with functional types (“Domain on a single page”)
  • Implementing business logic in F#

Writing applications in F#

  • Testing F# code and using F# as a testing tool
  • Building a retail .NET application in F#

Data processing and F# 3.0 type providers

  • Obtaining data with type providers
  • Processing and visualizing data
  • Numerical calculations and machine learning
  • How do F# type providers work?

Asynchronous and concurrent programming

  • How to write non-blocking computations
  • Asynchronous workflows for server-side and client-side programming
  • Introducing agent-based concurrency in F#
  • Designing concurrent scalable data-processing systems in F#

Privacy Notice

In order to provide you with the service requested we will need to retain and use your contact information in accordance with our Privacy Notice. If you choose to provide us with this information you explicitly consent to us using the information as necessary to provide the request service to you. If you do not agree please do not proceed to request the service from us.

Marketing Permissions

Would you like to receive our newsletter and other information on products and services which we think will be of interest to you by email. We will always treat your information with care and in accordance with our Privacy Notice. You are free to withdraw this permission at any time.


Our Customers Include