Learn Scala
Expressive JVM language fusing functional and object-oriented programming
Scala is a statically typed language for the JVM (and JavaScript and native) that combines object-oriented and functional programming with a powerful type system and concise syntax. It powers data and streaming platforms such as Apache Spark, Kafka tooling and Akka/Pekko systems, as well as backend services at many companies. Learning Scala 3 teaches you immutable data modelling, pattern matching, type classes and safe concurrency that carry over to any language.
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