Update: I've started work on the third edition, which will be published late 2020 and focus on Scala 3. The code examples repo is now a work-in-progress towards the new edition, but the second edition code was recently upgraded to work with Scala 2.12 and 2.13. Grab the v2.1.0 tagged release for the code that still closely follows the organization of the second edition of the book, but is updated for Scala 2.12 and 2.13.
Programming Scala, Second Edition is a comprehensive and up-to-date introduction to Scala. It covers the features of Scala version 2.11 (although the code examples are compatible with Scala 2.12 and 2.13).
I wrote the book on Scala that I would want to read, if I were to start from the following background:
I would read Programming Scala, Second Edition to achieve the following:
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.
For more information:
To discuss the book, the code examples, etc. use one of these forums:
If you're using Spark and you want a quick introduction to Scala aimed at Spark developers, check out my free tutorial, Just Enough Scala for Spark.