We may earn an affiliate commission when you visit our partners.
Zoran Horvat

With lots of new functional syntax in C#, programmers may struggle to find proper place for it in their notoriously object-oriented code. This course unveils the mystery and puts OO and functional design elements in the right proportion.

Read more

With lots of new functional syntax in C#, programmers may struggle to find proper place for it in their notoriously object-oriented code. This course unveils the mystery and puts OO and functional design elements in the right proportion.

Mixing paradigms in modern C# is not an easy endeavor. New functional syntax has its place, but not in every piece of code and every design. In this course, Making Your C# 7 Code More Functional, you will first learn how functional thinking can have positive effect on your software design, while still letting the design remain on the object-oriented side. Next, you will discover how you can leverage new functional syntax to solve problems which are hard to solve using pure object-oriented techniques. Finally, more than anything else, you will have the opportunity to see where the danger of misusing functional coding style lies in object-oriented code. By the end of this course, you should feel comfortable about functional thinking style in object-oriented code, for the better of your designs.

Enroll now

What's inside

Syllabus

Course Overview
Challenging the Object-oriented Mindset
Adding Functional-style Filters to Object Model
Introducing Pure Functions to Object Design
Read more
Memoization with Pure Functions
Working with Pure Member Functions
Pattern Matching with C# 7
Metaprogramming with Extension Methods
Function Composition with Object Model
Understanding Railway-oriented Programming
Handling Errors in Functional Style

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Develops functional thinking style in object-oriented code, which may improve designs
Examines several functional programming concepts, which can supplement and enhance object-oriented programming
Introduces new functional syntax in C# and explores its potential applications
Covers a range of topics from pure functions to metaprogramming, providing a comprehensive overview of functional programming in C#

Save this course

Save Making Your C# 7 Code More Functional to your list so you can find it easily later:
Save

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Making Your C# 7 Code More Functional with these activities:
Review C# Basics and Object-Oriented Concepts
Refresh your foundational knowledge of C# and object-oriented programming principles to ensure a solid base for understanding functional programming concepts.
Show steps
  • Review fundamental C# syntax, data types, and control flow
  • Revisit object-oriented concepts such as classes, inheritance, and polymorphism
  • Practice implementing basic object-oriented programs
Connect with Experienced C# Developers
Establish connections with experienced C# developers who can provide guidance, support, and advice, accelerating your learning progress.
Browse courses on Mentorship
Show steps
  • Attend industry events and conferences to network with professionals
  • Reach out to professionals on LinkedIn or other platforms
  • Seek recommendations from peers or instructors
Attend Study Group or Join Online Forum
Engage with peers to discuss course concepts, share knowledge, and resolve challenges, fostering a collaborative learning environment.
Show steps
  • Find or join a C#-focused study group or online forum
  • Participate in discussions, ask questions, and share your insights
  • Collaborate with peers to solve problems and deepen your understanding
Four other activities
Expand to see all activities and additional details
Show all seven activities
Read Clean Code
Review the concepts of clean code and software craftsmanship, which are crucial to building maintainable and well-designed C# applications.
View CLEAN CODE on Amazon
Show steps
  • Read chapters 1-3 to understand the principles of clean code
  • Read chapters 4-6 to learn about refactoring techniques
  • Read chapters 7-9 to explore code design patterns
Solve C# Coding Challenges
Practice solving coding challenges to enhance your problem-solving skills and sharpen your C# coding abilities.
Browse courses on Problem Solving
Show steps
  • Choose a reputable platform like LeetCode or HackerRank
  • Select challenges that align with the course topics
  • Focus on understanding the problem statement thoroughly
  • Implement your solution and submit it for evaluation
  • Analyze your solution and identify areas for improvement
Follow C# Design Patterns Tutorials
Explore C# design patterns through guided tutorials to gain a deeper understanding of their application and benefits in software development.
Browse courses on Software Design
Show steps
  • Identify a reputable source for C# design pattern tutorials
  • Choose tutorials that cover patterns relevant to functional programming
  • Follow the tutorials step-by-step, implementing code examples
  • Analyze the code and understand how the patterns solve specific problems
  • Apply the learned patterns in your own C# projects
Develop a Functional C# Application
Create a practical C# application that incorporates functional programming principles to reinforce your understanding and demonstrate your skills.
Browse courses on Software Development
Show steps
  • Plan and design the application, focusing on using functional programming techniques
  • Implement the application by utilizing functional data structures and lambda expressions
  • Write unit tests to ensure the application's correctness
  • Deploy the application and evaluate its performance
  • Reflect on the development process and identify areas for improvement

Career center

Learners who complete Making Your C# 7 Code More Functional will develop knowledge and skills that may be useful to these careers:
Machine Learning Engineer
Machine Learning Engineers apply functional programming techniques to develop and deploy machine learning models. This course provides a solid foundation in functional programming, which is essential for Machine Learning Engineers who want to create robust and efficient machine learning systems.
Software Engineer
Software Engineers apply the principles of both functional and object-oriented programming to design, develop, and maintain software systems. This course provides a comprehensive overview of functional programming concepts and techniques, which are increasingly being used in modern software development.
Systems Analyst
Systems Analysts use functional programming techniques to design and implement complex software systems. This course provides a solid foundation in functional programming, which is essential for Systems Analysts who want to create reliable and efficient software systems.
Software Architect
A Software Architect combines functional thinking and object-oriented design principles to create software systems that are both efficient and scalable. This course provides foundational knowledge in object-oriented programming as well as an introduction to functional programming concepts, which are essential skills for Software Architects.
Computer Scientist
Computer Scientists research and develop new computing technologies, including functional programming languages and techniques. This course provides a deep dive into the theoretical foundations of functional programming, which are essential for Computer Scientists who want to contribute to the advancement of computing.
Product Manager
Product Managers use functional programming techniques to define and manage software products. This course provides a solid foundation in functional programming, which is essential for Product Managers who want to create successful and innovative software products.
Game Developer
Game Developers use functional programming techniques to create immersive and engaging game experiences. This course provides a comprehensive overview of functional programming concepts and techniques, which are increasingly being used in modern game development.
Technical Writer
Technical Writers use functional programming techniques to create clear and concise technical documentation. This course provides a practical introduction to functional programming, which is a valuable tool for Technical Writers who want to improve the quality and effectiveness of their technical documentation.
Mobile Developer
Mobile Developers use functional programming techniques to create efficient and responsive mobile applications. This course provides a practical introduction to functional programming, which is a valuable tool for Mobile Developers who want to improve the performance and user experience of their mobile apps.
Project Manager
Project Managers use functional programming techniques to plan and manage software projects. This course provides a comprehensive overview of functional programming concepts and techniques, which are increasingly being used in modern project management.
Quality Assurance Engineer
Quality Assurance Engineers use functional programming techniques to test and validate software systems. This course provides a comprehensive overview of functional programming concepts and techniques, which are increasingly being used in modern software testing.
Data Scientist
Data Scientists use functional programming techniques to analyze large datasets and extract meaningful insights. This course provides a practical introduction to functional programming, which is a powerful tool for Data Scientists who want to improve the efficiency and accuracy of their data analysis.
Business Analyst
Business Analysts use functional programming techniques to analyze and model business processes. This course provides a practical introduction to functional programming, which is a valuable tool for Business Analysts who want to improve the efficiency and effectiveness of their business analysis.
Database Administrator
Database Administrators use functional programming techniques to manage and optimize database systems. This course provides a practical introduction to functional programming, which is a valuable tool for Database Administrators who want to improve the performance and reliability of their database systems.
Web Developer
Web Developers use functional programming techniques to create dynamic and interactive web applications. This course provides a comprehensive overview of functional programming concepts and techniques, which are increasingly being used in modern web development.

Reading list

We've selected 23 books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Making Your C# 7 Code More Functional.
Provides a comprehensive overview of functional programming in C#, covering topics such as lambda expressions, LINQ, and immutability. It valuable resource for anyone looking to learn more about functional programming in C#.
Provides a comprehensive overview of C# 7.0, including topics such as pattern matching, local functions, and tuples. It valuable resource for anyone who wants to learn more about the latest features of C#.
Provides a comprehensive overview of functional programming in Scala, a functional programming language that is well-suited for large-scale applications. It valuable resource for anyone looking to learn more about functional programming in Scala.
Provides a comprehensive overview of F#, a functional programming language that is closely integrated with .NET. It valuable resource for anyone looking to learn more about functional programming in .NET.
Provides a comprehensive overview of functional programming in Java. It covers topics such as lambda expressions, streams, and immutability. It valuable resource for anyone looking to learn more about functional programming in Java.
Provides a detailed overview of the new features in C# 7.0, including pattern matching, tuples, and local functions. It valuable resource for anyone looking to learn more about the latest version of C#.
Provides a practical introduction to functional programming in C#. It covers a wide range of topics, including functional data structures, lazy evaluation, and concurrency. It valuable resource for anyone who wants to learn more about functional programming in C#.
Provides a gentle introduction to type theory, which is the foundation of functional programming. It valuable resource for anyone who wants to learn more about the theoretical underpinnings of functional programming.
Provides a gentle introduction to functional programming for beginners. It covers topics such as lambda expressions, higher-order functions, and recursion. It valuable resource for anyone looking to get started with functional programming.
Provides a fast-paced introduction to Scala, a functional programming language that is similar to C#. It valuable resource for anyone looking to learn more about Scala.
Provides a gentle introduction to Clojure, a Lisp dialect that is well-suited for functional programming. It valuable resource for anyone looking to learn more about functional programming.
Provides a gentle introduction to functional programming using Haskell, a pure functional programming language. It valuable resource for anyone looking to learn more about functional programming.
Provides a gentle introduction to category theory, which is the mathematical foundation of functional programming. It valuable resource for anyone looking to gain a deeper understanding of functional programming.
Classic introduction to computer science, and it provides a thorough grounding in the principles of functional programming. It valuable resource for anyone who wants to learn more about the foundations of computer science.
Provides a comprehensive overview of C# 7, covering topics such as async/await, pattern matching, and generics. It valuable resource for anyone who wants to learn more about C# 7.
Provides a concise overview of C# 7, covering topics such as async/await, pattern matching, and generics. It valuable resource for anyone who wants to learn more about C# 7.
Provides a collection of recipes for solving common programming problems in C#. It valuable resource for anyone who wants to learn more about C#.
Provides a deep dive into the Common Language Runtime (CLR), the underlying platform for C#. It valuable resource for anyone who wants to learn more about the CLR.
Provides a comprehensive overview of C# 7.0, covering topics such as async/await, pattern matching, and generics.
Provides a deep dive into C# 7.0, covering topics such as async/await, pattern matching, and generics in great detail.
Provides a deep dive into C#, covering topics such as the CLR, generics, and reflection in great detail. It valuable resource for anyone who wants to learn more about C#.
Provides a comprehensive overview of C# 6 and .NET Core 1.0, covering topics such as async/await, pattern matching, and generics. It valuable resource for anyone who wants to learn more about C# 6 and .NET Core 1.0.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Here are nine courses similar to Making Your C# 7 Code More Functional.
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2024 OpenCourser