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:
    • Functional Programming Principles in Scala
    • Functional Program Design in Scala
    • Parallel programming
    • Big Data Analysis with Scala and Spark
    • Functional Programming in Scala Capstone

Try Scala In Your Browser!

There are a handful of websites where you can interactively run Scala code in your browser! Have a look at scala-js-fiddle, Scala Kata, and Scastie for more.

allaboutscala

allaboutscala provides detailed tutorials for beginners.

ScalaCourses

Independent Courseware, online self-study or instructor-led Scala and Play courses for a fee.

Books

Updated for Scala 2.12

by Martin Odersky, Lex Spoon, Bill Benners

(First edition available for free online reading)

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.

Available now

by Paul Chiusano, Rúnar Bjarnason

Manning

“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.”

Available Now

by Cay S. Horstmann

Addison-Wesley

What you get:

  • A rapid introduction to Scala for programmers who are competent in Java, C#, or C++
  • Blog-length chunks of information that you can digest quickly
  • An organization that you’ll find useful as a quick reference

What you don’t get:

  • An introduction into programming or object-oriented design
  • Religion about the superiority of one paradigm or another
  • Cute or academic examples
  • Mind-numbing details about syntax minutiae

Updated for Scala 2.11

by Alex Payne, Dean Wampler

O’Reilly

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.”

Available now

by Joshua D. Suereth

Manning

“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.”

Available now

by Andrew Phillips, Nermin Šerifović

Artima Press

“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.”