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
- Spring Boot in Action — Craig Walls
- Spring Boot Up and Running — Mark Heckler
- Spring Persistence Best Practices
- Relevant articles from Baeldung.com
- Relevant articles from Medium.com
- 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) CollectorsOptional<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 CompletableFutureReentrantLock-
java.util.concurrentpackage
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)