Getting Started

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


Access detailed documentation on important language features.


Dive straight into the API.


Get an in-depth overview of the language.


Access language constructs quickly.

Style Guide

Learn how to code elegantly.


Digest bite-size pieces of the essentials.


Understand Scala's vocabulary.

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.
  • 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.
  • Independent Courseware, online self-study or instructor-led Scala and Play courses for a fee.


There are more and more books being published about Scala. Here, you can find just a small selection of the many available titles.

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.