Udemy
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
Development
Web Development Data Science Mobile Development Programming Languages Game Development Database Design & Development Software Testing Software Engineering Development Tools No-Code Development
Business
Entrepreneurship Communications Management Sales Business Strategy Operations Project Management Business Law Business Analytics & Intelligence Human Resources Industry E-Commerce Media Real Estate Other Business
Finance & Accounting
Accounting & Bookkeeping Compliance Cryptocurrency & Blockchain Economics Finance Finance Cert & Exam Prep Financial Modeling & Analysis Investing & Trading Money Management Tools Taxes Other Finance & Accounting
IT & Software
IT Certification Network & Security Hardware Operating Systems Other IT & Software
Office Productivity
Microsoft Apple Google SAP Oracle Other Office Productivity
Personal Development
Personal Transformation Personal Productivity Leadership Career Development Parenting & Relationships Happiness Esoteric Practices Religion & Spirituality Personal Brand Building Creativity Influence Self Esteem & Confidence Stress Management Memory & Study Skills Motivation Other Personal Development
Design
Web Design Graphic Design & Illustration Design Tools User Experience Design Game Design Design Thinking 3D & Animation Fashion Design Architectural Design Interior Design Other Design
Marketing
Digital Marketing Search Engine Optimization Social Media Marketing Branding Marketing Fundamentals Marketing Analytics & Automation Public Relations Advertising Video & Mobile Marketing Content Marketing Growth Hacking Affiliate Marketing Product Marketing Other Marketing
Lifestyle
Arts & Crafts Beauty & Makeup Esoteric Practices Food & Beverage Gaming Home Improvement Pet Care & Training Travel Other Lifestyle
Photography & Video
Digital Photography Photography Portrait Photography Photography Tools Commercial Photography Video Design Other Photography & Video
Health & Fitness
Fitness General Health Sports Nutrition Yoga Mental Health Dieting Self Defense Safety & First Aid Dance Meditation Other Health & Fitness
Music
Instruments Music Production Music Fundamentals Vocal Music Techniques Music Software Other Music
Teaching & Academics
Engineering Humanities Math Science Online Education Social Science Language Teacher Training Test Prep Other Teaching & Academics
AWS Certification Microsoft Certification AWS Certified Solutions Architect - Associate AWS Certified Cloud Practitioner CompTIA A+ Cisco CCNA Amazon AWS CompTIA Security+ AWS Certified Developer - Associate
Graphic Design Photoshop Adobe Illustrator Drawing Digital Painting InDesign Character Design Canva Figure Drawing
Life Coach Training Neuro-Linguistic Programming Personal Development Mindfulness Meditation Personal Transformation Life Purpose Emotional Intelligence Neuroscience
Web Development JavaScript React CSS Angular PHP WordPress Node.Js Python
Google Flutter Android Development iOS Development Swift React Native Dart Programming Language Mobile Development Kotlin SwiftUI
Digital Marketing Google Ads (Adwords) Social Media Marketing Google Ads (AdWords) Certification Marketing Strategy Internet Marketing YouTube Marketing Email Marketing Retargeting
SQL Microsoft Power BI Tableau Business Analysis Business Intelligence MySQL Data Analysis Data Modeling Big Data
Business Fundamentals Entrepreneurship Fundamentals Business Strategy Online Business Business Plan Startup Freelancing Blogging Home Business
Unity Game Development Fundamentals Unreal Engine C# 3D Game Development C++ 2D Game Development Unreal Engine Blueprints Blender
30-Day Money-Back Guarantee
Development Software Engineering Software Practices

Clean Code

Learn how to write readable, understandable and therefore maintainable code - step by step, in an example-driven way
Bestseller
Rating: 4.7 out of 54.7 (1,183 ratings)
10,496 students
Created by Academind by Maximilian Schwarzmüller, Maximilian Schwarzmüller
Last updated 12/2020
English
English
30-Day Money-Back Guarantee

What you'll learn

  • Learn how to write code which is readable and understandable
  • Keep code alive by increasing maintainability with clean code
  • Learn about key principles, rules and concepts that allow you to write clean code
  • Learn with hands-on examples and "bad to good code" transformations
Curated for the Udemy for Business collection

Course content

8 sections • 94 lectures • 6h 41m total length

  • Preview02:27
  • Preview05:57
  • Preview03:31
  • Preview01:22
  • Preview03:16
  • Preview02:31
  • Preview02:04
  • Preview01:29
  • Preview03:17
  • Preview05:01
  • Module & Course Resources
    00:21

  • Module Introduction
    01:01
  • Why Good Names Matter
    03:23
  • Choosing Good Names
    04:03
  • Casing Conventions & Programming Languages
    03:07
  • Naming Variables & Properties - Theory
    03:48
  • Naming Variables & Properties - Examples
    04:44
  • Naming Functions & Methods - Theory
    02:36
  • Naming Functions & Methods - Examples
    03:10
  • Naming Classes - Theory
    01:56
  • Naming Classes - Examples
    02:34
  • Exceptions You Should Be Aware Of
    06:24
  • Common Errors & Pitfalls
    07:50
  • Demo Time!
    10:29
  • Your Challenge - Problem
    01:11
  • Your Challenge - Solution
    10:01
  • Module Resources
    00:03

  • Module Introduction
    01:06
  • Bad Comments
    03:52
  • Good Comments
    03:50
  • What is "Code Formatting" Really About?
    02:26
  • Vertical Formatting
    08:03
  • Formatting: Language-specific Considerations
    02:03
  • Horizontal Formatting
    03:36
  • Your Challenge - Problem
    01:01
  • Your Challenge - Solution
    06:19
  • Module Resources
    00:03

  • Module Introduction
    01:12
  • Analyzing Key Function Parts
    01:38
  • Keep The Number Of Parameters Low!
    06:38
  • Refactoring Function Parameters - Ideas & Concepts
    03:43
  • When One Parameter Is Just Right
    02:12
  • Two Parameters & When To Refactor
    04:07
  • Dealing With Too Many Values
    04:26
  • Functions With A Dynamic Number Of Parameters
    02:41
  • Beware Of "Output Parameters"
    04:19
  • Functions Should Be Small & Do One Thing!
    09:51
  • Why "Levels of Abstraction" Matter
    06:11
  • When Should You Split?
    02:51
  • Demo & Challenge
    13:09
  • Stay DRY - Don't Repeat Yourself
    02:03
  • Splitting Functions To Stay DRY
    05:41
  • Don't Overdo It - Avoid Useless Extractions
    06:51
  • Understanding & Avoiding (Unexpected) Side Effects
    12:01
  • Side Effects - A Challenge
    09:21
  • Why Unit Tests Matter & Help A Lot!
    06:15
  • Module Resources
    00:03

  • Module Introduction
    02:52
  • Useful Concepts - An Overview
    01:22
  • Introducing "Guards"
    02:53
  • Guards In Action
    06:33
  • Extracting Control Structures & Preferring Positive Phrasing
    03:17
  • Extracting Control Structures Into Functions
    04:03
  • Writing Clean Functions With Control Structures
    07:32
  • Inverting Conditional Logic
    08:07
  • Embrace Errors & Error Handling
    06:57
  • Creating More Error Guards
    04:27
  • Extracting Validation Code
    04:10
  • Error Handling Is One Thing!
    03:35
  • Using Factory Functions & Polymorphism
    08:56
  • Working with Default Parameters
    01:14
  • Avoid "Magic Numbers & Strings"
    00:34
  • Module Summary
    03:37
  • Module Resources
    00:03

  • Module Introduction
    01:42
  • Important: This is NOT an OOP or "Patterns & Principles" Course!
    02:14
  • Objects vs Data Containers / Data Structures
    04:10
  • Why The Differentiation Matters
    03:57
  • Classes & Polymorphism
    12:54
  • Classes Should Be Small!
    06:20
  • Understanding "Cohesion"
    04:49
  • The "Law Of Demeter" And Why You Should "Tell, Not Ask"
    11:40
  • The SOLID Principles
    02:05
  • The Single-Responsibility-Principle (SRP) & Why It Matters
    07:04
  • The Open-Closed Principle (OCP) & Why It Matters
    05:43
  • The Liskov Substitution Principle
    05:56
  • The Interface Segregation Principle
    04:18
  • The Dependency Inversion Principle
    07:00
  • Module Resources
    00:03

  • Concepts Summary & Checklist
    09:05

  • Staying Clean!
    02:56
  • Possible Next Steps
    02:43
  • Thanks & Goodbye!
    01:14
  • Bonus!
    00:06

Requirements

  • Basic programming knowledge (no matter which language) is required
  • NO prior experience on the topic of clean code is required
  • You DON'T need to know a specific programming language or paradigm

Description

As a developer, you should be able to write code which works - of course!

Unfortunately, a lot of developers write bad code nonetheless - even though the code works. Because "working code" is not the same as "clean code"!

This course teaches you how to write clean code - code which is easy to read and understand by humans, not just computers!

In this course, you'll learn what exactly clean code is and, more importantly, how you can write clean code. Because if your code is written in a clean way, it's easier to read and understand and therefore easier to maintain.

Because it's NOT just the computer who needs to understand your code - your colleagues and your future self needs to be able to understand it as well!

In this course, we'll dive into all the main "pain points" related to clean code (or bad code - depending on how you look at it) and you will not just learn what makes up bad code but of course also how to turn it into clean code.

Specifically, you will learn about:

  • Naming "things" (variables, properties, classes, functions, ...) properly and in a clean way

  • Common pitfalls and mistakes you should avoid when naming things

  • Comments and that most of them are bad

  • Good comments you might consider adding to your code

  • Code formatting - both horizontal and vertical formatting

  • Functions and how to limit the number of function parameters

  • How to write clean functions by focusing on "one thing"

  • How levels of abstraction help you split functions and keep them small

  • How to write DRY functions and avoid unexpected side effects

  • Avoiding deeply nested control structures with guards and by extracting functionality into functions

  • Errors and error handling as a replacement for if-statements

  • Objects & data containers/ data structures and why that differentiation could matter

  • Cohesion and how to write good (small!) classes

  • The Law of Demeter and why it matters for clean code

  • What the SOLID principles are and why they matter when it comes to writing clean code

  • Much more!

This course is a compilation of common patterns, best practices, principles and rules related to writing clean code.

In this course, you'll learn about a broad variety of concepts, rules, ideas, thoughts and principles and by the end of course, you'll have a good idea of what to keep in mind when it comes to writing clean code.

This is not a design patterns or general patterns course though - we will entirely focus on patterns, rules and concepts that help with writing clean code specifically.

All these concepts and rules are backed up by examples, code snippets and demos. And to ensure that you get the most out of this course, and you don't just learn a bunch of theory which you forget soon after, there also are plenty of challenges for you to apply what you learned!

This course uses Python, JavaScript and TypeScript for code examples but you don't need to know these languages to follow along and get a lot out of the course. In addition, the course does not focus on a specific programming style or paradigm (like functional programming, object-oriented programming etc) but instead covers general concepts and techniques which will always apply.

What are the course prerequisites?

  • Basic programming knowledge (no matter which language) is required!

  • You don't need to know any specific programming language or programming paradigm to follow along

  • NO prior experience with writing clean code is required

Who this course is for:

  • Developers who want to ensure that their code does not just work but it also easy to read, understand and maintain
  • Everyone who's serious about development and writing real-life code

Featured review

Jozef Plachy
Jozef Plachy
38 courses
22 reviews
Rating: 5.0 out of 53 months ago
Nice programming principles basic summary. Max is always very clear with explanations and it's valid also for this course. You don't get here one complete project in the end but it's demonstration of particular principles on code snippets. Cool Max, thx! :)

Instructors

Academind by Maximilian Schwarzmüller
Online Education
Academind by Maximilian Schwarzmüller
  • 4.6 Instructor Rating
  • 315,799 Reviews
  • 1,331,681 Students
  • 25 Courses

Bundling the courses and know how of successful instructors, Academind strives to deliver high quality online education. 

Online Education, Real-Life Success - that's what Academind stands for. Learn topics like web development, data analyses and more in a fun and engaging way.

Currently, you can find courses published by Maximilian Schwarzmüller and Manuel Lorenz, more instructors to come!

Keep learning!

Maximilian Schwarzmüller
Professional Web Developer and Instructor
Maximilian Schwarzmüller
  • 4.6 Instructor Rating
  • 570,285 Reviews
  • 1,350,643 Students
  • 35 Courses

Experience as (Web) Developer

Starting out at the age of 13 I never stopped learning new programming skills and languages. Early I started creating websites for friends and just for fun as well. Besides web development I also explored Python and other non-web-only languages. This passion has since lasted and lead to my decision of working as a freelance web developer and consultant. The success and fun I have in this job is immense and really keeps that passion burningly alive.

Starting web development on the backend (PHP with Laravel, NodeJS, Python) I also became more and more of a frontend developer using modern frameworks like React, Angular or VueJS in a lot of projects. I love both worlds nowadays!

As a self-taught developer I had the chance to broaden my horizon by studying Business Administration where I hold a Master's degree. That enabled me to work in a major strategy consultancy as well as a bank. While learning, that I enjoy development more than these fields, the time in this sector greatly improved my overall experience and skills.

Experience as Instructor

As a self-taught professional I really know the hard parts and the difficult topics when learning new or improving on already-known languages. This background and experience enables me to focus on the most relevant key concepts and topics. My track record of many 5-star rated courses, more than 1,000,000 students on Udemy as well as a successful YouTube channel is the best proof for that.

Whether working as development instructor or teaching Business Administration I always received great feedback. The most rewarding experience is to see how people find new, better jobs, build awesome web applications, acquire amazing projects or simply enjoy their hobby with the help of my content.

Together with Manuel Lorenz, I founded Academind to offer the best possible learning experience to our more than 1,000,000 students.

  • Udemy for Business
  • Teach on Udemy
  • Get the app
  • About us
  • Contact us
  • Careers
  • Blog
  • Help and Support
  • Affiliate
  • Terms
  • Privacy policy
  • Cookie settings
  • Sitemap
  • Featured courses
Udemy
© 2021 Udemy, Inc.