Getting Started
Install Scala on your computer and start writing some Scala code!
Overviews/Guides
Access detailed documentation on important language features.
API
Dive straight into the API.
Specification
Get an in-depth overview of the language.
Cheatsheets
Access language constructs quickly.
Style Guide
Learn how to code elegantly.
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.
Books
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.



