Step 1 • Foundations
Syntax, Types, and Control Flow beginner Learn expressions, conditionals, loops, primitive types, reference types, arrays, and the syntax rules that shape everyday Java code.
Language Java 8h Step 2 • Foundations
Classes, Objects, and Encapsulation beginner Learn fields, methods, constructors, visibility modifiers, and how encapsulation protects invariants in object-oriented Java code.
Language Java 8h Step 3 • Foundations
Modern Java Features (Records, Sealed Classes, Pattern Matching) beginner Use records for immutable data, sealed classes for closed hierarchies, and pattern matching in switch for expressive, safe branching.
Language Java 8h Step 4 • Foundations
Collections, Generics, and the Type System beginner Learn collection interfaces and implementations, generic type parameters, bounded wildcards, and when collection choice changes performance.
Language Java 8h Step 5 • Foundations
Exceptions, Error Handling, and Immutability beginner Handle exceptions deliberately using checked vs unchecked strategy, use Optional for nullable returns, and apply immutability to reduce accidental side effects.
Language Java 8h Step 6 • Tooling
Streams, Lambdas, and Functional Programming intermediate Use streams and lambdas to express filtering, mapping, grouping, and reduction clearly without obscuring intent with imperative loops.
Language Java 8h Step 7 • Tooling
Build Tools, Dependencies, and Module System intermediate Use Maven or Gradle for dependency management, multi-module organization, and reproducible builds. Understand the Java module system for larger codebases.
Build Java 8h Step 8 • Tooling
I/O, Files, and Standard Library Essentials intermediate Use the NIO.2 file API, standard I/O, date/time, string formatting, and the most useful utilities from the Java standard library.
Language Java 8h Step 9 • Runtime
Concurrency, Executors, and Thread Safety intermediate Learn threads, ExecutorService, CompletableFuture, locks, volatile, and the cost of shared mutable state before writing concurrent code.
Backend Java 10h Step 10 • Runtime
Virtual Threads and Structured Concurrency (Java 21+) advanced Use virtual threads to scale I/O-bound workloads without thread pool tuning, and learn structured concurrency to manage task lifetimes safely.
Backend Java 8h Step 11 • Quality
Testing with JUnit 5 and Mockito intermediate Test pure logic, service behavior, and failure paths with JUnit 5, AssertJ, and Mockito so refactoring stays safe in larger Java codebases.
Testing Java 8h Step 12 • Quality
Integration Testing with Testcontainers advanced Run integration tests against real databases, message brokers, and external services using Testcontainers for reproducible, isolated test environments.
Testing Java 8h Step 13 • Quality
Static Analysis, Formatting, and Quality Gates intermediate Add Checkstyle, SpotBugs, PMD, and Error Prone to catch bugs, enforce style, and maintain code quality standards automatically in CI.
Testing Java 6h Step 14 • Advanced
JVM Internals, GC, and Performance Profiling advanced Understand the JVM memory model, garbage collectors (G1, ZGC), JIT compilation, and how to use profilers to find allocation and contention bottlenecks.
Backend Java 10h Step 15 • Advanced
Design Patterns and Clean Architecture advanced Apply Gang of Four patterns (Builder, Factory, Strategy, Observer, Decorator) deliberately and organize code around clean architecture principles.
Backend Java 8h Step 16 • intermediate
Database Access — JDBC, JPA & Hibernate intermediate Connect to relational databases using JDBC (DriverManager, PreparedStatement, ResultSet, transactions). Use JPA (Jakarta Persistence API) for ORM: entity mapping (@Entity, @Table, @Column), relationships (@OneToMany, @ManyToOne, @ManyToMany), JPQL queries. Configure Hibernate as the JPA provider: session factory, caching (L1/L2), lazy vs eager fetching, N+1 problem and how to fix it with JOIN FETCH. Use Spring Data JPA for repository-pattern data access.
Backend Java 10h Step 17 • Ship It
Packaging, Versioning, and Publishing advanced Package reusable libraries to Maven Central, apply semantic versioning, write meaningful changelogs, and maintain backward compatibility.
Hosting Java 8h