We use cookies and other tracking technologies to improve your browsing experience on our site, analyze site traffic, and understand where our audience is coming from. To find out more, please read our privacy policy.

By choosing 'I Accept', you consent to our use of cookies and other tracking technologies.

We use cookies and other tracking technologies to improve your browsing experience on our site, analyze site traffic, and understand where our audience is coming from. To find out more, please read our privacy policy.

By choosing 'I Accept', you consent to our use of cookies and other tracking technologies. Less

We use cookies and other tracking technologies... More

Login or register
to publish this job!

Login or register
to save this job!

Login or register
to save interesting jobs!

Login or register
to get access to all your job applications!

Login or register to start contributing with an article!

Login or register
to see more jobs from this company!

Login or register
to boost this post!

Show some love to the author of this blog by giving their post some rocket fuel 🚀.

Login or register to search for your ideal job!

Login or register to start working on this issue!

Login or register
to save articles!

Login to see the application

Engineers who find a new job through Functional Works average a 15% increase in salary 🚀

You will be redirected back to this page right after signin

Blog hero image

Most Useful Resources For Learning Scala

Marcin Krykowski 15 February, 2021 | 8 min read

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!

Video Courses

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.

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.

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.

Ebooks

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.

Blogs

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.

Join our newsletter
Join over 111,000 others and get access to exclusive content, job opportunities and more!

Coding practice

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!

Other types

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.

Books

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.

Sign up to Functional Works for more functional articles, jobs and open source issues!

Originally published on marcinkrykowski.medium.com

Related Issues

Concordium / Testnet3-Challenges
  • Started
  • 0
  • 1
  • Intermediate
    Concordium / Testnet3-Challenges
    Concordium / Testnet3-Challenges
    • Open
    • 0
    • 0
    • Intermediate
      Concordium / Testnet3-Challenges
      Concordium / Testnet3-Challenges
      • Open
      • 0
      • 0
      • Intermediate
        Concordium / Testnet3-Challenges
        Concordium / Testnet3-Challenges
        • Open
        • 0
        • 0
        • Intermediate

          Get hired!

          Sign up now and apply for roles at companies that interest you.

          Engineers who find a new job through Functional Works average a 15% increase in salary.

          Start with GitHubStart with Stack OverflowStart with Email