Functional Programming

for C# Developers

Learn the main concepts of functional programming using C# in a simple and practical way

Subscribe now and get 25% off when the course is ready!

[🌽, 🐮, 🐔].map(cook) == [🍿, 🍔, 🍳]

  • Are you stuck in filter or map?
  • Are you tired of reading that "A monad is just a monoid in the category of endofunctors"?
  • Do you think that functional programming is too abstract and academic for your taste?

If you answered YES to any of those questions, then this is the couse you're looking for 😉

Subscribe now and get 25% off when the course is ready!

And if you still has some questions, maybe this can be helpful:

Why should I learn functional programming?

Well, let's say it will give you more tools to be a better programmer, no matter what programming language you use.
Maybe you can't use FP in your daily basis (yeah, your boss is a dinosaur), but we're sure that if you learn these concepts, your programming style will improve A LOT.

And why should I use C# to learn functional programming?

Erik Meijer, one of the architects behind C# and LINQ is one of the most strong supporters of functional programming. Because of that, C# has introduced more and more functional constructs with each version. This means that C# is the perfect language to explore the new fields of functional programming without leaving the confort of your language. And after doing this course, it will be easier than ever to jump into F#

But, are you sure this is really useful?

Sure thing! Some benefits of programming with functional style:

  • It will allow you to make some tasks that would be must harder using your traditional style. Notice that Google used some functional core concepts from the very begining.
  • Your code will be cleaner, with (much) less variables, and you wouldn't worry by "what if this is null"
  • Your code will be more robust, will much less errors. The compiler will detect much more errors for you following the functional style. Also, your coding style will allow you to detect errors faster and easier.
  • Your code will be more maintainable and adaptable. As Joe Armstrong said, the inventor of Erlang, with OOP you wanted a banana but what you got was a gorilla holding the banana and the entire jungle.

Is it going to be difficult?

It's not difficult, it's quite simple. But it's different to the OOP style, that you're probably used to. Rich Hickey, the inventor of Clojure, explained in his famous talk "Simple made Easy" the difference between "easy" (something you're use to, even though it's a mess) and "simple" (something that can be explained and understood quickly, without effort, even though it may be quite new for you).

Functional programming is simple, but even you're an experienced developers, you'll have to learn scratch. But we're sure that this isn't anything for PhD's, as you probably believed. But you'll have to invest enough effort: no pain, no gain, my friend...

How are you going to teach it?

Using short video lessons, less than 20 minutes, where you'll find explanations about specific concepts and techniques. They're usually simple concepts, but with a lot of uses and potential applications. Don't worry if you don't get it at first. That's normal, and you'll probably have to listen some videos more than once, in order to understand all the details.
Each video includes several practical and everyday examples. We won't talk about fibonacci, factorials and other mathematical examples. We'll use daily situations and challenges, but solved differently. And if next you want to jump into pure functional languages, it will be much easier for you.

I don't know C#, but I know how to code in X

Awesome! C# is just the vehicle, but the important thing is the payload. Our code is quite easy to read and we use the simplest features of the language. It's in fact a good way to be introduced in a new language from a different side: instead of focusing on the syntax, focusing on the style.

Is there any other requirement?

Not really: you need to know how to code in any language (better if it's an OOP language), and you need to be interested in learning functional programming.

And it's even better if you already tried to learn FP without success. After this couse, you'll realize it wasn't that difficult

Subscribe now and get 25% off when the course is ready!

We're working on the course, so subscribe now and you'll get 25% off as soon as it's ready!