Who this book is for
We assume that you have written Java code for a while. You also should have a basic knowledge of Scala. A knowledge of Java and Scala fundamentals is assumed. Familiarity with basic data structures such as binary trees and linked lists is assumed.
This is a text about patterns and design ideas that you can use again and again. A basic understanding of design patterns would be great. I have explained the problem and the patterns and the typical object-oriented Java solution. The Scala solution builds on top of all this know-how. The text also assumes that you have written some multithreaded Java code. I have explained the necessary concepts, but haven't explained multithreading from the ground up.
Most of the concepts are explained and pointers are provided for further reading.