Month 1 - Language & Toolchain (Weeks 1–4)¶
The goal of Month 1 is not "learn Java syntax." It is to install the modern Java mental model - records, sealed types, pattern matching, virtual threads as a normal default - and the toolchain literacy (Maven/Gradle, JPMS, JUnit 5, javac, jshell, jlink) that every subsequent month assumes.
Baseline JDK: Java 25 LTS. Install via SDKMAN (sdk install java 25-tem). If your shop is on 21 LTS, every example here still works; flagged where it doesn't.
Weeks¶
- Week 1 - Modern Syntax and the Type System
- Week 2 - Build Tools, Dependencies, and JPMS
- Week 3 - Collections, Streams, and
java.time - Week 4 - Testing, Logging, and the Definition-of-Done
Month 1 Exit Criteria¶
You can:
- Read modern Java (records, sealed, pattern matching, text blocks) without translating in your head.
- Set up a Maven or Gradle project from scratch with JUnit 5, AssertJ, SLF4J + Logback, ErrorProne.
- Explain JPMS in three sentences and decide whether your project needs it (almost certainly: no).
- Write a jshell snippet to verify any small Java behavior in seconds.
- Justify every dependency in your pom.xml / build.gradle.kts.
You are now ready for Month 2 - the JVM itself.