A linear, self-contained curriculum — 101 modules — from zero Java to intermediate/advanced.
Stack.Java is a strictly linear, zero-dependency curriculum designed for developers who already know at least one programming language (Python, JavaScript, C, etc.) and want to go from zero Java knowledge to intermediate/advanced Java proficiency.
No build tools. No site generators. No fluff. Just plain Markdown lessons, runnable code examples, practice exercises with solutions, and a quiz per module — all requiring nothing more than a terminal and JDK 21.
Who this is for: Developers who know programming basics but are new to Java. Explanations focus on what makes Java unique — static typing, JVM, checked exceptions, the collections framework — without re-teaching universal programming concepts.
| Requirement | Details |
|---|---|
| JDK 21 LTS | Several modules cover records, sealed classes, and pattern matching — all require modern Java. Download from Adoptium or your package manager. |
| Verify installation | Run java -version — you should see version 21 or later. |
| IDE (optional) | IntelliJ IDEA Community Edition or VS Code with Java extensions recommended for syntax highlighting and navigation, but any text editor + terminal works. |
Modules must be completed in strict order — each builds on the one before it.
┌─────────────────────────────────────────────────────────────┐
│ ① Read the lesson → ② Run the examples │
│ │
│ ③ Do the exercises → ④ Check your work │
│ │
│ ⑤ Take the quiz → ⑥ Move to the next module │
└─────────────────────────────────────────────────────────────┘
- Read
README.md— the lesson with theory, code walkthroughs, and a quiz. - Run the examples — navigate to
examples/, compile and run each.javafile. - Do the exercises — open
exercises/README.mdand attempt every problem. - Check your work — compare against the files in
solutions/. - Take the quiz — at the bottom of each
README.md, then check your answers. - Repeat for the next module.
cd module-X-topic-name/examples
javac ExampleName.java
java ExampleNameAll examples and solutions use no package declarations (except the dedicated packages module), so they compile with a single javac command and run with a single java command.
| Phase | Modules | Focus |
|---|---|---|
| 1 | 00–03 | Introduction & Setup |
| 2 | 04–19 | Core Language Fundamentals |
| 3 | 20–38 | Object-Oriented Programming |
| 4 | 39–44 | Exception Handling & Generics |
| 5 | 45–53 | Collections Framework |
| 6 | 54–60 | Functional Java |
| 7 | 61–68 | I/O and Concurrency |
| 8 | 69–72 | Databases & Networking |
| 9 | 73–74 | Tooling & Testing |
| 10 | 75–80 | Design & Architecture |
| 11 | 81–86 | Modern Java Features |
| 12 | 87–91 | GUI Programming |
| 13 | 92–95 | Introduction to Spring |
| 14 | 96–100 | Professional Practices & Capstone |
| # | Module |
|---|---|
| 69 | JDBC Basics — Connecting to a Database |
| 70 | JDBC CRUD Operations |
| 71 | Networking Basics (Sockets) |
| 72 | The Java HTTP Client |
| # | Module |
|---|---|
| 73 | Introduction to Build Tools (Maven and Gradle, Conceptual Overview) |
| 74 | Unit Testing Concepts with JUnit |
| # | Module |
|---|---|
| 81 | The Reflection API |
| 82 | Annotations |
| 83 | Records (Java 16+) |
| 84 | Sealed Classes (Java 17+) |
| 85 | Pattern Matching (instanceof and switch expressions) |
| 86 | The Java Platform Module System (JPMS) |
| # | Module |
|---|---|
| 87 | Introduction to GUI Programming — Swing Basics |
| 88 | Swing — Layouts and Event Handling |
| 89 | JavaFX Basics |
| 90 | JavaFX — FXML and Styling |
| 91 | Mini Project: Building a Simple JavaFX Desktop App |
| Area | Details |
|---|---|
| Java Language | Syntax, OOP, generics, enums, records, sealed classes, pattern matching |
| Core APIs | Collections, streams, lambdas, date/time, I/O, NIO, networking |
| Concurrency | Threads, executors, synchronized, CompletableFuture, concurrent collections |
| Professional Tools | JUnit testing, logging, build tools (conceptual), debugging, clean code |
| GUI Programming | Swing basics, JavaFX with FXML and styling |
| Spring Boot | DI, REST APIs, Spring Data JPA (introductory) |
| JVM Internals | Memory model, garbage collection, class loading, bytecode, reflection |
| Design & Architecture | Patterns (Singleton, Factory, Builder, Observer, Strategy, Decorator), SOLID principles |
| Capstone Project | Plan, build, and refine a full console application applying everything learned |
Congratulations on completing all 101 modules. Here are logical next steps to continue your Java journey:
| Path | Description |
|---|---|
| Kotlin | A modern JVM language that interoperates seamlessly with Java; official language for Android development. |
| Android Development | Build mobile apps using Java or Kotlin with Android Studio. |
| Spring Ecosystem | Deep dive into Spring Cloud, Spring Security, Spring Reactive (WebFlux), and Spring Batch. |
| Microservices | Service discovery, API gateways, distributed tracing, Docker, and Kubernetes. |
| Open Source Java | Contribute to Spring Boot, Hibernate, Apache Kafka, Elasticsearch, or the OpenJDK itself. |
| JVM Languages | Explore Scala, Clojure, or Groovy to see different paradigms on the same runtime. |
Built with ☕ and Markdown. Licensed under MIT.
