Programming Scala, Second Edition is a comprehensive and up-to-date introduction to Scala. It covers the features of Scala version 2.11.
I wrote the book on Scala that I would want to read, if I were to start from the following background:
- I'm an experienced developer of Enterprise or Internet, server-side applications.
- I know Java and perhaps a few other languages.
- I know Object-Oriented Programming, but not necessarily Functional Programming.
- I hear that Functional Programming is the "future" and Scala is a natural migration step from Java.
- I'm serious about learning Scala.
I would read Programming Scala, Second Edition to achieve the following:
- Learn why Scala has become the language of choice for data engineering work in Big Data environments with tools like Spark and Kafka.
- Learn why Scala is an excellent language for state of the art microservices.
- Learn the common idioms, libraries, tools, and techniques used by experts.
- Master all the major features of Scala, warts and all.
If you want a more gentle introduction to Scala, consider Atomic Scala and Scala for the Impatient.
I don't cover everything about the language and libraries. There are some more obscure topics that I omit and other very advanced topics that I briefly mention, so you'll be aware of them. Still, my goal for the reader is to really know the language, the common techniques used to solve various design problems, and to understand how Scala is used in domains like Big Data.
Download the book's example code from GitHub. Report errata to O'Reilly.