Java Training Curriculum

Learn Java by running code.
Build understanding, one experiment at a time.

Predict a result, run a cell, investigate what changes, and check your understanding. Build from your first calculation to a small TrailLedger cost and attendance calculator. All 24 Foundations labs are ready: 20 notebooks and four VM lessons. The two later tracks are coming soon.

Browse Labs
72Total Labs
24Available Now
3Sequential Tracks
Your first Java notebookEXAMPLE
In [1]: int hikers = 6;
int costPerHiker = 7;
hikers * costPerHiker
OUTPUT
42
Predict. Run. Explain.

Everything in one viewport

Explanations, editable Java code, output, and quizzes in one notebook. Answer every quiz correctly to fulfill the lesson. Your work lasts only for the current session.

72
Labs
24
Available Now
4
Foundations VM Labs

3 certificates. 72 labs. One clear path.

TRACK 1

Java Foundations

Turn a small requirement into a Java program, check it, and explain how it works.

8 blocks · 24 labs · 18 guided hrs · 35–50 hrs total
Block 1.1

Run Java code

Distinguish source code, compilation, and execution, first in the notebook and then with real command-line tools.

Block 1.2

Variables, numbers, and the Java installation

Store values, calculate with their types, and understand which installed tools perform each job.

Block 1.3

Conditions and interactive experiments

Choose behavior with explicit conditions, then use JShell to test short pieces of Java directly.

Block 1.4

Loops and bounded practice

Trace repetition, update values correctly, and write loops that stop.

Block 1.5

Arrays, lists, and text input

Process groups of values and turn simple text into usable Java values.

Block 1.6

Methods and behavior checks

Write reusable calculations and check their results on more than one input.

Block 1.7

Objects and composition

Store related state safely and make objects work together through small methods.

Block 1.8

Combine the pieces and run a source file

Assemble a small calculation, preserve behavior when rules change, and run it outside the notebook with JBang.

↑ Back to all tracks
TRACK 2

Java Application Developer

Design a maintainable application with interfaces, collections, streams, exceptions, files, and tests.

8 blocks · 24 labs · 24 guided hrs · 45–65 hrs total
Block 2.1

Design values and entities

Scenario: mutable booking data leaks into reports, while some values should never change after creation.

Block 2.2

Extend behavior through contracts

Scenario: a new discount policy must be added without a growing chain of type checks.

Block 2.3

Pick collections by their behavior

Scenario: duplicate bookings, unstable display order and an inefficient waiting list appear in the same release.

Block 2.4

Let types express the contract

Scenario: a reusable repository returns the wrong kind of object and its casts fail late.

Block 2.5

Transform data without losing the story

Scenario: the club wants useful summaries, but a tangled loop mixes filtering, formatting and totals.

Block 2.6

Fail clearly and own resources

Scenario: an imported roster has malformed lines; a partial export must not overwrite the good file.

Block 2.7

Money, calendars and human output

Scenario: a departure time crosses a time-zone boundary and a report rounds prices incorrectly.

Block 2.8

Change with confidence

Scenario: a volunteer adds a refund policy shortly before a release. The application needs a trustworthy safety net.

↑ Back to all tracks
TRACK 3

Java SE Professional Developer

Reason about modern Java, concurrency and modules; diagnose failures and package a reliable application.

8 blocks · 24 labs · 30 guided hrs · 60–85 hrs total
Block 3.1

Understand what the language really promises

Scenario: the code works in the notebook but a versioned release fails to compile or selects an unexpected overload.

Block 3.2

Streams beyond filter/map

Scenario: reports require grouping, rolling windows and a reliable reduction, not a chain copied from a tutorial.

Block 3.3

Coordinate work, not lucky timing

Scenario: two workers confirm the same last booking slot. Repeated runs reveal inconsistent totals.

Block 3.4

Manage tasks and context

Scenario: a report engine has too many threads, loses failures, and carries the wrong trip context between tasks.

Block 3.5

Files, serialization and localization

Scenario: reports work on the author's machine but fail with another charset, filesystem layout or locale.

Block 3.6

Package boundaries that work

Scenario: pricing plugins work on the classpath but fail after modularization. The release must contain what the application actually needs.

Block 3.7

Trust and diagnose the artifact

Scenario: a distributed release has changed since it was signed, while another release consumes unexpected memory.

Block 3.8

Professional release and readiness challenge

Scenario: a release candidate must process incoming trip files correctly, survive bad input, and be handed to another maintainer with usable evidence.

↑ Back to all tracks