Learning Scala

This guide assumes no prior knowledge of Scala and will get you set up to the point where you have Scala installed on your computer and can hack on a project.


We recommend reading Programming in Scala to learn the language.

Followed by Functional Programming in Scala, aka “the red book”.

Before installing any software, you can complete exercises online at scala-exercises.org and execute code in your browser at scalafiddle.io.


  1. Install Java: Scala runs on the Java Virtual Machine (JVM).
    Prefer free/libre OpenJDK to proprietary versions of Java.
    Install OpenJDK using your system package manager:
    • sudo pacman -S openjdk8-src (ArchLinux)
    • sudo apt-get install openjdk-8-source (Debian)
    • Zulu Java for all other systems
  2. Install SBT: The Scala Build Tool (sbt) will install all the build tooling you need, including Scala.
  3. (GNU / BSD, Optional): If you anticipate using multiple versions of Java, install jenv.

First Project

If a volunteer would like to pad out the following, that’d be great. Until then, try Daniel Spiewak’s “Getting Started in Scala” guide

  1. checkout a basic tutorial project, e.g. 99 problems or scalania
  2. start sbt and cheatsheet of basic commands (for now, try sbt common commands)
  3. hello world in the editor without ensime (e.g. /editors/emacs/scala-mode) starting from scratch with sbt new eed3si9n/hello.g8
  4. start ensime server, for now read Getting Started