We may earn an affiliate commission when you visit our partners.
Udacity logo

Clean Code Principles

Giacomo Vianello, Ulrika Jägare, Justin Clifford Smith, PhD, Bradford Tuckfield, and Joshua Bernhard
Develop skills that are essential for deploying production machine learning models. First, you will put your coding best practices on auto-pilot by learning how to use PyLint and AutoPEP8. Then you will further expand your git and Github skills to work with...
Read more
Develop skills that are essential for deploying production machine learning models. First, you will put your coding best practices on auto-pilot by learning how to use PyLint and AutoPEP8. Then you will further expand your git and Github skills to work with teams. Finally, you will learn best practices associated with testing and logging used in production settings in order to ensure your models can stand the test of time.

What's inside

Syllabus

Get introduced to clean code principles, why and when to use them, and the history of clean code. Then, see what you'll be able to build by the end of the course!
Read more
Learn coding best practices, such as clean and modular code, code efficiency, refactoring, documentation, and linting.
Version control is crucial for any coding project, but becomes even more important when working in teams. Another new area in working with teams is the code review, which you'll also learn about here.
Find more coding best practices here, such as handling errors, testing and logging, as well as addressing model drift in machine learning models.
Take a colleague's messy juypter notebook for building a customer churn prediction model and implement all of the clean code principles you have learned throughout the course!

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Examines fundamental and advanced clean code principles, which are highly relevant to software engineering
Builds a solid foundation for beginners who are new to the fundamental principles of clean code
This course is highly accessible due to the background and experience level of the instructors
Taught by Giacomo Vianello, Ulrika Jägare, Justin Clifford Smith, Bradford Tuckfield, and Joshua Bernhard, all of whom are experts in software engineering, data science, machine learning, and education
Develops skills related to testing and logging, error handling, and version control in coding that are critical in a professional setting

Save this course

Save Clean Code Principles to your list so you can find it easily later:
Save

Activities

Coming soon We're preparing activities for Clean Code Principles. These are activities you can do either before, during, or after a course.

Career center

Learners who complete Clean Code Principles will develop knowledge and skills that may be useful to these careers:
Machine Learning Engineer
Machine Learning Engineers apply programming and knowledge of statistics and software to build, test, and deploy machine learning models at scale. They collaborate with data scientists, product managers, and other engineers to identify and solve business problems using machine learning. This course can help you build a foundation in clean coding principles, which are essential for developing and maintaining reliable and scalable machine learning models. The course covers topics such as code efficiency, refactoring, documentation, and testing, which are all important skills for Machine Learning Engineers.
Software Engineer
Software Engineers design, develop, and maintain software systems. They work on a variety of projects, from small personal projects to large enterprise systems. This course can help you develop the clean coding skills that are essential for success as a Software Engineer. You will learn how to write code that is easy to read, maintain, and debug, which will make you a more valuable asset to any team.
Data Scientist
Data Scientists use their knowledge of statistics, programming, and machine learning to extract insights from data. They work on a variety of projects, from developing predictive models to identifying trends in data. This course can help you develop the coding skills that are essential for success as a Data Scientist. You will learn how to write code that is efficient, reliable, and easy to understand, which will make you a more valuable asset to any team.
Product Manager
Product Managers are responsible for the planning, development, and launch of new products. They work closely with engineers, designers, and marketers to ensure that products meet the needs of customers. This course can help you develop the clean coding skills that are essential for success as a Product Manager. You will learn how to write code that is easy to read and maintain, which will make it easier for engineers to implement your ideas.
Web Developer
Web Developers design and develop websites. They work on a variety of projects, from small personal websites to large enterprise websites. This course can help you develop the clean coding skills that are essential for success as a Web Developer. You will learn how to write code that is efficient, reliable, and easy to maintain, which will make your websites more user-friendly and search engine friendly.
Quality Assurance Analyst
Quality Assurance Analysts test software to identify and fix bugs. They work on a variety of projects, from small personal projects to large enterprise systems. This course can help you develop the coding skills that are essential for success as a Quality Assurance Analyst. You will learn how to write code that is efficient, reliable, and easy to understand, which will make it easier for you to test software and find bugs.
Business Analyst
Business Analysts help businesses identify and solve problems. They work on a variety of projects, from developing new business processes to improving customer service. This course can help you develop the coding skills that are essential for success as a Business Analyst. You will learn how to write code that is efficient, reliable, and easy to understand, which will make it easier for you to analyze data and communicate your findings.
Data Analyst
Data Analysts collect, analyze, and interpret data to identify trends and patterns. They work on a variety of projects, from developing dashboards to identifying fraud. This course can help you develop the coding skills that are essential for success as a Data Analyst. You will learn how to write code that is efficient, reliable, and easy to understand, which will make it easier for you to analyze data and communicate your findings.
Technical Writer
Technical Writers create documentation for software and other technical products. They work on a variety of projects, from writing user manuals to developing online help systems. This course can help you develop the coding skills that are essential for success as a Technical Writer. You will learn how to write code that is efficient, reliable, and easy to understand, which will make it easier for you to create documentation that is clear and concise.
Systems Analyst
Systems Analysts design and implement computer systems. They work on a variety of projects, from small personal projects to large enterprise systems. This course may help you develop the coding skills that are essential for success as a Systems Analyst. You will learn how to write code that is efficient, reliable, and easy to understand, which will make it easier for you to design and implement computer systems.
Project Manager
Project Managers plan and execute projects. They work on a variety of projects, from small personal projects to large enterprise projects. This course may help you develop the coding skills that are essential for success as a Project Manager. You will learn how to write code that is efficient, reliable, and easy to understand, which will make it easier for you to manage projects and communicate with team members.
Software Architect
Software Architects design and develop software systems. They work on a variety of projects, from small personal projects to large enterprise systems. This course may help you develop the coding skills that are essential for success as a Software Architect. You will learn how to write code that is efficient, reliable, and easy to understand, which will make it easier for you to design and develop software systems that meet the needs of your users.
UX Designer
UX Designers design the user experience for websites and other digital products. They work on a variety of projects, from small personal projects to large enterprise projects. This course may help you develop the coding skills that are essential for success as a UX Designer. You will learn how to write code that is efficient, reliable, and easy to understand, which will make it easier for you to design user interfaces that are both user-friendly and visually appealing.
Database Administrator
Database Administrators manage and maintain databases. They work on a variety of projects, from small personal databases to large enterprise databases. This course may help you develop the coding skills that are essential for success as a Database Administrator. You will learn how to write code that is efficient, reliable, and easy to understand, which will make it easier for you to manage and maintain databases.
Network Administrator
Network Administrators manage and maintain computer networks. They work on a variety of projects, from small personal networks to large enterprise networks. This course may help you develop the coding skills that are essential for success as a Network Administrator. You will learn how to write code that is efficient, reliable, and easy to understand, which will make it easier for you to manage and maintain computer networks.

Reading list

We've selected 13 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 Clean Code Principles.
Is commonly used by industry professionals to guide them through best practices in writing clean code. It teaches techniques for writing modular code that is easy to read, maintain, and test.
Introduces test-driven development (TDD), a technique for writing clean and maintainable code by writing tests first.
Provides a practical guide to unit testing, a fundamental technique for ensuring the reliability and correctness of code.
Provides a comprehensive guide to domain-driven design (DDD), a software design approach that focuses on modeling the domain of the application.
Provides a visual and engaging introduction to design patterns, a collection of reusable solutions to common software design problems.
Provides a practical guide to agile development in C#, covering topics such as testing, refactoring, and continuous delivery.
Provides a code of conduct for professional programmers, covering topics such as ethics, professionalism, and craftsmanship.
Provides a practical guide to working with legacy code, which is often poorly written and difficult to maintain.
Provides a practical guide to software architecture, covering topics such as design patterns, scalability, and performance.
This classic book provides a comprehensive catalog of design patterns, which are reusable solutions to common software design problems.
Provides a practical guide to agile testing, covering topics such as test-driven development, continuous integration, and automated testing.
Provides a comprehensive guide to DevOps, a set of practices that combine software development and operations to improve the speed and reliability of software delivery.

Share

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

Similar courses

Here are nine courses similar to Clean Code Principles.
Deployment of Machine Learning Models
MLOps (Machine Learning Operations) Fundamentals
Machine Learning Operations (MLOps): Getting Started
Best Practices in ASP.NET Core 5: Entities, Validation,...
AI Workflow: Machine Learning, Visual Recognition and NLP
MLOps1 (Azure): Deploying AI & ML Models in Production...
AI Workflow: AI in Production
MLOps for Scaling TinyML
Deploying Machine Learning Models in Production
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