Syllabus & Study Plan
What the Java course covers, what you'll be able to do by the end, and a suggested ten-week schedule with a checkpoint each week. Install a JDK first (lesson 2) — writing and running code yourself is the fastest way to learn.
Who this course is for
Complete beginners who want a solid first programming language, students preparing for Java-based university courses or certifications, and developers from other languages who need modern, idiomatic Java for work.
Learning outcomes
By the end of the course you will be able to:
- Install a JDK, and compile and run Java programs from the terminal and an IDE.
- Use variables, primitive types, strings, operators and type conversion correctly.
- Control program flow with conditions, switch expressions and loops.
- Organise code into methods, and use arrays and recursion.
- Design classes with constructors, encapsulation, inheritance, interfaces, records and enums.
- Handle errors with exceptions, custom exception types and try-with-resources.
- Choose and use the right collection, with generics, sorting and comparators.
- Write concise data processing with lambdas, streams, collectors and
Optional. - Model data with sealed types and pattern matching, and work with dates, files and regular expressions.
- Write concurrent code safely, test it with JUnit, and structure a project with Maven or Gradle.
Course outline
| Part | Lessons | Focus |
|---|---|---|
| 1. Getting Started | 01–04 | JDK, program structure, syntax |
| 2. Variables, Types & Strings | 05–12 | Types, casting, operators, strings, maths, input |
| 3. Control Flow | 13–17 | if, switch, loops |
| 4. Arrays & Methods | 18–22 | Arrays, methods, overloading, recursion |
| 5. Object-Oriented Programming | 23–35 | Classes to records, enums and the Object class |
| 6. Exceptions | 36–37 | Handling and defining exceptions |
| 7. Collections & Generics | 38–44 | Wrappers, generics, lists, sets, maps, queues |
| 8. Functional & Modern Java | 45–50 | Lambdas, streams, Optional, pattern matching, dates |
| 9. Real-World Java | 51–56 | Files, concurrency, regex, testing, build tools, project |
Ten-week study plan
Plan on four to five hours a week, including time writing your own programs.
Week 1 — Setting up and first programs
Checkpoint: a program that converts a number of minutes into days, hours and minutes, with the result neatly printed.
Week 2 — Strings, maths and input
Checkpoint: ask for a name and a birth year, then print a formatted greeting with their age and the name in initials.
Week 3 — Control flow
Checkpoint: a number-guessing game with a menu loop, input validation and a limited number of attempts.
Week 4 — Arrays and methods
Checkpoint: a grade book: store scores in an array, and write methods for the average, highest, lowest and a letter grade.
Week 5 — Classes and objects
Checkpoint: an encapsulated BankAccount class with validation, a transaction counter and a static interest rate.
Week 6 — Inheritance and interfaces
Checkpoint: a shape hierarchy with an interface, an abstract class, records and an enum, all printable and comparable.
Week 7 — Exceptions and collections
Checkpoint: a to-do manager using a list, a map of tags and a priority queue, with custom exceptions for invalid commands.
Week 8 — Functional and modern Java
Checkpoint: rewrite last week's reports with streams and collectors, and add due dates with java.time.
Week 9 — Real-world skills
Checkpoint: load and save the to-do list as a CSV file, move it into a Maven or Gradle project, and write JUnit tests for its core logic.
Week 10 — Final project
Lesson 56.
Final project: complete at least four of the library system's challenges, then take the quiz and aim for 25 out of 30 or better.
Faster tracks
- Coming from another language? Skim Parts 1–4 in a few days, then focus on Parts 5–9.
- Know older Java (8–11)? Concentrate on lessons 03 (compact files), 14 (switch expressions), 32 (records), 40 (sequenced collections), 49 (pattern matching and sealed types) and 52 (virtual threads).
Practice resources
- Playground — a starter program to experiment with.
- Exercises — 35 fill-in-the-blank tasks and five programming challenges.
- Quiz — 30 questions with explanations.