Learn

Getting Started

Install Scala on your computer and start writing some Scala code!

Overviews/Guides

Access detailed documentation on important language features.

Tutorials

Digest bite-size pieces of the essentials.

API

Dive straight into the API.

Specification [PDF]

Get an in-depth overview of the language.

Glossary

Understand Scala's vocabulary.

Cheatsheets

Access language constructs quickly.

Style Guide

Learn how to code elegantly.

Common Scala Questions

Dispel your doubts about common Scala features.

Online Learning

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.
  • Principles of Reactive Programming, free on Coursera. This is a course about concurrency and event-based asynchronous programming in Scala. You can access the course material and exercises by signing up for the course.
  • Try Scala In Your Browser!: Simply Scala is a web site where you can interactively run the Scala interpreter in your browser! There you will find a tutorial 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.
  • Independent Courseware, take a series of online Scala courses ranging from beginner to advanced for a fee.

Books

There are more and more books being published about Scala. Here, you can find some of the titles. We only list books here which give an introduction to the Scala Language. Books which require knowledge of Scala, in particular books on frameworks like Lift, Play! or Akka are notlisted here.

Bleeding Edge

If you are interested in finding out about the hottest, most pressing issues of tomorrow in the Scala world, have a look at the Scala Improvement Process (SIP) page.

Older Documentation

The documentation below may be a bit outdated, but provides insights into the (historical) design principles of the language :

  • Brief Scala Tutorial: a 20 page introduction to scala and some of the basic concepts and a good place to start. You will find more code examples here.
  • Scala By Example: takes you through the Scala features with many examples. It does assume that you are already familiar with the basic Scala syntax and a basic understanding of functional programming. It is an excellent way to expand your knowledge and skill.
  • Scala Overview: this is a paper summarizing the features of the Scala Language in a formal and concise way. An excellent reference for language researchers or advanced programmers.
  • Java to Scala with the Help of Experts: a collection of some of the almost endless supply of tips available for Java programmers new to Scala. There are also mini-blog series designed to take you through many of the important features of the Scala language in a friendly way.