Coursera · DeepLearning.AI — Laurence Moroney
AI-Powered Software and System Design
Explore DeepLearning.AI’s software-design course for serialization, configuration, databases and design patterns, using AI-assisted development techniques.
Explore software-architecture courses for dependencies, patterns, and testing, with programming prerequisites and practical tradeoff analysis.
10 learning resources in this collection
Software architecture describes responsibilities and dependencies under real constraints. A pattern is useful when it addresses an observed problem. Existing code and an actual change make design principles more concrete than a diagram with no consequences.
Bring programming experience and check the breadth of a course before beginning. Look for tradeoffs and testability, not a universal structure. Additional abstraction has a cost and should be justified by the requirement it helps manage.
Propose two ways to isolate a changing feature in a small application. Compare dependencies, testing, and complexity, then choose the simplest approach that addresses the need.
Coursera · DeepLearning.AI — Laurence Moroney
Explore DeepLearning.AI’s software-design course for serialization, configuration, databases and design patterns, using AI-assisted development techniques.
Coursera · University of Colorado Boulder — Tyson Gern
Review Colorado Boulder’s advanced big-data architecture project, from an MVP and development environment through feature development and scaling.
Coursera · University of Colorado Boulder — Tyson Gern
Explore Colorado Boulder’s advanced architecture fundamentals for production software, distributed collaboration and big-data systems, with experience expected.
Udemy · Andrii Piatakha, Learn IT University
Review Andrii Piatakha’s software-architecture course for design principles, patterns, testing, and data, with programming prerequisites and scope advice.
Coursera · 28DIGITAL — Frank Gielen
Explore 28DIGITAL’s IoT architecture course for requirements, quality attributes, design tactics and patterns, following a structured design process.
Coursera · University of Colorado Boulder — Tyson Gern
Compare Colorado Boulder’s big-data patterns course for predictive models, distributed performance, workload distribution and highly available systems.
Coursera · University of Colorado System — Albert Glock
Compare Colorado’s software-design course for user needs, database design, patterns and language choices, examining where abstractions help or hinder.
Coursera · University of Colorado System — Albert Glock
Explore Colorado’s course on design within software development lifecycles, including high-level architecture, development flow and security problems.
Coursera · University of Colorado System — Albert Glock
Review the University of Colorado System’s software-design course for abstractions, dynamic models, UML tools, unit testing and engineering ethics.
Coursera · The Hong Kong University of Science and Technology — Kenneth Wai-Ting Leung
Review HKUST’s intermediate software-engineering course for system design, state machines, design patterns, quality assurance and development management.