Scala is one of the most popular languages used in the JVM ecosystem. The recent post by Li Haoyi explains why Scala is entering the ‘slope of enlightenment’, with ever-growing community and plethora of mature and production-ready tools. It is a great time to start learning Scala and this post will list you, in my opinion, the best places to start your journey with it.
1. Scala Book
There is no better place to start than Scala Book, that can be found on the official page of Scala language. This is a free guide into the world of Scala for beginners who want to get started as quickly as possible. It provides enough details to grasp the basics of Scala programming, without overwhelming you with too much information.
You will learn basic control structures, syntax, collections, classes, traits and a few fundamentals of functional programming. There is a lot of different code examples, so you have a chance to explore it in your way. There is no timing or schedule, so you can learn in anytime you fancy.
My journey with Scala started there, and it helped a lot at the beginning (especially with sometimes weirdly looking syntax :))
The Scala Exercises is another free to use resource, that can learn you various elements of Scala ecosystem using a series of lectures and exercises. Every chapter in each course, explains in detail what a certain feature is and how to use it in real-life examples. The exercises at the end of the chapter help you to test yourself and improve the learning process.
There is a plethora of courses available, on topics including: Scala Standard Library, Cats, Shapeless, Doobie and more.
You can login to the site using your GitHub account, which helps to track the courses and chapters you have enrolled in and progress within them.
The first of non-free resources is the book by Cay Horstmman that serves as a guide for Java programmers that want to dive into Scala language. Although being aimed at Java devs, this book can be easily understood by developers using any other major programming language.
The huge plus of this book is that it explains the features of Scala language in a very concise and easy to digest way. There is no over lengthy debates over the implementation of let’s say certain classes in collections library – instead, you get a nicely rounded explanation of what it is and how to use it.
The easiest place to get this book is most probably Amazon. You should look for a promotions, as they happen quite often on this book (at least in UK).
The first video course I am recommending is ‘Scala & Functional Programming for Beginners’ that can be found on Udemy platform. This course guides you through the world of Scala in well sized chunks, that covers a great deal of topics that are required from Scala developers.
This course is split into basics, object oriented programming, functional programming and pattern matching. Additionally, there is extra chapter that takes all this information and help you to apply it into a practical project.
Standard price is around £50, but Udemy does regular promotions, so keep an eye on the site and you might this course for as low as £10.
The last resource and the second video course is the continuation of the course from point 4. This course however, is aimed at more advanced developers and those interested in getting from good to great in Scala.
The course itself tackles important topics like advanced functional programming, concurrency, implicits and type system. All presented with easy to understand context and lots of code samples.
Same as before, it is best to look for promotions on Udemy website – you should be able to get it at the price around £10.
I hope you have found this post useful. If so, don’t hesitate to like or share this post. Additionally, you can follow me on my social media if you fancy so 🙂