Home Education Learning Scala: Top Resources

Learning Scala: Top Resources

Author

Date

Category

Since at Codacy we chose Scala to build our infrastructure, it’s important that we provide resources for learning Scala to our engineers (not all the engineers that we hire are Scala experts).ย  Scala isnโ€™t hard to learn, and good engineers usually pick it up very quickly.

Here is a compiled list of Scala resources to kickstart your Scala learning.

Online Resources

  • Functional Programming Principles in Scala on Courseraโ€Šโ€”โ€ŠFreeโ€Šโ€”โ€ŠBeginners

Funcional programming principles in Scala

The first and most famous resource is the online class โ€œFunctional Programming Principles in Scalaโ€ taught by Martin Odersky himself. It gives a great overview of the language and a good introduction to functional programming. In seven weeks you will learn the elements of the functional programming style and how to apply them using Scala.

This class is oriented towards practice and is probably one of the best resource to learn by example. Principles of Reactive Programming is a good follow-up to learn more about futures, reactive streams and the actor-model.

  • The official documentationโ€Šโ€”โ€ŠFreeโ€Šโ€”โ€ŠBeginners to Intermediate

Scala Documentation

One of the best resource for learning Scala remains the official documentation. It has several guides and tutorials specifically targeted towards Java, Ruby or Python developers moving to Scala. It is a great place to get help on more specific questions or topics and to accompany the Coursera classes.

  • Scala Exercisesโ€Šโ€”โ€ŠFreeโ€Šโ€”โ€ŠBeginners to Intermediate

Scala Exercises

One of the more recent addition is Scala Exercises from the 47 Degrees team. It brings the popular Scala Koans to the web. Offering hundreds of solvable exercises organized into 42 categories covering the basics of the Scala language.

  • Twitterโ€™s Scala Schoolโ€Šโ€”โ€ŠFreeโ€Šโ€”โ€ŠBeginners to Intermediate

Twitter's Scala School

As one of the main company using and driving the Scala ecosystem, Twitter created the Scala School. It covers all the main features of the language.

  • Online Playgroundsโ€Šโ€”โ€ŠFreeโ€Šโ€”โ€ŠBeginners

Simply Scala

If youโ€™re looking for a quick and dirty way to play online with the language Scala Tutorials, Simply Scala and the Scala Fiddle are good places to start.

  • Online communities

Scala community

The Scala community is growing and very open. Often the best way to learn a new programming language is to exchange with more experienced developers or other learners. The Scala-lang website has a great list to check-out.

Books

  • Programming in Scala by Martin Odersky, Lex Spoon, and Bill Vennersโ€Šโ€”โ€ŠPaidโ€Šโ€”โ€ŠIntermediate

Programming in Scala by Martin Odersky, Lex Spoon, and Bill Vennersโ€Š

We keep religiously our copy of Programming in Scala at the office. Itโ€™s provides great insights on the language features with detailed examples. Highly recommended!

  • Scala in Depth by Joshua D. Suerethโ€Šโ€”โ€ŠPaidโ€Šโ€”โ€ŠIntermediate

Scala in Depth by Joshua D. Suereth

Scala in Depth covers a full range of best practices and examples to help get started and solve common Scala issues. Itโ€™s a great read for developers who already had a first introduction to the language.

  • Scala Puzzlers by Andrew Phillips and Nermin ล erifoviฤ‡โ€Šโ€”โ€ŠPaidโ€Šโ€”โ€ŠIntermediate

Scala Puzzlers by Andrew Phillips and Nermin ล erifoviฤ‡

A great little book that covers, as the title mentions, a list of puzzlers that you might face when moving forward with learning the language. Avoid these pitfalls by buying this book.

Other book suggestions can be found at http://www.scala-lang.org/documentation/books.html

Tools

  • Codacyโ€Šโ€”โ€ŠFree/Paidโ€Šโ€”โ€ŠIntermediate to Advanced

Codacy - Automatic Static Code Analysis

Well yes, one of the biggest surprise that we had with Codacy is how it is used for learning Scalaโ€™s best practices. Indeed, we see more and more companies using Codacy to onboard developers faster and save time from senior engineers. Codacy detects code style, error prone, best practices etc. issues after every commit and pull request and gives feedback on why they should be avoided.

  • ScalaStyleโ€Šโ€”โ€ŠFreeโ€Šโ€”โ€ŠIntermediate to Advanced

ScalaStyle

ScalaStyle (that Codacy also uses), follows the same logic. Running Scalastyle on your first lines of Scala will teach you a lot about common errors and will allow you to improve your skills quickly.

So what exactly do we recommend and in whatย order?

Every engineer has different ways of learning a new language. But we believe that the Coursera classes are real must do for every engineer. Combined with a book and online examples itโ€™s a great way to get started with the language. Once a developer starts writing his/her first lines of Scala, static analysis and linting tools are in our (biased) opinion a great way to get continuous feedback on the produced code and improve his/her skills.

Have other resources to share? Please do comment and share your tips on how you learned Scala.


We published an ebook: โ€œThe Ultimate Guide to Code Reviewโ€ based on a survey of 680+ developers. Enjoy!

About Codacy

Codacy is used by thousands of developers to analyze billions of lines of code every day!

Getting started is easy โ€“ and free! Just use yourย ย GitHub, Bitbucket or Google account toย sign up.

GET STARTED

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Subscribe to our newsletter

To be updated with all the latest news, offers and special announcements.

Recent posts

How does code quality fit into your CI/CD pipeline?

Continuous Integration and Continuous Deployment (CI/CD) are key for organizations wanting to deliver software at scale. CI/CD allows developers to automate...

How Stim uses Codacy to achieve high-quality code

We spoke with Tobias Sjรถsten, Head of Software Engineering at Stim, about how Codacy helps them guarantee code quality and standardization...

6 things developers should do to ship more secure code

Writing better, more secure source code is fundamental to prevent potential exploits and attacks that could undermine your software applications. However,...

Best practices for security code reviews

In today's interconnected world, where data breaches and cyber threats are increasingly common, one of your top priorities should be to...

April Product Update ๐Ÿš€

Hi there ๐Ÿ‘‹ It's been a whirlwind month, and we have big news to share: