Skip to content
UdemyC#Paid courseAll LevelsCertificate

Software Design: Functional Programming in C# (Udemy.com)

Learn the principles of Functional Programming & how to apply them with the power of C# to improve software architecture

Created by: Engineer Spock

Last updated July 2020

icon
What you will learn

  • Design and Implement Immutable Types
  • Implement Useful Extension Methods
  • Write Pure Functions (avoiding side effects)
  • Handle Errors in a Functional Style
  • Tackle with the Problem of Null-values in a Functional Style

How it compares

Against the other 194 rated Udemy courses in C# on CourseDuck:

  • Rating4.0 out of 5higher than 9% of them
  • Reviews319#100 of 195 by number of reviews
  • Length4.1 hoursshorter than 62% of them
  • Last updatedJuly 2020earlier than 61% of them

icon
Course Description

Learn how to write C# code in a functional style. The “Functional Programming in C#” is for you if you want to improve your code, design and architecture. It means you are going to learn how to write code of the high quality: readable, understandable and reliable.

Teaching Approach  

No fluff, no ranting, no beating the air. I respect your time. The course material is succinct, yet comprehensive. All important concepts are covered. Particularly important topics are covered in-depth.

Take this course and you will be satisfied.  

Learn Functional Programming in the context of clean coding and building types of high quality.  

  • Get Deep Understanding of what is Functional Programming  

  • Learn how to design Immutable types in C#  

  • Apply new C# 6 and C# 7 features to write better code in a functional style  

  • Learn how to Extend and Compose any Types  

  • Handle Errors and Exceptions in a functional programming style  

  • Tackle the Problem of Null-Values by the means of functional programming  

Foundations of Functional Programming  

Despite the fact that C# is primarily an object-oriented language, it is very powerful on features which enable functional programming style. In fact, C# is one of the richest on features language among object-oriented languages in the world nowadays. But with great power comes great responsibility. It's challenging to use all those features in a right way.  

You probably have already heard the following well-known statement: most code sucks. Well, this course is all about how to produce code which doesn't suck.  

Owning skills of producing well-designed and well-implemented types with regards to functional programming principles.  

Content and Overview  

This course is aimed at all the C# developers, from beginners to seniors. Topics which are covered in the course are relevant for all kinds of C# developers since all developers design and implement types. The topics complexity is very different. There are plenty of very simple topics, and at the same time, there are topics which require from you a solid C# background. There are plenty of code examples throughout this course, so you will learn both theoretical and practical material.  

  • We’re going to start with the theoretical foundations of the functional programming paradigm. You’ll learn what is Functional Programming and what are the benefits of applying that paradigm.

  • In the second section, we’re going to elaborate the core concepts of the functional programming. You’ll learn more about immutability, purity, side effects and expressions.

  • To write modern code in a functional style, you need to learn modern C# features appeared in C# 6 and C# 7.

  • We’re going to learn more about immutability in a separate section. This is a very important topic.

  • We’re going to learn how to extend types. You’ll see practical cases, you’ll learn about general extensions needed for functional programming.

  • After mastering the topic of types extending you will face the great problem of exceptions handling. Yep, it's a hard nut to crack. We will start from discussing a question of why we use exceptions as a mechanism of errors handling. And why C# team didn't invent any other mechanisms?

  • In the end, we will look at how to fight with null values. As you may know, Tony Hoar said that the invention of a null value was his billion-dollar mistake.

To sum up, the course covers the following topics:  

  • Theoretical Foundations of Functional Programming  

  • Core Concepts of Functional Programming  

  • Functional Features in C#  

  • Immutability in C#  

  • Extendibility in C#  

  • Dealing with Errors  

  • Dealing with Nulls  

------------------------------------------------------------  

Keywords related to the course:  

  • C# Clean Code  

  • C# Best Practices  

  • Functional Programming in C#  

  • C# Functional Programming  

  • Clean Code in C# tutorial

icon
Udemy Discount

The discount is applied through our link. Open the course from here and Udemy's current promotional price is applied at checkout on most courses, no code to type.

Some courses are excluded from Udemy's promotions. If the price does not drop, clear your browser cookies and use the button again.

icon
Instructor Details

Engineer Spock

I'm thankful enough for that I love what I do.

I began my career as a postgraduate student participating in Microsoft ImagineCup contest.

I've been working with .NET platform since 2003. I've been professionally architecting and implementing software for nearly 7 years, primarily based on .NET platform. I'm passionate about building rich and powerful applications using modern technologies. I'm a certified specialist in Windows Applications and Service Communication Applications by Microsoft. I'm one of the coordinators of the MSK.NET User Group in Moscow.

"If it's work, we try to do less. If it's art, we try to do more." - Seth Godin.

What I can say is that software is my art.

icon
More courses by Engineer Spock

$64.99

$74.99

$11.99

$11.99

$69.99

$79.99

icon
More C# courses

$84.99

$13.99

$64.99

$19.99

$12.99

$84.99

icon
Reviews

4.0

319 ratings on Udemy

Select a bar to show only those reviews.Select the bar again to show every rating.

By Pascal Fortin on 2/10/2024

Full and detailed explanations, very good for beginners. On the other hand, the abundant repetition of the concept of immutability and its importance throughout the first sections is a bit boring. This emphasis should be limited to one or two lectures and the student should be trusted afterwards. Also, it would be interesting to see a section dedicated to the creation of a complete project, in which the author applies the concepts taught.

By Armando Rodríguez Ortega on 11/21/2022

proporciona información que puede ser útil para un mejor conocimiento de programación funcional, pero no proporciona forma de practicar este es solo un curso teórico sin módulos o vídeos que ayuden a practicar This course has useful information, but it haven't a way to practice, if you will try following the video you need to try to copy all the info and the most of the time you need other classes that you doesn't have a way to obtain it

By Anonymized User on 8/11/2022

This is a nice overview of some modern language features in C#, with a pretty low time commitment. Most of the examples are easy to follow and the presentation is nicely paced out and approachable -- easy to nibble away at it over time or go through in a few focused sessions. It's helpful for either newer C# developers who have not yet accumulated lots of battle scars, or to those who have and are looking for practices and patterns to produce clean, reliable code. Well done.

By Tony Joanes on 7/4/2022

An excellent introduction to functional programming concepts using the C# language. I would recommend this course to people looking to get started working with C# and a multi-paradigm approach with the language

By Anonymized User on 2/2/2022

Functional C# is dry toast for most coders (as is the Functional paradigm itself). The presenter does an excellent job making the not yet "functional" language rather palatable. Good job!

By Tobin Kaneshiro on 11/22/2020

This is a good introduction to Functional Programming in C#, but only touches on some of the more specific FP concepts like Maybe monads and function pipelining, but does not dig into more advanced concepts like Map, Bind, Traverse, functors, monads, and monoids.

By Vijay Kulkarni on 9/21/2019

Overall, this course is beneficial for improving coding disciplines. Trainer revealed each content step by step with practical wisdom. Despite long years of experience, I still feel there is an area of improvement, and this course provides those essential insights. Coding is art; if it is done well then at the end, it appears excellent otherwise it just a wastage of time. Kudos to training for making efforts comprising basics again for all range of developers.

By Caleb Pfeil on 5/1/2019

Expected to see more explanations on lambda functions, delegates, and recursion. Instead, this course focused on the principles of functional programming (immutable data, null handling, exception handling). Instructor uses language which is inappropriate for the workplace.

By Pavel Mardouski on 3/17/2019

Hi, In general, I liked the course, but I expected a little more, at the beginning it tells a lot about new features in C#, which at the begging looks boring, but then it becomes clear why this is done, people who only start acquainted with the world .NET won't understand further material. I would like to note that it would be nice to add a lecture on unit testing it could demonstrate how you can cover the examples given in topics by unit tests (in the examples a lot of statistics are used). Regards, Pavel

By Louie Bergsagel on 7/13/2018

It was nice to see the shorter code available through functional programming. I was despairing over learning C# otherwise. It would be nice to have the text of the video for review later without having to type it all in my notes. I couldn't keep up, so there are holes in my notes, and corresponding holes in my head.

Showing all 10 reviews on CourseDuck

Read all 319 reviews on Udemy

icon
Quality Score

No CourseDuck member has rated this course yet. Taken it? Give each part a thumbs up or down.

Content Quality
/
Video Quality
/
Qualified Instructor
/
Course Pace
/
Course Depth & Coverage
/

Overall Score : 80 / 100