Most Useful Resources For Learning Scala
In one of my previous articles, I pointed at some arguments about why you should learn Scala and how to do it. In this one, I want to show you what are the best resources to learn it. Applies to newbies, beginners and people already introduced to Scala.
Let's get started!
- Martin Odersky — Functional Programming Principles in Scala
I can’t call myself a real Scala guy if I don’t put Martin Odersky’s (Scala’s inventor) course as my #1. I think many people start at this point. I have to admit that it’s not so easy but in my opinion, it’s worth passing at some point in your career as a Scala developer. It’s also a good idea for people who need additional motivation as you have deadlines for programming assessments at this 6 week-long course.
- Mark Lewis — Introduction to Programming with Scala
This is another very good quality free video resource for learning programming and Scala. You can find functional problems as well as some web development using Scala or even machine learning stuff. I’d say that everyone will find something useful is this video.
- Udemy courses: Stairway to Scala Applied, Part 1, Stairway to Scala Applied, Part 2 and Stairway to Scala Applied, Part 3.
These Udemy courses are great. They start from language syntax and end at really low-level SBT (Scala Build Tool) features, giving you the whole spectrum of what you can achieve with Scala.
- More Udemy courses: Rock the JVM! Scala and Functional Programming for Beginners, Rock the JVM! Advanced Scala and Functional Programming, Rock the JVM! Akka Essentials with Scala.
I’d recommend Rock the JVM series to people who are a little more advanced, who can already do some coding as they might be a bit too complicated for someone who's just starting. Also gives you a great variety of stuff from functional libs to parallel programming.
The amazing course provided by Julien Truffaut on functional programming in Scala. Julien will help you switch from object-oriented to functional thinking. If you start shaking while someone says eta expansion this course is definitely for you!
Youtube channel where the author publishes Scala and not only video playlists. A great resource for devs who want to grasp some knowledge about basics in Scala as well as some more advanced concepts like tagless final and so.
Channel created by Daniel Ciocîrlan where you can learn about the newest Scala features as well as some more established concepts. Short and concise videos with lots of coding are doing its work.
Free online resource for learning Scala 3. Video lessons conducted by Jon Pretty and Virtus Labs.
Short lessons with real-life examples made by Leo Benkel might be a good start point or a place where you can revise some concepts and sharpen your skills.
Bunch of free ebooks on various Scala topics and ecosystems like Play or Slick.
- Functional Programming, Simplified Alvin Alexander
Makes the process of learning a functional approach with Scala very simple by breaking down all concepts into small chunks.
- Introduction to Programming and Problem-Solving Using Scala Mark C. Lewis, Lisa Lacher
The follow-up to mentioned earlier Scala course by Mark C. Lewis.
- Scala Programming Projects: Build real-world projects using popular Scala frameworks like Play, Akka, and Spark Mikael Valot, Nicolas Jorand
Language introduction from a perspective of creating a web application. Might be a good choice for people who want to see more than console output.
Another aggregator of books on various Scala things. People introduced to language may find something useful for them. Says a lot about many powerful tools and techniques.
- Scala Puzzlers. The fun path to deeper understanding Andrew Phillips, Nermin Šerifović
Collection of answers for what exactly happens behind the compiler and how it works. Makes you aware of the traps and pitfalls that await you.
Free ebook on basics in packed form from StackOverflow contributors.
Blog posts are always one of the best knowledge sources as they present you most recent things from the language or interesting case studies. I listed some of them:
If you don’t want to subscribe to all mentioned blog just check this: scalatimes.com. It aggregates most recent blog posts from Scala world.
You probably already know that there is no programming without practice. So code, code and code! If you want to start with some Scala syntax basics with explanation and by the time go deeper I’d go for:
Below you can find a list of websites where you can try yourself and solve some small algorithmic problems.
Or you can find a list of coding katas and post them to GitHub after you crack them. It will enrich your career!
There are also some free online resources that I didn’t know how to categorise. They are Github repositories (two of them) and one is a super long blog post. All are very nice to start with!
First one is about starting with Scala and the second one is about the functional approach. (Thanks captain obvious! 😂)
The next ones are from Twitter itself:
And these two below guide you through best practices and answers to most common Scala questions.
Finally time for some paper books (BTW you can still download them as ebooks 😂) but if you want to feel some paper in your hands you can grab their touchable versions.
- Scala for the Impatient Cay Horstmann
A good point to start as C. Horstmann is one of JVM gurus. The book introduces key Scala concepts you need to know to start being productive with the language. All is given to the user in compressed form.
- Learning Scala: Practical Functional Programming for the JVM Jason Swartz
One more book to introduce you to basics as it seems that you don’t need to be a distributed system specialist or data scientist to use Scala widely. The book demonstrates why learning Scala which has concise syntax and is statically typed might improve your craft as a Ruby or Python developer.
- Programming Scala, Scalability = Functional Programming + Objects Dean Wampler, Alex Payne
As the title says joins two programming paradigms to show you the beauty of Scala. A great introduction to language and ecosystem.
- Programming in Scala: A Comprehensive Step-by-Step Guide Martin Odersky
The one above is very well crafted in terms of learning. New concepts are introduced basing on the previous ones. Points at the best parts and explains new features in a pretty easy way.
- Functional Programming in Scala Paul Chiusano
By many called The Bible of functional programming in Scala. Explains how to take this approach and use within daily business needs as well as how to put this into your code. The author guides readers from almost obvious concepts to advanced topics in a logical and properly structured way.
- Programming Scala: Tackle Multi-Core Complexity on the Java Virtual Machine Venkat Subramaniam
Venkat Subramaniam is a widely known and pretty popular author of introduction books in the JVM world. You can check him on youtube where he gives you a broad Scala intro in less than 2 hours. The book above is a solid guide to Scala fundamentals.
- Scala in Action Nilanjan Raychaudhuri
I’d recommend this one for people who have some Scala knowledge but want to know how to approach day to day challenges with what Scala offers.
- Scala in Depth Joshua D. Suereth
Designed to help you introduce and easily adapt Scala to your existing ecosystem with dozens of powerful techniques and rich examples. For people familiar with Scala basics.
Conferences & meetups
Behind each great language stays a great community. It’s very true for Scala as it’s still an open-source with Lightbend Company maintaining and developing it. It’s a good thing to attend local meetups or conferences near you. Why? Because it allows you to meet people like you who just started to learn to code or are switching from another language. In the future, you might cooperate with them on your project written in Scala or maybe you can set goals together and motivate each other.
At conferences or meetups, you will dive deeper into the language. You will learn a lot about how people overtake struggles in their projects or how to use the latest Scala features. You might also meet people who can be your mentors in the future. Unquestionably it’s a much wider topic but getting back to Scala, you can find conferences here: scala-lang.org/events and meetups here: www.meetup.com.
The best thing about conferences that you can find plenty of lectures are already posted on their youtube channels!
You can find much more sources for your knowledge but the ones above are vetted and recommended not only by me. I didn’t add too much description for each item so this list of resources doesn't become too long. You don’t need to go through each one of them to master Scala. Just start with one and be patient!
If you want to learn more about how to learn Scala check out our last article.
In the future you probably will need to learn more things like Play Framework, Cats, Spark depending on what way you will choose: being a web dev, doing some functional stuff or creating models for machine learning. What’s great is that you can do all these lovely things with Scala.
Last but not least remember that learning in general takes time. It’s not a sprint, it’s a marathon. For sure. Be aware that it will take time, you’ll fail but be patient, be consistent, do one little step every day and remember about the prize at the end.
Originally published on marcinkrykowski.medium.com
Sign up now and apply for roles at companies that interest you.
Engineers who find a new job through WorksHub average a 15% increase in salary.Start with GitHubStart with TwitterStart with Stack OverflowStart with Email