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 es nuestra pasión.

Somos Software Craftspeople. Construimos software bien elaborado para nuestros clientes, ayudamos a los/as desarrolladores/as a mejorar en su oficio a través de la formación, la orientación y la tutoría. Ayudamos a las empresas a mejorar en la distribución de software.


3 Sutton Lane, planta 3
Londres, EC1M 5PU

Teléfono: +44 207 4902967

2 Mount Street
Manchester, M2 5WQ

Teléfono: +44 161 302 6795

Carrer de Pallars 99, planta 4, sala 41
Barcelona, 08018

Teléfono: +34 937 82 28 82

Correo electrónico: