Programming In Scala attempts to teach a user new to functional programming both the technique of programming in a functional language and programming in the Scala language at the same time. To do this, it dubs itself a "comprehensive step-by-step guide". It certainly meets those goals, but unfortunately was overly complex in certain sections. The book starts out as a great overview of the Scala programming language. The first 400 or so pages make a great introducton for any Java prorgammer. But, then the chapter on Type Parameterization kicks in. This is where the real differences between the languages shine, and exactly where the book gets needlessly computer sciency. Each chapter following seemed to spend the final 10% diving WAY into language implementation. Don't get me wrong, I enjoy reading about the internals of programming languages and how they are implemented, but a little off base for a step-by-step guide. Overall, I found the book interesting and fun to read, but I would suggest a different book if you actually need to learn Scala quickly.