Stage 1 of 6 · 9 lessons · ~4 months
Your first language
Learn Java properly: types, control flow, methods, classes, the core collections and exceptions. Java makes you be explicit, which slows the first weeks and pays off in every language after it.
Start: The JDK, compiling and runningLessons· one lesson for each topic, in this order
Start with· follow one of these
- CourseFreeJava Programming MOOC
University of Helsinki · Beginner
Free Helsinki course with hundreds of auto-tested exercises; parts 1 to 8 cover this stage
- GuideFreeDev.java: Learn Java
Oracle · Beginner
Official tutorials from the Java team: read the language basics path next to the MOOC
Before moving on: Write a 200-line command-line Java program, such as a quiz or a budget tracker, with a few classes, an ArrayList, a HashMap, file reading and exception handling, compiled and run from the terminal.

Install a JDK and run javac and java from the terminal at least once before you let an IDE hide the build from you. Do the MOOC exercises rather than just reading: the automated tests on each one are what make it work.