Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/polyvariant/learn-scala
Reference learning material for Scala
https://github.com/polyvariant/learn-scala
fp functional-programming learning scala
Last synced: about 2 months ago
JSON representation
Reference learning material for Scala
- Host: GitHub
- URL: https://github.com/polyvariant/learn-scala
- Owner: polyvariant
- License: apache-2.0
- Created: 2023-03-11T19:36:41.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2024-04-22T18:04:22.000Z (9 months ago)
- Last Synced: 2024-04-23T19:24:00.486Z (9 months ago)
- Topics: fp, functional-programming, learning, scala
- Homepage: https://learn-scala.polyvariant.org/
- Size: 18.6 KB
- Stars: 2
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Learn Scala
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.
---
## General trainings and books
- 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
- (paid) Rock The JVM https://rockthejvm.com
- (paid, free preview) Hands on Scala by Li Haoi https://www.handsonscala.com/chapter-1-hands-on-scala.html
- Scala with Cats by Underscore https://www.scalawithcats.com/dist/scala-with-cats.html
- 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
- Lightbend Scala Language - Professional https://academy.lightbend.com/courses/course-v1:lightbend+LSL-P-Scala-Language-Professional+v1/about
- Foundations of Functional Programming in Scala https://www.youtube.com/watch?v=OdPaWmRnAc4&list=PLiYD0LWExCDkXGpYRY3WjNscDfhe4D0ND
- (paid) Inner-product training https://www.inner-product.com/services/training/
- (paid) Zainab Ali's training https://kebab-ca.se/training.html---
## Blogs, newsletters and channels
- Softwaremill
- Scala Times newsletter https://scalatimes.com/
- Blog https://softwaremill.com/blog/
- Petr Zapletal
- https://petr-zapletal.medium.com/
- Salar Rahmanian
- Scala news https://www.scalanews.net/
- Daniel Ciocîrlan
- https://www.youtube.com/@rockthejvm/videos
- https://blog.rockthejvm.com/
- Jakub Kozłowski
- https://www.youtube.com/@kubukoz_/videos
- https://blog.kubukoz.com/
- Dev inside you
- https://www.youtube.com/@DevInsideYou/videos
- https://devinsideyou.com/
- Li Haoyi
- https://www.lihaoyi.com/
- Michał Pawlik
- https://blog.michalp.net/---
## Language aspects
### Type system hierarchy
- https://docs.scala-lang.org/tour/unified-types.html
- https://www.artima.com/scalazine/articles/scalas_type_system.html### Case classes
- https://docs.scala-lang.org/tour/case-classes.html
- https://docs.scala-lang.org/overviews/scala-book/case-classes.html### Traits
- https://docs.scala-lang.org/tour/traits.html
- https://docs.scala-lang.org/overviews/scala-book/traits-interfaces.html### Pattern matching
- 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/### Option and Either
- 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/### Collections, for comprehension
- https://docs.scala-lang.org/overviews/scala-book/collections-101.html
- https://docs.scala-lang.org/tour/for-comprehensions.html### Implicits
- 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/### Future - asynchronous and parallel operations
- 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/---
## Advanced Scala usage and libraries
### Databases
#### Slick
- https://scala-slick.org/doc/3.3.1/introduction.html
- https://books.underscore.io/essential-slick/essential-slick-3.html#### Doobie
- https://tpolecat.github.io/doobie/
#### Quill
- https://getquill.io/
- https://zio.dev/zio-quill/
- https://github.com/zio/zio-protoquill### Working with Json
#### Circe
- https://circe.github.io/circe/
#### Jsoniter Scala
- https://github.com/plokhotnyuk/jsoniter-scala
- https://blog.lambdaspot.dev/the-fastest-and-safest-json-parser-and-serializer-for-scala### IO
- 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### ZIO
- https://zio.dev/
### Monix
- https://monix.io/
### Messaging
#### pass4s
- https://ocadotechnology.github.io/pass4s/
- https://blog.michalp.net/posts/scala/pass4s-basics/### Type classes
- https://tpolecat.github.io/2013/10/12/typeclass.html
- https://scalac.io/typeclasses-in-scala/
- https://www.scala-exercises.org/scala_tutorial/type_classes### Cats
- https://underscore.io/books/scala-with-cats/
- https://typelevel.org/cats/
- https://www.scala-exercises.org/cats/semigroup### Higher-kinded types
- 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### Tagless final
- 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/### FP in general
- https://github.com/mmenestret/fp-resources
- http://adit.io/posts/2013-04-17-functors,_applicatives,_and_monads_in_pictures.html### Streaming
#### FS2
- https://fs2.io/
### OAuth2
#### sttp-oauth2
- https://ocadotechnology.github.io/sttp-oauth2/
- https://blog.michalp.net/posts/scala/oauth2-app-p1/