diff --git a/README.md b/README.md index 4dfa940..45d2bb3 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ 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 rise a pull request. +The list is still incomplete, any additional resources for existing sections or whole sections are welcome, just raise a pull request. --- @@ -10,14 +10,21 @@ The list is still incomplete, any additional resources for existing sections or - 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 - - Hands on Scala by Li Haoi https://www.handsonscala.com/chapter-1-hands-on-scala.html + - (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/ + - 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/ --- + ## Blogs, newsletters and channels + - Softwaremill - Scala Times newsletter https://scalatimes.com/ - Blog https://softwaremill.com/blog/ @@ -29,7 +36,7 @@ The list is still incomplete, any additional resources for existing sections or - https://www.youtube.com/@rockthejvm/videos - https://blog.rockthejvm.com/ - Jakub Kozłowski - - https://www.youtube.com/@kubukoz_/videos + - https://www.youtube.com/@kubukoz/videos - https://blog.kubukoz.com/ - Dev inside you - https://www.youtube.com/@DevInsideYou/videos @@ -40,41 +47,50 @@ The list is still incomplete, any additional resources for existing sections or - 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/ @@ -86,59 +102,72 @@ The list is still incomplete, any additional resources for existing sections or ### 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 +#### 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 @@ -146,16 +175,19 @@ The list is still incomplete, any additional resources for existing sections or - 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/