F# is increasingly used in domains such as finance, gaming, mobile and web development, testing and other. The language makes it possible to solve complex problems with simple, maintainable and robust code.
In this course, we look at a number of applications. We explore how F# simplifies domain modelling and testing. Then we look at F# killer features for asynchronous and concurrent programming and for data processing.
After attending the course, you'll be able to solve interesting problems with F#, but you'll also become a better programmer in general.
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 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
Is this course for you?
The Fast Track to F# course is for you if:
- You are a software developer who wants to use F# in a real-world software system
- You are a software architect and want to find out how to best leverage the power of F#
- You are a developer who wanting to broaden the skill set and get better grasp on concurrency and functional ideas
No matter if you want to start evaluating or using F# or if you want to gain new perspective on software architecture and development, but still use C#, this course has the right material for you.
The course doesn't require prior experience with F# or functional programming. To benefit from the course, you should have working knowledge of some object-oriented language. Some knowledge of .NET will be beneficial, but is not required.
Day 1 (Introduction and domain modelling)
- How F# fits with the rest of the world?
- Object-oriented F# from 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 retail .NET application in F#
Day 2 (Killer applications for F#)
Data processing and F# 3.0 type providers
- Obtaining data with type providers
- Processing and visualizing data
- Numerical calculations and machine learning
- How 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#
Course labs & exercises
A brief theoretical introduction to every concept will be followed by numerous practical demos and exercises. At the end of the first day, you'll leave with a complete real-world F# application. In the second day, we'll solve a number of complex problems in concurrent and data-oriented programming.