Learning Resources

Online Learning

Quick Online Exercises

Scala Exercises is a series of lessons and exercises created by 47 Degrees. It’s a great way to get a brief introduction to Scala while testing your knowledge along the way.

Coursera courses from EPFL

There are a few interactive resources for trying out Scala, to get a look and feel of the language:

Functional Programming Principles in Scala, free on Coursera. This is a course about functional programming given by Martin Odersky himself. You can access the course material and exercises by
signing up for the course.

Functional Programming in Scala Specialization, free on Coursera. The Specialization provides a hands-on introduction to functional programming using Scala. You can access the courses material and exercises by signing up for the specialization. Includes the following courses:

Books

Being co-written by the language’s designer, Martin Odersky, you will find it provides additional depth and clarity to the diverse features of the language. The book provides both an authoritative reference for Scala and a systematic tutorial covering all the features in the language. Once you are familiar with the basics of Scala you will appreciate having this source of invaluable examples and precise explanations of Scala on hand. The book is available from Artima. Award winning book - Jolt Productivity award for Technical Books.

“Functional programming (FP) is a style of software development emphasizing functions that don’t depend on program state… Functional Programming in Scala is a serious tutorial for programmers looking to learn FP and apply it to the everyday business of coding. The book guides readers from basic techniques to advanced topics in a logical, concise, and clear progression. In it, you’ll find concrete examples and exercises that open up the world of functional programming.”

Both are industry experts, Alex Payne being the lead API programmer at Twitter, a social networking service based on Scala. O’Reilly, the publisher, writes: “Learn how to be more productive with Scala, a new multi-paradigm language for the Java Virtual Machine (JVM) that integrates features of both object-oriented and functional programming. With this book, you’ll discover why Scala is ideal for highly scalable, component-based applications that support concurrency and distribution. You’ll also learn how to leverage the wealth of Java class libraries to meet the practical needs of enterprise and Internet projects more easily.”

“While information about the Scala language is abundant, skilled practitioners, great examples, and insight into the best practices of the community are harder to find. Scala in Depth bridges that gap, preparing you to adopt Scala successfully for real world projects. Scala in Depth is a unique new book designed to help you integrate Scala effectively into your development process. By presenting the emerging best practices and designs from the Scala community, it guides you though dozens of powerful techniques example by example. There’s no heavy-handed theory here-just lots of crisp, practical guides for coding in Scala.”

“Getting code to do what we want it to do is perhaps the essence of our purpose as developers. So there are few things more intriguing or important than code that we think we understand, but that behaves rather contrary to our expectations. Scala Puzzlers is a collection of such examples in Scala. It is not only an entertaining and instructive way of understanding this highly expressive language better. It will also help you recognize many counter-intuitive traps and pitfalls and prevent them from inflicting further production bug hunt stress on Scala developers.”