Back to Java notes

Learning roadmap

Java design & patterns

Choose a goal, then follow each stage as an ordered, explained outline.

Learning goal

Learn deeply

Build a durable mental model, then transfer it into a working application.

Object design

Stage purpose: Establish the vocabulary and first working mental model.

Required background: Complete the linked prerequisites below or bring equivalent experience.

Expected outcome: Explain the core idea and use it in a small example.

Estimated time: 65 minutes

  1. Lesson · Estimated time: 35 minutes

    Object Class, equals/hashCode & SOLID

    Outcomes
    • Implement equals and hashCode together
    • Explain the HashSet contract

    Prerequisites: OOPs Concepts

    Evidence: Practise the outcome in code and record what you learned.

    Current status: Not started

    Recommended next: Sorting — Comparable & Comparator — Carry the object contract into ordering so collections can compare values predictably.

Boundaries and principles

Stage purpose: Connect the concepts into a repeatable problem-solving model.

Required background: Complete the linked prerequisites below or bring equivalent experience.

Expected outcome: Apply the model to a representative exercise without copying a recipe.

Estimated time: 80 minutes

  1. Lesson · Estimated time: 45 minutes

    Low Level Design — OOP & UML

    Outcomes
    • Turn requirements into collaborating classes
    • Choose composition for replaceable parts

    Prerequisites: Object Class, equals/hashCode & SOLID, OOPs Concepts

    Evidence: Practise the outcome in code and record what you learned.

    Current status: Not started

    Recommended next: SOLID Principles — ISP, DIP & LSP — Pressure-test the class boundaries against dependency and substitution failures.

  2. Lesson · Estimated time: 35 minutes

    SOLID Principles — ISP, DIP & LSP

    Outcomes
    • Spot coupling in a design
    • Defend an interface boundary

    Prerequisites: Low Level Design — OOP & UML

    Evidence: Practise the outcome in code and record what you learned.

    Current status: Not started

    Recommended next: Factory Method Pattern — Move from principles to a pattern that isolates object creation and variation.

Creational patterns

Stage purpose: Transfer the concepts into a realistic implementation task.

Required background: Complete the linked prerequisites below or bring equivalent experience.

Expected outcome: Produce a small artifact that proves the decision works.

Estimated time: 70 minutes

  1. Lesson · Estimated time: 30 minutes

    Factory Method Pattern

    Outcomes
    • Recognize the factory method seam
    • Extend creation without changing callers

    Prerequisites: SOLID Principles — ISP, DIP & LSP

    Evidence: Practise the outcome in code and record what you learned.

    Current status: Not started

    Recommended next: Creational Design Patterns — Compare factory method with builder and singleton before choosing a creational pattern.

  2. Lesson · Estimated time: 40 minutes

    Creational Design Patterns

    Outcomes
    • Choose a creational pattern by problem
    • Explain builder immutability and singleton risks

    Prerequisites: Factory Method Pattern

    Evidence: Practise the outcome in code and record what you learned.

    Current status: Not started

    Recommended next: Complete this path by applying these outcomes in your own project.