Scala has a notable adoption in the industry, especially in Big Data community. However, given the richness of functionality, it takes a time to grasp and master language concept. When you’re a beginner you have a challenge from where to start a study journey. Given the vast amount of literature about Scala and video resources, it might present a problem for a new commer.
Below a list of a best resource from my opinion to start, if I were in the past just starting learning Scala. Please note this is not a shortcut, or 24 hour book series, you still need to put a considerable effort to master a language and put “10,000 hours” effort.
scala-exercises.org. As I’m a big fun of learning by doing concept, this site an excellent opportunity to learn scala by doing interactive exercises. What I really like about the exercises, they not only covering basic Scala, but has a variety of exercises to learn about Scala libraries and frameworks.
The Neophyte’s Guide to Scala. This another excellent starting point. It was born out of Marting Oderski class, which I will be covering later. It provides a decent explanation about most language features with examples.
Last but not least, Martin Oderski Functional Programming Principles in Scala and whole Scala specialization at coursera. This an excellent course, I actually started my journey from it. However, the only thing that I complain, it takes time to watch video lessons, and sometimes Martin Oderski explains features in highly academic manner. I recommend to take the course, but after one done scala tutorials in scala-exercises and few chapters from Neophyte’s Guide to scala. The course has great and interesting exercises to solve. As a bonus feature, you even get a cool and nice looking certificate of accomplishment.
Is that all? Would I be a Scala ninja in the end?
Not yet, by the end of the learning journey, you would have knowledge of language constructs. The one needs to master common language libraries and frameworks for projects. But this a whole different story. What you need to remember practice makes perfect. Start your own side project, a project at work, or contribute small features to OSS Scala projects.