Learn Java
Statically typed, object-oriented language for the JVM, from backends to Android
Java is a statically typed, object-oriented language that compiles to bytecode for the Java Virtual Machine, so the same program runs on any platform. It powers a huge share of backend services, big-data systems and Android apps, with a mature ecosystem of libraries, frameworks and tools. Learning it teaches you solid type-driven design and gives you access to one of the most in-demand platforms in industry.
How deep do you want to go?
1. EssentialsRead and write simple code, do the everyday basics
2. PracticalUse it productively at work, with the usual idioms
3. AdvancedThe less common features, performance and trade-offs
4. ExpertInternals and the edge cases experts know