Software Engineering / Design Patterns
About This Course
Writing code that works is the easy part. Writing code that holds together six months later, when requirements change and your team doubles in size that's what this course is about.
Software Engineering & Design Patterns covers the principles and patterns that professional developers use to build systems that are maintainable, extensible, and actually understandable by other humans. You'll move from the fundamentals of the software development lifecycle through OOP principles and SOLID, then into the classic Gang of Four design patterns creational, structural, and behavioral and finally to the architectural patterns that structure entire applications.
Every pattern is taught in context: not just "here's how it works" but "here's the problem it solves and what goes wrong without it."
What you'll cover:
- Software engineering fundamentals: SDLC phases, Agile vs. Waterfall
- OOP recap and the SOLID principles
- Design heuristics: DRY, KISS, YAGNI, coupling and cohesion
- Creational patterns: Singleton, Factory Method, Abstract Factory, Builder
- Structural patterns: Adapter, Decorator, Facade, Proxy
- Behavioral patterns: Observer, Strategy, Command, Template Method
- Architectural patterns: MVC, Repository, Dependency Injection
- Anti-patterns: what to recognize and how to refactor out of them
Who this is for: Intermediate developers who can write working code but want to level up their design skills, CS students studying software engineering, and anyone who's inherited a codebase and thought "why is this so hard to change?"
Prerequisites: Comfortable with OOP in at least one language (Python, Java, C#, or similar). You should know what a class and interface are before starting.
Watch the Intro Video
Course Comments
0 comments
Lectures
23 lectures
Level
Beginner