Functional Programming using C++
What you'll learn
- You will be able to write code that is easy to understand and almost self-documenting.
- You will be familiar with the background of functional programming, understand the fundamental differences of functional solutions compared to imperative ones.
- You will be able to solve programming problems elegantly by composing functional tools only or mixing them with other paradigms.
- You will spend much less time debugging your real-world applications because of their increased run-time safety.
- You will be able to utilize multiple CPUs to improve the performance of your applications.
- Your understanding of functional programming will help in other languages too. And it will expand your horizon regarding software engineering in general.
- You should have some experience in programming with C++.
- Previous experience with functional programming is not necessary.
- A C++14-compatible compiler is needed.
Controlling complexity is one of the biggest challenges a developer faces. Functional programming helps tremendously with this and thus becomes more and more popular, even in originally imperative and object oriented languages like C++. This course will help you increase your productivity by teaching how to write functional C++ code that is easy to understand, test and reuse.
After mastering the basic building blocks of functional programming, you will learn how to think functionally and solve everyday programming problems in an elegant way. Every provided coding exercises comes with an exemplary solution.
At the end of this course you will be able to use the functional approach to write application code that is extraordinarily robust and pleasant to work with.
And as a bonus, all the concepts you have learned will not only help you when using C++, but are applicable to other programming languages too and will expand your horizon regarding programming in general.
Who this course is for:
- This course is for all C++ developers (intermediate and advanced) who want to improve the quality of the C++ code they produce by learning about and applying functional programming principles.
Tobias Hermann is using functional programming in C++ on a daily basis in professional and private projects. He is the main developer of FunctionalPlus, a publicly available C++ library facilitating functional programming in C++. He currently works in the computer vision industry where he develops high performance image recognition software in C++. His experience in teaching the functional programming paradigm face to face and in articles enables him to help you develop the skills needed to become productive with this approach.
Other interests of him include deep learning, game development and different programming languages like Rust, Python, Haskell and Elm.