Practical Object-Oriented Design I (POOD-I) is a comprehensive course suitable for both beginners and experienced developers interested in honing their skills in object-oriented programming. Through a flexible learning format, this course provides a robust understanding of OOD principles and their applications.
Course Structure and Learning Format
The course is designed for individual learning at your own pace and convenience. It includes a combination of engaging video lessons and hands-on practical assignments. By writing code and gradually improving solutions, students develop a deeper understanding of how to think in objects and adapt to changing requirements, enhancing design flexibility and adaptability.
Key Learning Outcomes
Understanding Object-Oriented Design Principles
Throughout the course, students will learn critical object-oriented design (OOD) principles. These principles are essential for reducing the costs associated with developing new software and simplifying the maintenance of existing systems. Whether you're looking to create code that is enjoyable and easy to maintain or you're frustrated with cumbersome and tangled applications, this course offers the insights you need.
Refactoring and Testing
The course goes beyond design principles to include essential refactoring techniques and the integration of testing into your development workflow. This not only accelerates your current tasks but also reduces errors in future code, making your development process more efficient.
Sandi Metz is a US software engineer and the author of Practical Object-Oriented Design in Ruby (POODR) and 99 Bottles of OOP — two of the most influential modern books on object-oriented design. Her teaching has shaped how a generation of working developers think about the craft of writing maintainable code.
Her CourseFlix listing carries Practical Object-Oriented Design — Course I. Material is paid and aimed at engineers ready to study software design at the level of code that survives years of change.
Watch Online 66 lessons
This is a demo lesson (10:00 remaining)
You can watch up to 10 minutes for free. Subscribe to unlock all 66 lessons in this course and access 10,000+ hours of premium content across all courses.
Stop getting stuck in a difficult codebase that's hard to modify. Learn how to keep a growing codebase nimble and easily adjustable so that you can focus on.
Learn about modern approaches to microservices design. Patterns, testing, and deployment strategies from Chris Richardson can help create reliable systems.
Frequently asked questions
What prior knowledge is required before taking this course?
This course is suitable for both beginners and experienced developers. While no specific prior knowledge of object-oriented programming is required, familiarity with basic programming concepts will be beneficial. The course is designed to gradually introduce and build upon object-oriented design principles, making it accessible to those who are new to the subject as well as those looking to deepen their understanding.
What projects will I build during the course?
Throughout the course, students engage in hands-on practical assignments that involve writing and improving code to better understand object-oriented design principles. The course includes exercises such as refactoring existing code and implementing design patterns, which help in understanding principles like the Open/Closed Principle and Liskov Substitution Principle.
Who is the target audience for this course?
The course is aimed at both beginners and experienced developers who are interested in enhancing their skills in object-oriented programming. It is particularly beneficial for those who wish to reduce development costs, simplify system maintenance, and create more adaptable and maintainable code.
How does this course compare to other object-oriented design courses?
This course uniquely combines video lessons and practical assignments to teach object-oriented design principles. It emphasizes writing code and improving solutions to adapt to changing requirements, unlike some courses that may focus solely on theoretical concepts. Lessons cover a wide range of topics from refactoring techniques to testing integration, providing a comprehensive understanding of OOD.
What specific tools or platforms will be used in the course?
The course does not focus on specific tools or platforms but rather on the foundational principles of object-oriented design. Students will engage in exercises like recognizing code smells, refactoring systematically, and following principles such as the Law of Demeter and Liskov Substitution Principle. These concepts are applicable across various programming languages and environments.
What topics are not covered in this course?
While the course provides a robust understanding of object-oriented design and related principles, it does not cover advanced programming topics such as concurrency, database management, or specific front-end or back-end frameworks. It focuses on design principles and their application to improve code quality and adaptability.
What is the time commitment required to complete the course?
The course consists of 66 lessons and is designed for self-paced learning. The time commitment will vary based on individual learning speeds, but students should expect to spend several weeks engaging with video lessons and completing practical assignments to fully grasp the object-oriented design principles covered.