The first phase of the program — the Java language itself, before the frameworks. From scratch and in plain terms: how types and syntax work, what is behind OOP, how collections and generics work, how to handle exceptions, lambdas and data streams, what is new in modern Java, and what to build a project with. Best read in order.