DEV Community

Cover image for Java Study Group: Motivation, Roadmap and Goals
Ehis Edemakhiota
Ehis Edemakhiota

Posted on

Java Study Group: Motivation, Roadmap and Goals

Hi there!

My name is Ehis Edemakhiota and I’m excited to see that you’ve come here. I am a Software Engineer and Java is my first language- I have been writing Java for about 5 years. I enjoy writing and thinking in Java because it is structured, dependable and if understood well, can be used to build software that is scalable and reliable. I want to be like Java :).

A famous quote says: "if you want to go quickly then go alone, but if you want to go far then go with people" . I want to go far and I want to do so with you :). This is my motivation for starting this study group.

The goal of the study group is for beginner to expert level Java programmers to in 8-12 weeks be able to:

  • build production-ready Spring Boot applications,
  • be prepared for Java/ Spring Boot technical interviews,
  • contribute to real-world backend projects.

The topics of interest are:

  • Introduction to Java and Java control structures
  • Introduction to OOP and SOLID principles
  • Design Patterns
  • Java Arrays and Data structures
  • Functional programming in Java
  • Java concurrency
  • JVM Internals
  • Introduction to Spring Boot
  • Spring Boot persistence best practices
  • Spring Security
  • Logging and Observability in Spring Boot
  • Project Loom- Java 21 Virtual Threads
  • Problem solving with LeetCode

Some of the study materials include:

  • Spring Boot in Action
  • Spring Boot Up and Running
  • Spring Persistence Best Practices.
  • Relevant Medium and Baeldung.com articles
  • Articles from the Offical Spring documentation

Java & Spring Boot — 12-Week Study Group Roadmap

Format: 4 phases · 12 weekly sessions · Mixed levels (Beginner → Expert)

Goals: Build production-ready Spring Boot applications · Ace Java/Spring Boot interviews · Contribute to real-world backend projects


Overview

Phase Title Weeks Focus
1 Java Foundations 1–3 Core Java syntax, OOP, Design Patterns + LeetCode
2 Advanced Java 4–6 Data Structures, Functional Programming, Concurrency
3 JVM & Spring Boot 7–9 JVM Internals, Spring Boot Core, Persistence
4 Production-Ready 10–12 Security, Observability, Project Loom, Capstone

Study Materials

  1. Spring Boot in Action — Craig Walls
  2. Spring Boot Up and Running — Mark Heckler
  3. Spring Persistence Best Practices
  4. Relevant articles from Baeldung.com
  5. Relevant articles from Medium.com
  6. Official Spring Documentation

Phase 1 — Java Foundations (Weeks 1–3)

On-ramp for beginners while giving intermediates a chance to solidify fundamentals. LeetCode problems are embedded in each session to immediately apply concepts.


Week 1 — Introduction to Java

Level: Beginner

Subtitle: Setup, syntax, control flow & LeetCode warm-up

Learning Goal

Write basic Java programs, understand primitive types, operators, and control-flow structures. Begin applying these immediately through easy LeetCode problems.

Key Concepts

  • JDK / JRE setup
  • Primitive types
  • Operators
  • if / else / switch
  • for / while / do-while
  • Methods & scope
  • String basics

Study Materials

  • Baeldung: Java Basics series
  • Official Java SE documentation
  • Medium: Java 101 for beginners
  • LeetCode: Explore — Java card

LeetCode Practice

Focus: Basic loops, conditionals & arithmetic. Solve in Java; submit and read other Java solutions.

Problem Difficulty
1. Two Sum Easy
9. Palindrome Number Easy
13. Roman to Integer Easy
412. Fizz Buzz Easy
1342. Number of Steps to Zero Easy

Week 2 — OOP & SOLID Principles

Level: Beginner

Subtitle: Classes, inheritance, interfaces & modelling kata

Learning Goal

Design Java classes using core OOP concepts, apply SOLID principles, and model solutions to LeetCode problems as well-structured classes.

Key Concepts

  • Classes & Objects
  • Constructors
  • Inheritance & super
  • Polymorphism
  • Interfaces & abstraction
  • Encapsulation
  • SOLID principles (S, O, L, I, D)

Study Materials

  • Baeldung: Java OOP guide
  • Medium: SOLID principles in Java
  • Official Java Docs: OOP trail
  • LeetCode: OOP-friendly problems list

LeetCode Practice

Focus: Model your solution as a class first, then implement. Practice naming and responsibility separation.

Problem Difficulty
155. Min Stack Medium
146. LRU Cache Medium
706. Design HashMap Easy
232. Implement Queue using Stacks Easy
303. Range Sum Query — Immutable Easy

Week 3 — Design Patterns

Level: Intermediate

Subtitle: GoF creational, structural, behavioural & pattern-recognition kata

Learning Goal

Recognise and apply common GoF design patterns; spot patterns inside LeetCode problem structures and justify your pattern choice.

Key Concepts

  • Singleton
  • Factory / Abstract Factory
  • Builder
  • Observer
  • Strategy
  • Decorator
  • Facade

Study Materials

  • Baeldung: Design Patterns in Java
  • Refactoring.guru pattern catalogue
  • Medium: GoF patterns explained
  • LeetCode: Patterns in coding problems (Medium article)

LeetCode Practice

Focus: Identify which GoF pattern maps to the problem structure before coding. Discuss your choice with the group.

Problem Difficulty
284. Peeking Iterator Medium
341. Flatten Nested List Iterator Medium
460. LFU Cache Medium
716. Max Stack Medium
1603. Design Parking System Easy

Phase 2 — Advanced Java (Weeks 4–6)

Raises the ceiling with Collections, the Streams/Lambda API, and Concurrency — high-frequency interview topics and prerequisites for understanding Spring Boot internals.


Week 4 — Arrays & Data Structures

Level: Intermediate

Subtitle: Collections framework & Big-O

Learning Goal

Select the right Java data structure for a problem and understand time & space complexity trade-offs.

Key Concepts

  • Arrays & multi-dimensional arrays
  • ArrayList / LinkedList
  • HashMap / TreeMap
  • HashSet / TreeSet
  • Queue / Deque / Stack
  • Big-O analysis

Study Materials

  • Baeldung: Java Collections guide
  • Official Java Docs: Collections framework
  • Medium: Data structures in Java

Week 5 — Functional Programming in Java

Level: Intermediate

Subtitle: Streams, lambdas & Optional

Learning Goal

Write idiomatic functional-style Java using the Streams API, lambdas, and method references.

Key Concepts

  • Lambda expressions
  • Functional interfaces
  • Stream API (map / filter / reduce)
  • Collectors
  • Optional<T>
  • Method references
  • Parallel streams

Study Materials

  • Baeldung: Java 8 Streams series
  • Official Java Docs: Stream API
  • Baeldung: Guide to Optional

Week 6 — Java Concurrency

Level: Advanced

Subtitle: Threads, locks & CompletableFuture

Learning Goal

Write thread-safe concurrent Java programs and use modern concurrency utilities effectively.

Key Concepts

  • Thread lifecycle
  • synchronized & volatile
  • ExecutorService / thread pools
  • Callable & Future
  • CompletableFuture
  • ReentrantLock
  • java.util.concurrent package

Study Materials

  • Baeldung: Java Concurrency series
  • Official Java Docs: Concurrency utilities
  • Medium: CompletableFuture deep dive

Phase 3 — JVM & Spring Boot (Weeks 7–9)

Opens with JVM internals so developers understand why their Spring apps behave the way they do, then moves into Spring Boot core and persistence.


Week 7 — JVM Internals

Level: Advanced

Subtitle: Memory model, GC & class loading

Learning Goal

Understand JVM architecture in depth to profile, tune, and diagnose Java applications in production.

Key Concepts

  • ClassLoader subsystem
  • Heap / Stack / Metaspace
  • GC algorithms (G1, ZGC, Shenandoah)
  • JIT compilation
  • JVM tuning flags
  • JFR / VisualVM profiling

Study Materials

  • Baeldung: JVM Internals series
  • Medium: Deep dive into the JVM
  • Official JVM specification

Week 8 — Introduction to Spring Boot

Level: Beginner

Subtitle: Auto-config, DI & REST APIs

Learning Goal

Bootstrap a Spring Boot project and build a functional REST API, understanding auto-configuration and dependency injection.

Key Concepts

  • Spring IoC container
  • Dependency injection
  • Auto-configuration
  • Spring Boot starters
  • @RestController / @Service
  • application.yml & profiles

Study Materials

  • Spring Boot in Action — Craig Walls
  • Spring Boot Up and Running — Mark Heckler
  • Official spring.io documentation

Week 9 — Spring Persistence

Level: Intermediate

Subtitle: Spring Data JPA, transactions & optimisation

Learning Goal

Implement a robust, optimised persistence layer with Spring Data JPA and handle transactions correctly.

Key Concepts

  • Spring Data JPA repositories
  • Entity mapping & relationships
  • JPQL & native queries
  • N+1 problem & fetch strategies
  • Transaction management
  • Flyway / Liquibase migrations

Study Materials

  • Spring Persistence Best Practices (book)
  • Baeldung: Spring Data JPA series
  • Official Spring Data JPA docs

Phase 4 — Production-Ready (Weeks 10–12)

Covers the operational concerns real teams care about: security, observability, and modern concurrency with Project Loom.


Week 10 — Spring Security

Level: Intermediate

Subtitle: Authentication, JWT & OAuth2

Learning Goal

Secure a Spring Boot application using JWT, OAuth2, and method-level authorisation.

Key Concepts

  • Security filter chain
  • UserDetailsService
  • JWT authentication
  • OAuth2 / OpenID Connect
  • Role-based access control
  • @PreAuthorize / @Secured

Study Materials

  • Spring Boot Up and Running — Ch. Security
  • Baeldung: Spring Security series
  • Official Spring Security reference docs

Week 11 — Logging & Observability

Level: Intermediate

Subtitle: Structured logs, metrics & tracing

Learning Goal

Instrument a Spring Boot app for full production observability: structured logs, metrics, and distributed traces.

Key Concepts

  • SLF4J / Logback configuration
  • Structured / JSON logging
  • Spring Boot Actuator
  • Micrometer metrics
  • OpenTelemetry tracing
  • Grafana / Prometheus integration

Study Materials

  • Baeldung: Spring Boot logging guide
  • Official Spring Actuator docs
  • Medium: Observability in Spring Boot
  • OpenTelemetry Java docs

Week 12 — Project Loom & Capstone

Level: Advanced

Subtitle: Virtual threads + final project

Learning Goal

Understand Project Loom, migrate to virtual threads, and deliver a capstone production-ready Spring Boot project.

Key Concepts

  • Virtual threads (JEP 444)
  • Structured concurrency (JEP 453)
  • Thread-per-request model
  • Performance benchmarking
  • Loom + Spring Boot integration
  • Capstone project presentation

Study Materials

  • JEP 444: Virtual Threads specification
  • Baeldung: Project Loom guide
  • Official Spring Docs: Virtual threads
  • Medium: Spring Boot + Project Loom

Format of each session

  • 90–120 minutes per session — 20 min concept review, live coding exercise, then group discussion.
  • Beginners with intermediates during coding exercises. Experts take ownership of advanced weeks (6, 7, 12) as lead facilitators.
  • Where applicable, the last 20–30 minutes of each Phase 1 session for a live group LeetCode walk-through where one member screen-shares and others review the solution.
  • Where applicable, before live coding include a Design Patterns Kata: "Which GoF pattern does this problem smell like, and why?"
  • Capstone Project: Members of the study group will be paired. Each pair will work together to ship a small but complete production-grade Spring Boot application demonstrating persistence, security, and observability.

If this feels like you and you can commit for the duration of the study group, then I invite you to join me on this journey. Let's go far and grow deep together.

Cheers!

Top comments (0)