Even if you are an expert developer in imperative languages, learning Scala is a considerable challenge. You can read books or watch video tutorials, such as the great course at Coursera, or you could be taught by Martin Odersky himself, but the fact is that Scala is not easy to master.
In my own experience, I have gained an understanding of some of the more difficult concepts by reading a lot of code and by doing my own experimentation. To that end, I used the awesome initiative called Scala Koans, whose purpose is explained thus by their authors
Koans are small lessons on the path to enlightenment. The aim of the Scala Koans project is to provide an easy learning environment in Scala. Your insight will be derived by encountering failing tests and fixing them so that they pass. A testing framework is used to simplify this process and to get you off to a good start with using Scala.
It’s only by solving errors and dealing with real life examples that you begin to learn the concepts. After I completed all the tests, I had a solid understanding of, for example, how the
Traversable works, or some practical uses of
Higher Order Functions, or
Once done, I was so pleased with the experience that it is now my first recommendation for those who want to take steps to learn Scala. However, several times in the course of learning Scala, I have stagnated and I felt like I was lacking some prior explanation about the subject. A social context to discuss and address doubts would have been very helpful. With those improvements in mind, we decided to take Scala Koans to the web.
We have created “Scala Exercises“ to help you learn Scala, to offer supplementary explanations for the unit tests, and provide an environment where you can discuss each subject and share knowledge as well as doubts.
Today we are publishing Scala Exercises as an open source project with a public repository at GitHub, ready to receive “pull-request” with your contributions.
Give it a try and be sure to let us know what you think.