It passed almost 5 months since I have been learning Scala programming language. This learning is a part of bigger path which I decided to go through to be more familiar with current trends in big data, machine learning and cloud computing.
When I decided to start learning scala the first question coming into my mind was how to start ?
Because I am rather a fun of books, I bought one - “Programming Scala: Scalability = Functional Programming + Objects” by Dean Wampler and Alex Payne” and started reading…. but this was not a good idea. The book I have chosen was written in not an easy going style and I think was too hard for the beginning. After few hundreds of pages I felt lost. At the same time on coursera ‘Functional Programming Principles in Scala’ course was reactivated. Not thinking too much I signed in and started participating. After few weeks I earn a certificate of accomplishment but this was not an end of my journey. I started participating in another course “Functional Program Design in Scala” from the same author (Martin Odersky) as the previous one. In parallel I have started reading a book “Programming in Scala Second Edition” by Martin Odersky, Lex Spoon, Bill Venners and I found it very helpful. Currently (in the time of writing this post) I have done “Parallel programming” course and already enrolled for a “Big Data Analysis with Scala and Spark” (still waiting for course publishing)
I think the knowledge I acquired, thanks to those courses and book, is sufficient to start writing and reading programs in scala. Of course it takes some time to be as proficient as in java but I am little closer to this target each day.
Resources
The aim of this section is to gather the valuable resources regarding scala.
Online courses
Books
- Programming in Scala by Martin Odersky, Lex Spoon, Bill Venners
- Scala for the Impatient
- Programming Scala: Scalability = Functional Programming + Objects
Cheat sheets
- Scala cheat sheet
- Scala reactive cheat sheet
- Scala cheat sheet from scala-lang.org
- Scala cheat sheet written by me
Tutorials
Libs
Other
First steps
My recommendation about ordering of going through the resources for beginners: