Getting started with Scala

This is a list of Scala resources to get started and beyond.

1. Setting up the environment (installation guides):
* if you just want to experiment with scala there is no need to setup anything, you can use an online interactive interpreter like http://scalatutorials.com/ and http://www.simplyscala.com/.

Mac OS X guide
Windows 7 guide
Ubuntu guide

2. Editors and IDEs
There are plugins for all major IDEs:

Scala IDE for eclipse
Scala plugin for NetBeans
Scala Plugin for InteliJ IDEA

Syntax highlighting plugins are available for jEdit, Notepad++, TextMate, TextWrangler etc.

3. Online Free Resources
Scala School @ twitter: http://twitter.github.io/scala_school/
http://www.tutorialspoint.com/scala/index.htm this is a tutorial for beginners.
There is a free course at coursera: Functional Programming Principles in Scala don’t miss it but I suggest that you go through the basics first.

4. Scala and Functional Programming Books
– Scala
Programming in Scala 2nd Edition (I really liked this book, but one of my colleagues found it a little to academic and moved on to the next book)
Scala for the Impatient
Scala in Depth
Scala in Action
Testing in Scala (if you are serious about Scala this book is a must)

-Functional Programming
Functional Programming in Scala (I included this book here because it’s mainly about functional programming and less about Scala, it’s a five star recommendation though)
Purely Functional Data Structures (More theoretical and all examples are in ML and Haskel but it’s easy to translate them to Scala)
Functional Programming for the Object-Oriented Programmer (if you come from object oriented world this book will help you)

5. Scala for the Web
Play Framework 2.x (This is my favourite framework, all my web projects are based on play)
Lift (I have never used it in real project but it looks really good)
Scalatra (I don’t know much about it but I will give it a try soon)
Skinny (this is Scala on Rails and it’s in alpha version)

6. Scala Object Relational Mapping
Slick (I have been using slick with play and I’m quite happy but I’m sure all the others are equally good)
Squeryl
Circumflex
Lift ORM (included in the lift framework)

7. Scala for NoSQL
The list on nosqls is really big these are the ones that I have been using
MongoDB
Redis
Cassandra
Hadoop
ElasticSearch

8. Other
Akka (A toolkit – and runtime – for highly concurrent, distributed, and fault tolerant applications)
Scalaz (library for functional programming to complement those provided by Scala itself)

Final note: all software mentioned here is open source so you can get your hands dirty.. fork them and enjoy scala.