Courses from 1000+ universities
Discover an easier way to explore affordable, credit-worthy online courses with our expanded community college catalog.
600 Free Google Certifications
Psychology
Digital Marketing
Video Editing
Songwriting: Writing the Lyrics
A Scuola con Raffaello
Food as Medicine
Organize and share your learning with Class Central Lists.
View our Lists Showcase
Learn Software Design, earn certificates with paid and free online courses from Stanford, University of Pennsylvania, Johns Hopkins, UC Berkeley and other top universities around the world. Read reviews to decide if a class is right for you.
Learn code design so you don't get lost into your own code again. Learn how to write clean, readable code.
Complete Guide to Gang Of Four Design Patterns, SOLID Principles and Object Oriented Programming Using Javascript.
This course teaches how to write maintainable and flexible object-oriented code.
Learn the SOLID programming principles to write more stable, scalable code. Get detailed examples and real-world examples of SOLID in action.
This course focuses on getting the level of abstraction "just right" for our applications.
This course tackles the issues of designing a complex application so that it can be covered with high quality tests.
Ensure that your code is effective, understandable, and flexible by identifying and avoiding code and design smells.
Interactive workshop on user-centric software design, focusing on listening to users, wireframing ideas, and testing work. Learn practical methods for effective collaboration and alignment in product development.
Explore connascence in software architecture, evaluating coupling and its impact on maintainability through practical web application examples.
Explore software design flaws, their impact on user experience, and innovative solutions using concept-based approaches. Learn to create more intuitive and effective systems.
Explore computer safety issues in critical systems, examining real-world failures, design principles, and industry standards to enhance engineering practices for safer technology.
Explore extensible Python coding techniques to create robust, maintainable software. Learn patterns for composable code, event-driven architectures, and pluggable systems to extend functionality without modifying existing code.
Dave Farley explores evolutionary software design, balancing complexity management with adaptability, and avoiding over-engineering while keeping systems flexible for future changes.
Discover strategies to reduce software dependencies, enhancing code quality and maintainability. Learn practical techniques for creating robust, flexible, and scalable C++ applications.
Get personalized course recommendations, track subjects and courses with reminders, and more.