Unlike many code practice websites, Exercism requires the user to develop and test entirely offline, submitting only the finished code. This promotes familiarity with essential tools and workflow, not just the bare language.
Rather than merely test for code correctness, Exercism uses peer review to improve general programming techniques. Users are encouraged to comment on others' solutions, and refine their own based on feedback.
It's best to have at least a basic understanding of programming before tackling the exercises on exercism.io. You also have to know how to set up your development environment, as you will be coding everything locally (versus websites that provide you an editor right in the browser).
Exercism requires using a CLI utility to fetch and submit exercises. This is inconvenient compared to web-only alternatives, and poses an additional barrier to entry for some users.
The most recent edition of "Programming in Scala: A Comprehensive Step-by-Step Guide" was published in January, 2011. Scala is a fast evolving language, which means many of it's new features (such as Futures/Promises) are not covered in this book.
Many Scala books aim to teach not just the language, but programming theory as well. "Scala for the Impatient" focuses only on teaching the syntax and features of Scala, making it a great option for experienced programmers looking to pick up the language quickly.
If you aren't arriving at Scala with a Java background, some of the examples may seem unnecessarily focused on OOP inheritance relationships and core Java libraries.
In order to view a properly formatted version of the code, the reader has to click a link which takes them to the index. It is then extremely difficult for the reader to find their original place in the book and continue reading.
The material gets advanced pretty quickly. The material in the book is more effective if you already have an introduction to category theory and combinatorial analysis.
"Functional Programming in Scala" offers no shortage of exercises. Throughout the book, exercises and examples are plentiful to help the reader put what they're learning into practice for a better understanding.
"Functional Programming in Scala" focuses on building a strong foundation in Functional Programming(FP). It fully explains FP concepts, including the "why" behind everything discussed.
Rather than focusing on teaching the language (such as the syntax), "Functional Programming in Scala" only uses Scala as the medium for teaching functional programming. This means the reader needs to already have some experience with Scala.