We may earn an affiliate commission when you visit our partners.
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 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.

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

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

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Clean Code Principles with these activities:
Explore the official PyLint and AutoPEP8 documentation
Expand your knowledge of PyLint and AutoPEP8 by exploring the official documentation.
Browse courses on Coding Best Practices
Show steps
  • Read through the PyLint documentation.
  • Read through the AutoPEP8 documentation.
  • Refer to the documentation while using PyLint and AutoPEP8 in your coding projects.
Practice using PyLint and AutoPEP8 for code formatting
Practice code formatting using PyLint and AutoPEP8 to improve code readability and maintainability.
Browse courses on Coding Best Practices
Show steps
  • Install and configure PyLint and AutoPEP8.
  • Format your Python code using PyLint and AutoPEP8.
  • Review the code formatting suggestions provided by PyLint and AutoPEP8.
  • Implement the suggested code formatting changes.
Learn about advanced Git and GitHub features
Enhance your skills by exploring advanced features of Git and GitHub.
Browse courses on Version Control
Show steps
  • Explore branching and merging strategies.
  • Learn about Git submodules.
  • Discover how to use GitHub Actions for automated workflows.
Five other activities
Expand to see all activities and additional details
Show all eight activities
Complete coding exercises on Git and GitHub
Practice using Git and GitHub to manage and collaborate on code projects.
Browse courses on Version Control
Show steps
  • Create a Git repository for a coding project.
  • Add, commit, and push your code changes to the repository.
  • Create a pull request to merge your changes into the main branch.
  • Review and approve pull requests from other team members.
Read blog posts and articles on best practices for testing and logging
Stay up-to-date with the latest best practices for testing and logging.
Browse courses on Testing
Show steps
  • Search for blog posts and articles on testing best practices.
  • Read through the articles and identify key takeaways.
  • Apply the best practices to your own machine learning projects.
Test and log your machine learning models
Practice testing and logging machine learning models to ensure accuracy and reliability.
Browse courses on Testing
Show steps
  • Write unit tests for your model's functionality.
  • Implement logging to track model performance and errors.
  • Use testing and logging to identify and fix any issues with your model.
Build a Python package for a specific machine learning task
Apply your knowledge by building a Python package for a specific machine learning task.
Browse courses on Machine Learning
Show steps
  • Identify a specific machine learning task.
  • Design and implement the machine learning algorithm.
  • Create a Python package for your algorithm.
  • Publish your package on PyPI.
Write a blog post summarizing the key takeaways from the course
Solidify your understanding by writing a blog post summarizing the key takeaways from the course.
Browse courses on Writing
Show steps
  • Review the course materials.
  • Identify the key takeaways from the course.
  • Write a blog post that summarizes the key takeaways.
  • Share your blog post with others.

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.
MLOps (Machine Learning Operations) Fundamentals
Deployment of Machine Learning Models
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