This repository is intended as a helper for everyone who wants to improve their Scala knowledge, be it beginners or more advanced users. Links in the sections are provided in no specific order.
The list is still incomplete, any additional resources for existing sections or whole sections are welcome, just raise a pull request.
- Scala Exercises https://www.scala-exercises.org/scala_tutorial/terms_and_types
- Scala at Light Speed https://www.youtube.com/watch?v=-8V6bMjThNo&list=PLmtsMNDRU0BxryRX4wiwrTZ661xcp6VPM
- Foundations of Functional Programming in Scala https://www.youtube.com/watch?v=OdPaWmRnAc4&list=PLiYD0LWExCDkXGpYRY3WjNscDfhe4D0ND
- Functional Programming Strategies in Scala with Cats by Noel Welsh https://www.scalawithcats.com/dist/scala-with-cats.html
- Practical FP in Scala by Gabriel Volpe (free / pay any price) https://leanpub.com/pfp-scala
- Functional Programming in Scala by Martin Odersky https://www.coursera.org/learn/progfun1
- Strategic Scala Style: Principle of Least Power by Li Haoi https://www.lihaoyi.com/post/StrategicScalaStylePrincipleofLeastPower.html
- Functional Stream Processing in Scala by Zainab Ali https://pureasync.gumroad.com/l/functional-stream-processing-in-scala
- Learn Scala 3, Functional Programming and ZIO 2 by Alvin Alexander https://www.learnscala.dev/
Paid:
- Rock The JVM https://rockthejvm.com
- (free preview) Hands on Scala by Li Haoi https://www.handsonscala.com/chapter-1-hands-on-scala.html
- Inner-product training https://www.inner-product.com/services/training/
- Softwaremill
- Scala Times newsletter https://scalatimes.com/
- Blog https://softwaremill.com/blog/
- Petr Zapletal
- Salar Rahmanian
- Scala news https://www.scalanews.net/
- Daniel Ciocîrlan
- Jakub Kozłowski
- Dev inside you
- Li Haoyi
- Michał Pawlik
- https://docs.scala-lang.org/tour/unified-types.html
- https://www.artima.com/scalazine/articles/scalas_type_system.html
- https://docs.scala-lang.org/tour/case-classes.html
- https://docs.scala-lang.org/overviews/scala-book/case-classes.html
- https://docs.scala-lang.org/tour/traits.html
- https://docs.scala-lang.org/overviews/scala-book/traits-interfaces.html
- https://docs.scala-lang.org/tour/pattern-matching.html
- https://alvinalexander.com/scala/how-to-use-pattern-matching-scala-match-case-expressions/
- https://data-flair.training/blogs/scala-pattern-matching/
- https://xebia.com/blog/try-option-or-either/
- https://alvinalexander.com/scala/best-practice-eliminate-null-values-from-code-scala-idioms/
- https://danielwestheide.com/blog/the-neophytes-guide-to-scala-part-7-the-either-type/
- https://docs.scala-lang.org/overviews/scala-book/collections-101.html
- https://docs.scala-lang.org/tour/for-comprehensions.html
- https://www.artima.com/pins1ed/implicit-conversions-and-parameters.html
- https://www.lihaoyi.com/post/ImplicitDesignPatternsinScala.html
- https://scala-fmi.github.io/scala-fmi-2019/lectures/08-implicits.html
- https://apiumhub.com/tech-blog-barcelona/scala-implicits/
- https://docs.scala-lang.org/overviews/scala-book/futures.html
- https://docs.scala-lang.org/overviews/core/futures.html
- https://danielwestheide.com/blog/the-neophytes-guide-to-scala-part-8-welcome-to-the-future/
- https://scala-slick.org/doc/3.3.1/introduction.html
- https://books.underscore.io/essential-slick/essential-slick-3.html
- https://github.com/plokhotnyuk/jsoniter-scala
- https://blog.lambdaspot.dev/the-fastest-and-safest-json-parser-and-serializer-for-scala
- https://typelevel.org/cats-effect/datatypes/io.html
- https://typelevel.org/blog/2017/05/02/io-monad-for-cats.html
- https://medium.com/walmartlabs/understanding-io-monad-in-scala-b495ca572174
- https://tpolecat.github.io/2013/10/12/typeclass.html
- https://scalac.io/typeclasses-in-scala/
- https://www.scala-exercises.org/scala_tutorial/type_classes
- https://underscore.io/books/scala-with-cats/
- https://typelevel.org/cats/
- https://www.scala-exercises.org/cats/semigroup
- https://medium.com/bigpanda-engineering/understanding-f-in-scala-4bec5996761f
- https://dzone.com/articles/scalafp-the-mystery-of-scalas-higher-kinded-types
- https://www.stephanboyer.com/post/115/higher-rank-and-higher-kinded-types
- https://blog.rockthejvm.com/tagless-final/
- https://blog.softwaremill.com/final-tagless-seen-alive-79a8d884691d
- https://blog.softwaremill.com/bake-your-bread-tagless-final-style-dea9448b3dc3
- https://www.basementcrowd.com/2019/01/17/an-introduction-to-tagless-final-in-scala/
- https://scalac.io/tagless-final-pattern-for-scala-code/