New to design language
You have written Java classes but want to understand why some systems stay clean and others rot quickly.
This roadmap is structured so each step answers a question that the next step depends on. We begin with why design matters, then build object thinking, then principles, then process, then modelling language, then failure modes, then patterns, then architecture decisions. That order prevents a common trap: learning advanced vocabulary before you can judge when it helps.
You have written Java classes but want to understand why some systems stay clean and others rot quickly.
You know patterns and frameworks, but you want a clearer mental model that connects them into one design system.
You already make design decisions and want a stronger teaching sequence, terminology spine, and trade-off framework.
| Step | Focus | Why it comes here | Batch status |
|---|---|---|---|
| 1 | Hero / Why this matters | Motivation first. Design only sticks when the cost of bad design is visible. | Available now via the landing page |
| 2 | Learning roadmap | Before depth, you need orientation. | Available now |
| 3 | OOP foundations | Patterns and architecture are hard to understand without a strong view of objects, responsibilities, and relationships. | Available now |
| 4 | Design principles | Principles explain why one design feels healthy before you attach any pattern name to it. | Available now |
| 5 | OOA/OOD process | Once you understand objects and principles, you can study how to move from requirements to design. | Available now |
| 6 | UML | Modelling language matters more when you already know what you are trying to model. | Available now |
| 7 | Anti-patterns | You learn faster when you can recognize what goes wrong in real code. | Available now |
| 8 | GoF patterns | Patterns are easier to judge after you can spot responsibility and boundary problems. | Available now |
| 9 | Dependency Injection / IoC | This is the bridge from design theory into framework-shaped Java systems. | Available now |
| 10 | J2EE / Jakarta EE patterns | Enterprise patterns land better after GoF and DI have already established the building blocks. | Available now |
| 11 | Architectural styles | System-level trade-offs become clearer once you understand internals, principles, and failure modes. | Available now |
| 12 | Domain-Driven Design | DDD depends on strong modelling, language discipline, and boundary thinking. | Available now |
| 13 | Microservices & distributed patterns | Distributed design should come after bounded contexts and architecture trade-offs are already understood. | Available now |
| 14 | Concurrency patterns | Concurrency belongs later because it compounds design mistakes and boundary mistakes. | Available now |
| 15 | Reference / downloads / appendix | Reference pages are most useful after the conceptual spine exists. | Available now |
Do not jump into GoF patterns first. Read the problem page, then roadmap, then design failures, then OOP foundations when Batch 2 lands.
Ask where your current knowledge is uneven. Many senior developers know patterns but are weaker on modelling, anti-patterns, or DDD boundary choices.
The same Order Management domain will recur throughout the vertical: Customer,
Product, Cart, Order, Payment,
Shipment, and Notification. That continuity helps you watch the same system
evolve under different design lenses instead of re-learning the business story on every page.