Essential storage keeps sign-in and learning features working. Google Analytics measures visits; Microsoft Clarity records interactions to help us improve usability. Both are optional and stay off until you choose. Read our privacy policy.
A clear path from understanding your first program to working with objects, collections, and files. Start with the basics; learn each new idea when you have a reason to use it.
No previous Java knowledge is needed. The early units explain how programs work; later units connect those foundations to objects, reusable code, and everyday application tasks.
Start with the introduction or choose any lesson below.
Understand how source code becomes a running Java program before learning more syntax.
Represent information with deliberate types and understand what expressions actually calculate.
Trace which statements execute and work safely with groups of values.
Build small reusable operations with clear inputs, outputs, and responsibilities.
Model a small domain and keep each object in a valid state.
Choose composition or inheritance deliberately and understand substitutable behavior.
Diagnose failures and manage resources without losing data or hiding errors.
Choose collections by ordering, uniqueness, lookup, and mutation requirements.
Read common modern Java patterns and recognize their limits before using them in larger applications.
Core Java first. Related topics share a lesson where that makes learning clearer: constructors with this, inheritance with super, and collection implementations with the interface they implement. Method and class challenges give you a chance to connect the pieces.
Use the method and class challenges and the lesson labs to practise combining the foundations. Spring, Android, enterprise frameworks, and advanced concurrency are outside this first course.
Java 21 language baseline without preview features. Use a compatible JDK; version-specific features will be labelled in individual lessons. Published examples include editable code and a Java 21 compiler runner in local preview. You can also use your own JDK to practise from the terminal. Production execution requires separate sandbox infrastructure.
Official Java learning resources explain the language and standard APIs. Use the OpenJDK download site when preparing your local tools, and check the platform and release instructions for your machine.