Learn Java to ship a real application in five months
Five months at an hour a day — about 150 hours on a free university course, one canonical book, and a real application — takes a beginner to writing object-oriented Java they understand. Java is verbose and old, but it runs the enterprise world, and the path to competence is unusually well-paved. You will not be a Spring architect. You will be able to read and write production-shaped code.
5 months · ~150 hours · build and run a real Java application end to end
1.University of Helsinki — Java Programming MOOC
The free MOOC from the University of Helsinki is the best beginner Java course in existence, and it costs nothing. It is split into Java Programming I and II, fourteen parts total, each with an exercise set graded automatically by their Test My Code tool. Do the exercises — all of them. This course built the reputation of self-taught Finnish developers; it teaches object-oriented thinking properly instead of rushing you to frameworks. Reserve roughly ten hours per part and don't skip ahead.
Free
Java Programming MOOC →2.Head First Java, 3rd edition
Once the MOOC has drilled syntax and objects, Head First Java (Sierra, Bates & Gee, 2022) makes the concepts stick. Its deliberately strange, picture-heavy format is built to fight the way technical books slide out of your memory. The 3rd edition is finally current — it covers lambdas, streams, and modern Java up through Java 17. Read it alongside the back half of the MOOC to deepen what the exercises only made you do mechanically.
About $50 paperback; free with an O'Reilly subscription
Head First Java →3.Build a real application
Pick something with real structure — a command-line inventory manager backed by a file or SQLite, a small REST API with Spring Boot, or a desktop tool with JavaFX — and build it in IntelliJ IDEA Community Edition with Maven or Gradle. Write classes, handle exceptions properly, add JUnit tests. Java's verbosity only pays off on a project big enough to need its structure, and the build tools, dependency management, and packaging into a runnable JAR are the parts no course teaches. This is where Java becomes a tool you own.
Free (IntelliJ Community, Spring Boot, OpenJDK)
Spring Boot getting-started guide →If this doesn't fit you
If you already program in another language and find the MOOC's careful pace too slow, skip it and read "Effective Java" by Joshua Bloch (3rd edition, about $45) straight through, then go to the project. It assumes you know how to program and teaches the idioms that separate Java that works from Java that's correct. Do not start there if Java is your first language — it is a book of refinements, not a first course.
Why this path
Java's reputation problem is that most tutorials drown beginners in framework boilerplate before they understand objects, so they cargo-cult Spring annotations without knowing what's underneath. The Helsinki MOOC refuses to do that — it makes you build the abstractions by hand first, which is exactly the foundation enterprise Java demands. Head First reinforces it, and the project forces the build-and-deploy reality no course covers. Skip the MOOC's exercises and you'll have watched Java rather than written it.