Here are some books that will help you in your journey in learning Scala, and more importantly slowly moving towards a more functional style of programming.
As a 2nd more advanced book, I would take a look at “Scala in Depth” which covers more advanced topics and details best practices, idioms, functional programming core concepts, type system and Scala’s collection library.
If you want need help with “thinking functional”, I would recommend “Functional Programming in Scala” as it does a great job of outlining how to go about transitioning your mindset to a more functional style. This book has allot of examples that you can work through so these concepts sink in.
If you want a book that has less theory and more HOW TO’ish, I take a look at the Scala Cookbook:
Now if you want to learn how to use Scala with the Play framework, I would grab a copy of Play for Scala:
Unlike some other programming languages, I have to admit that learning Scala takes longer than usual. If you are coming from a Java or C# background, you can normally learn a new language in fairly short order. Scala on the other hand is a mix between a functional and OOP language and it takes times for certain concepts to sink in.
One important tip I would like to give is that reading Scala is like reading Math, if you don’t actually try it out you might trick yourself into thinking you actually understand the concepts. The great thing is you can easily fire up a REPL and work through a program so don’t get lazy and just read without trying things out for yourself.
Keep in mind that learning Scala is a journey, and you can take things slowly at first. Many people jump into Scala and simply write Java code but with Scala. Writing Scala using Java idioms is perfectly fine, so long as you realize you should keep learning how to write Scala and transition yourself into a more functional approach. In fact Martin write a nice piece on the various “Scala levels” of a Scala developer and how you should potentially go about learning.