Introduction To Functional Programming

Jorge Gueorguiev García

A course to learn some of the basics of functional programming for those who are already coding proficient.

More courses Contact

Why attend?

This two day course is designed to help software developers to learn about the basics of functional programming. We will explore the fundamentals of the functional paradigm in a series of hands-on exercises, which will provide a starting point for your journey into functional programming.

The contents of the course are language agnostic (or as much as possible!), so you should be able to apply this knowledge to any functional programming language, be this language dynamic or static. The code will not necessarily be idiomatic of the language we are using (F# transpiled to JS with Fable). We will go from having some very basic code within the domain (starting with a circle on the screen), to showing how code could be rewritten, bit by bit, towards a more functional way. Then we will be adding multiple circles to increase the fun and the possibilities.

Note: This is a publicly-run Beta of the course and therefore we will request feedback upon completion.

Course Contents

  • Lesson 1 - Introduction to course, objectives, F# and Fable
  • Lesson 2 - Introduction to the domain
  • Lesson 3 - Immutability
  • Lesson 4 - Impure/Pure/Impure sandwich
  • Lesson 5 - Functions as first class citizen
  • Lesson 6 - Partial application
  • Lesson 7 - Lambdas
  • Lesson 8 - Piping
  • Lesson 9 - Composition
  • Lesson 10 - Recursion
  • Lesson 11 - Alternatives to recursion
  • Lesson 12 - Pattern Matching
  • Lesson 13 - Helpful Constructs
  • Lesson 14 - Railway Oriented Programming
  • Lesson 15 - Testing


You will need to bring your own machine to the course. Please ensure that the following dependencies are installed beforehand.

You will also want an IDE that can handle F#. We would recommend using Visual Studio Code with Ionide. Visual Studio is also a good option. Finally, please make sure that you have access to a GitLab account.

Jorge Gueorguiev García

Jorge has been a software professional for 20 years. Donning different hats through the process, the experience led him to believe in two maxims;' Simple is Beautiful' and 'Make Everyone's Life Easy'.

He has professional experience on multiple languages and stacks (all the way from Delphi, through C# and Java, to JS, Typescript and Clojure). Currently his main focus is on singing praises for Functional Programming, and improving the skills of developers (including his own).

Talk to us about your training needs

Software is our passion.

We are software craftspeople. We build well-crafted software for our clients, we help developers to get better at their craft through training, coaching and mentoring, and we help companies get better at delivering software.

Latest Blogs