/scala-learning-resources

A community driven list of useful Scala books, tutorials, online courses, presentations, etc.

Scala Learning Resources

A community driven list of useful Scala books, tutorials, online courses, interactive tools, etc. Inspired by awesome-scala.

Books

Books for learning Scala.

  • Programming in Scala - Highly recommended if you're new to Scala. This book is the authoritative tutorial on the Scala programming language, co-written by the language's designer, Martin Odersky. First edition is free online: (http://www.artima.com/pins1ed/)
  • Scala for the Impatient - A rapid introduction to Scala for programmers who are competent in Java, C#, or C++
  • Scala Cookbook - A book with more than 250 ready-to-use recipes and 700 code examples, this comprehensive cookbook covers the most common problems you’ll encounter when using the Scala language, libraries, and tools.
  • Scala in Action - A book containing comprehensive tutorials that introduces Scala through clear explanations and numerous hands-on examples
  • Scala By Example - A free book by Martin Odersky showing various examples coding in Scala.
  • Scala in Depth - A guide book to using Scala with deep dives into necessary topics.

Tutorials

Tutorials for learning Scala.

  • A Tour of Scala - A comprehensive tutorial with digest bite-size pieces of the essentials.
  • Scala School - A series of lectures at Twitter to prepare experienced engineers to be productive Scala programmers..
  • Effective Scala - A tutorial for learning "best practices" for Scala. Useful for understanding idioms in Twitter's code.
  • A Scala Tutorial for Java Programmers - A tutorial intended for people who already have some programming experience in Java and want an overview of what they can do with Scala.

Online Courses

Online courses for learning Scala.

  • Functional Programming Principles in Scala - A free coursea online course introduces the cornerstones of functional programming using the Scala programming language.
  • Principles of Reactive Programming - A follow-on for the Coursera class “Principles of Functional Programming in Scala”, teach the principles of reactive programming. Reactive programming is an emerging discipline which combines concurrency and event-based and asynchronous systems.

Interactive Tools

Interactive tools for learning Scala.

  • Simply Scala - A web site where you can interactively run the Scala interpreter in your browser. Consists of tutorials that gives a rapid overview of the basic language features, the syntax, examples you can run and the ability to try your own code with an interactive interpreter.

Presentation Slides

Presentations slides for learning Scala.

Contributing

Your contributions are always welcome! Please submit a pull request or create an issue to add a new list item or category to the list. Do not submit an item that is not a learning resource.