Progress Java - A Java learning platform that evolves with the language.
Development

Progress Java - A Java learning platform that evolves with the language.

A modern, interactive documentation site for learning Java, born from a 25-year passion for the language and a desire to help others thrive in its evolving ecosystem.

A Personal Mission

My journey with Java started in 1999 with version 1.1. For over two decades, I have been more than just a developer; I have been a student and a genuine fan of the language. I’ve witnessed its growth firsthand, from its early days to becoming the foundational programming language taught in countless universities and powering critical enterprise systems worldwide.

This project, Progress Java, is the culmination of that journey. It’s born from a deep-seated passion for the language and a desire to build the resource I wish I’d had—both when I was starting out and now, as I keep pace with its rapid evolution.

The Problem: A Gap Between Learning and a Living Language

Java is everywhere, but learning it effectively has become a complex challenge.

  • For Students: Many universities teach Java, but often use older, pre-LTS versions. This leaves a gap between academic knowledge and the modern practices used in the industry.
  • For Professionals: Since Oracle began its six-month release cycle, even seasoned developers find it hard to keep up. Tutorials become outdated quickly, and the context behind new features is often lost.
  • For Everyone: The path from “Hello, World!” to confident developer can feel unstructured and demotivating.

The Solution: A Living Document for a Living Language

Progress Java is designed to bridge this gap. It’s a platform that respects Java’s rich history while embracing its modern trajectory, serving as a guide for both new learners and experienced professionals.

  • 🗺️ Version-Aware Learning Paths: The core curriculum is based on the latest Long-Term Support (LTS) version, but includes distinct callouts and annotations for new features. When a concept has evolved, the site shows both the traditional and modern syntax (e.g., classic switch vs. modern pattern matching), giving learners crucial context.

  • Visualize Your Journey: To combat the feeling of being overwhelmed, the site uses visual roadmaps and interactive checklists. These features, powered by the browser’s localStorage, allow users to track their progress, making the learning process tangible and motivating without requiring a login.

  • 💻 From Theory to Practice, Instantly: An embedded code playground allows users to run and experiment with code snippets directly on the page, removing the initial friction of setting up a local development environment.

Learning path (Levels)

  • 0 — Setup & First Win: JDK, IntelliJ, Hello & Echo
  • 1 — Variables & Types: Strings, Scanner, printf (Tip Calculator)
  • 2 — Control Flow: if/else, modern switch, loops (Number Guess)
  • 3 — Methods & Debugging (+ JUnit): overloading, breakpoints (Tested Calculator)
  • 4 — Arrays & Collections: arrays, ArrayList, Set, Map (To-Do with file save)
  • 5 — OOP Fundamentals: classes, constructors, encapsulation (Student Tracker)
  • 6 — Inheritance & Interfaces: polymorphism, composition over inheritance (Shape Library)
  • 7 — Errors, Files & Packaging: exceptions, CSV I/O, Maven JAR (Capstone: Expense Tracker)