We may earn an affiliate commission when you visit our partners.
Course image
Mosh Hamedani

These days, anyone can code. But if you want to get a job as an intermediate or senior-level C# developer, you must know how to write clean, maintainable code.

As Martin Fowler said:

"Any fool can write code that a computer can understand. Good programmers write code that humans can understand." - Martin Fowler

Poorly written code is hard to understand, maintain and test. But what does separate poorly written code (aka code that smells) from beautiful code that talks?

Read more

These days, anyone can code. But if you want to get a job as an intermediate or senior-level C# developer, you must know how to write clean, maintainable code.

As Martin Fowler said:

"Any fool can write code that a computer can understand. Good programmers write code that humans can understand." - Martin Fowler

Poorly written code is hard to understand, maintain and test. But what does separate poorly written code (aka code that smells) from beautiful code that talks?

In this course, Mosh, author of several best selling C# courses on Udemy, walks you through common code smells found in C# programs and shows you how to refactor them using ReSharper. Refactoring is changing the design of the existing code without changing its external behaviour.

In every lecture, you'll see an example of a popular code smell with Mosh's commentary about what is wrong with that code and more importantly, why. You'll then learn how to change the code in a safe and step-by-step fashion while minimising breaking changes. All the source codes presented in the lectures are available for download so you can practice these techniques on your own.

By the end of this course, you'll be able to

  • Spot the smells in your code
  • Refactor your code using safe and fast refactoring techniques with ReSharper
  • Write clean code that is more readable and maintainable
  • Break long methods into smaller, more maintainable ones
  • Simplify nested / complex conditional blocks
  • Design the proper signature for your methods
  • Remove duplicated code
  • Refactor long switch/case blocks into an object-oriented design using polymorphism
  • And more...

Understanding and using these techniques are absolutely essential skills that every C# developer must have.

It includes the most valuable tips I have received for 5 years. Thank you Mosh you helped me a lot." -Se He

"Just Love It. Its the 4th course i bought from Mosh, and i do not regret spending any money. I'm working as a developer for 2-3 years now but keep loosing myself in code written by me / others. I can finally understand why and what to change. Thanks Mosh. " -Klaus Prünster

"This course was really great at explaining clean coding practices in a way which is easy to follow and understand. Highly recommended. " -Edin Livnjak

"Another fantastic course from Mosh. I have't seen another course that explains these essential concepts so clearly. In my opinion all Developers should be taught this type of thing before being let loose within a work environment." -Mark Baker

"This course is awesome. It's highly detailed (but easy to understand nonetheless). It has, for me personally, the right amount of information density; Mosh picked exactly the right speed of teaching and progressively intensifies the content, which is great. It is definitively worth the time and money, and one can clearly see the passionate effort the author has put in the creation of these materials. Big respects. " -Raphael Beck

100% MONEY- If you're not happy, ask for a refund, all your money back, no questions asked.

So, do you want to take your C# skills to the next level?

Enrol in the course now and you'll see the difference between clean and smelly code within a few minutes.

Enroll now

Here's a deal for you

We found an offer that may be relevant to this course.
Save money when you learn. All coupon codes, vouchers, and discounts are applied automatically unless otherwise noted.

What's inside

Learning objectives

  • Tell the difference between good and bad good
  • Identify the smells in your code
  • Refactor your code in a safe and fast way using resharper
  • Write clean code that reveals the intent
  • Decompose long methods into smaller, more maintainable ones
  • Refactor lengthy switch statements into an object-oriented design
  • Simplify nested / complex conditional blocks
  • Remove duplicated code
  • Design the proper signature for your methods

Syllabus

Introduction
About the Course
About Your Instructor
Source Code
Read more
Asking Questions
Common Code Smells
Poor Names
Poor Naming Conventions
Poor Method Signatures
Long Parameter List
Output Parameters
Variable Declarations on the Top
Magic Numbers
Nested Conditionals
Switch Statements
Duplicated Code
Comments
Long Methods
Complete Refactoring Examples
WebForms Example - Part 1
WebForms Example - Part 2
Additional Resources
Final Words
Get My Other Courses with a Discount

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Teaches essential coding practices that are in high demand for C# developers, making it very relevant to industry
Emphasizes writing clean and maintainable code, which is highly sought after by employers
Uses ReSharper as a tool for refactoring, which enhances the practicality of the learning experience
Provides hands-on exercises and examples for immediate application, making it engaging and interactive
Covers a wide range of code smells, ensuring comprehensive understanding of common coding issues
Taught by Mosh Hamedani, who is known for his clear and effective teaching style, enhancing the learning experience

Save this course

Save C# Developers: Learn the Art of Writing Clean Code to your list so you can find it easily later:
Save

Reviews summary

Well-rounded c# coding course

According to students, this course is well-received due to its clear and simple explanations of clean coding fundamentals, as well as its effective examples.
Uses simple explanations and examples to simplify complex concepts.
"This course simplified the fundamental ideas of clean code with simple yet effective examples and explanations."

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 C# Developers: Learn the Art of Writing Clean Code with these activities:
Read 'Clean Code' by Robert C. Martin
This book provides a comprehensive overview of clean coding practices that can help you improve the quality of your C# code.
Show steps
  • Read the book carefully, taking notes as you go
  • Apply the techniques you learn to your own code
Review Basic C# Syntax
Reviewing basic C# syntax will help you refresh your memory and ensure that you have a solid foundation before starting this course.
Browse courses on C#
Show steps
  • Go through your notes from a previous C# course
  • Take a practice quiz or exam
Review Refactoring Techniques
Reviewing some basic refactoring techniques in C# will prepare you to understand the upcoming lectures better.
Browse courses on ReSharper
Show steps
  • Find a good tutorial on the web or follow along with the resources provided in the course
  • Practice the techniques on some sample code
Five other activities
Expand to see all activities and additional details
Show all eight activities
Attend a C# Meetup
Attending a C# Meetup will allow you to connect with other C# developers and learn about the latest trends in C# development.
Browse courses on C#
Show steps
  • Find a C# Meetup in your area
  • Attend the Meetup and participate in the discussions
Refactor Sample Code
Practicing refactoring techniques on sample code will reinforce your understanding and improve your skills.
Browse courses on Refactoring
Show steps
  • Find some sample code that has some code smells
  • Refactor the code using the techniques you have learned
  • Compare your refactored code to the original code and identify the improvements
Create a Small C# Project
Creating a small C# project will allow you to apply the techniques you learn in this course to a real-world scenario.
Browse courses on C#
Show steps
  • Come up with an idea for a small C# project
  • Create a new C# project in your favorite IDE
  • Write the code for your project
  • Test your project to make sure it works correctly
Volunteer for a Coding Project
Volunteering for a coding project will allow you to gain experience working on a real-world project and to give back to the community.
Browse courses on C#
Show steps
  • Find a coding project that you are interested in
  • Contact the project organizers and offer your help
  • Work on the project with the other volunteers
Refactor a Project of Your Own
Applying refactoring techniques to a project of your own will allow you to see the benefits of refactoring firsthand.
Browse courses on Refactoring
Show steps
  • Choose a project that you are working on or have worked on in the past
  • Identify the code smells in your project
  • Refactor your code using the techniques you have learned
  • Test your refactored code to make sure it still works correctly

Career center

Learners who complete C# Developers: Learn the Art of Writing Clean Code will develop knowledge and skills that may be useful to these careers:
Software Developer
Software Developers write the code that makes computers and applications work. They may specialize in a particular programming language or platform, such as C#. This course can help Software Developers write clean, maintainable code that is easy to read and understand, which is essential for developing high-quality software.
Web Developer
Web Developers design and develop websites and web applications. They may work on a variety of projects, from small, personal websites to large, e-commerce websites. This course can help Web Developers write clean, maintainable code that is easy to read and understand, which is essential for developing high-quality, user-friendly websites.
Mobile Developer
Mobile Developers design and develop mobile applications. They may work on a variety of platforms, such as iOS, Android, or Windows Phone. This course can help Mobile Developers write clean, maintainable code that is easy to read and understand, which is essential for developing high-quality, user-friendly mobile applications.
Programmer Analyst
Programmer Analysts analyze and design software systems. They work closely with users to understand their needs and then develop software solutions that meet those needs. This course can help Programmer Analysts write clean, maintainable code that is easy to read and understand, which is essential for developing high-quality software that meets the needs of users.
Software Engineer
Software Engineers design, develop, and maintain software systems. They may work on a variety of projects, from small, single-user applications to large, enterprise-wide systems. This course can help Software Engineers write clean, maintainable code that is easy to read and understand, which is essential for developing high-quality, reliable software.
Data Scientist
Data Scientists use data to solve problems and make better decisions. They may work on a variety of projects, from developing predictive models to analyzing customer data. This course can help Data Scientists write clean, maintainable code that is easy to read and understand, which is essential for developing high-quality, reliable data science solutions.
Machine Learning Engineer
Machine Learning Engineers design and develop machine learning models. They may work on a variety of projects, from developing self-driving cars to diagnosing diseases. This course can help Machine Learning Engineers write clean, maintainable code that is easy to read and understand, which is essential for developing high-quality, reliable machine learning models.
Cloud Engineer
Cloud Engineers design and develop cloud computing solutions. They may work on a variety of projects, from migrating applications to the cloud to developing new cloud-based services. This course can help Cloud Engineers write clean, maintainable code that is easy to read and understand, which is essential for developing high-quality, reliable cloud computing solutions.
Systems Analyst
Systems Analysts design and develop computer systems. They work with users to understand their needs and then develop systems that meet those needs. This course can help Systems Analysts write clean, maintainable code that is easy to read and understand, which is essential for developing high-quality, reliable computer systems.
Technical Lead
Technical Leads lead teams of developers and engineers. They work with the team to develop and implement software solutions. This course can help Technical Leads write clean, maintainable code that is easy to read and understand, which is essential for developing high-quality software and leading a team of developers.
Software Architect
Software Architects design and develop the overall architecture of software systems. They work with other developers to ensure that the system is well-designed and meets the needs of the users. This course can help Software Architects write clean, maintainable code that is easy to read and understand, which is essential for developing high-quality, reliable software systems.
Product Manager
Product Managers are responsible for the development and success of software products. They work with engineers, designers, and marketers to develop and launch new products. This course can help Product Managers write clean, maintainable code that is easy to read and understand, which is essential for developing high-quality, successful software products.
Business Analyst
Business Analysts work with businesses to understand their needs and then develop solutions to meet those needs. This course may help Business Analysts write clean, maintainable code that is easy to read and understand, which is helpful for developing high-quality, effective business solutions.
Data Analyst
Data Analysts use data to solve problems and make better decisions. They may work on a variety of projects, from developing predictive models to analyzing customer data. This course may help Data Analysts write clean, maintainable code that is easy to read and understand, which is helpful for developing high-quality, reliable data solutions.
Management Consultant
Management Consultants work with businesses to improve their performance. They may work on a variety of projects, from developing new strategies to improving operations. This course may help Management Consultants write clean, maintainable code that is easy to read and understand, which is helpful for developing high-quality, effective business solutions.

Reading list

We've selected 14 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 C# Developers: Learn the Art of Writing Clean Code.
Provides practical advice on how to improve code quality and maintainability. It is highly recommended for anyone who wants to learn more about writing clean code.
Provides a comprehensive overview of refactoring techniques. It valuable resource for anyone who wants to learn more about how to improve the design of existing code.
Provides a more accessible introduction to design patterns than the previous book. It good choice for beginners who want to learn more about design patterns.
Provides a comprehensive overview of software testing. It valuable resource for anyone who wants to learn more about how to test software effectively.
Provides a comprehensive overview of agile software development principles, patterns, and practices. It valuable resource for anyone who wants to learn more about agile development.
Provides a practical introduction to test-driven development. It good choice for beginners who want to learn more about TDD.
Provides a comprehensive overview of domain-driven design. It valuable resource for anyone who wants to learn more about how to design software that is aligned with the business domain.
Provides a comprehensive overview of microservices patterns. It valuable resource for anyone who wants to learn more about how to design and build microservices-based applications.
Provides a comprehensive overview of functional programming in C#. It valuable resource for anyone who wants to learn more about how to write functional code in C#.
Provides a comprehensive overview of C# 8 and .NET Core 3. It valuable resource for anyone who wants to learn more about the latest features of C# and .NET Core.
Provides a collection of recipes for solving common programming problems in C#. It valuable resource for anyone who wants to learn more about how to use C# effectively.
Provides a practical guide to refactoring code to patterns. It valuable resource for anyone who wants to learn more about how to improve the design of existing code.

Share

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

Similar courses

Here are nine courses similar to C# Developers: Learn the Art of Writing Clean Code.
C# Advanced Topics: Prepare for Technical Interviews
Most relevant
Xamarin Forms: Build Native Cross-platform Apps with C#
Most relevant
C# Basics for Beginners: Learn C# Fundamentals by Coding
C# Design Patterns: Rules Engine Pattern
Entity Framework in Depth: The Complete Guide
API in C#: The Best Practices of Design and Implementation
C# Intermediate: Classes, Interfaces and OOP
Reading Legacy C++
Objective-C 2 for Swift Developers
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