Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rock the JVM + learning links #4265

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -144,6 +144,18 @@ into larger problems.
If you are being harassed, please contact one of [us](#maintainers)
immediately so that we can support you.

### Learning

Below you can find third-party long-form materials strictly focused on Cats:

* (book) [Scala with Cats](https://underscore.io/books/scala-with-cats/)
by Noel Welsh and Dave Gurnell
* (course) [Rock the JVM Cats course](https://rockthejvm.com/p/cats/)
* (tutorial) [herding cats](http://eed3si9n.com/herding-cats/) by Eugene Yokota
* (tutorial) [Scala Exercises](https://www.scala-exercises.org/cats) by 47 Degrees

Check [this page](https://typelevel.org/cats/resources_for_learners.html) for a wider range of materials where the Cats library is used in the context of category theory, Scala projects and more.

Comment on lines +147 to +158
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There's already a link to the "resources_for_learners.html" page in this file (see https://github.com/typelevel/cats#documentation). Perhaps it would be better to add missing resources to the referenced page in the docs instead.

### Binary compatibility and versioning

After `1.0.0` release, we [decided](https://github.com/typelevel/cats/issues/1233)
Expand Down
15 changes: 10 additions & 5 deletions docs/resources_for_learners.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
{% laika.title = Resources for Learners %}

# Books
# Resources for Learners

## Books
* [Functional Programming in Scala](https://www.manning.com/books/functional-programming-in-scala)
by Paul Chiusano and Rúnar Bjarnason - While this book does not
specifically cover Cats, it is a great introduction to functional
Expand All @@ -12,18 +14,21 @@
as a way to structure program design, and to explain how these
concepts are implemented in Cats.

# Tutorials
## Courses
* [Scala with Cats course](https://rockthejvm.com/p/cats/) by Daniel Ciocîrlan of [Rock the JVM](https://rockthejvm.com/) - This course is specifically designed for Cats and explores all the major data types and type classes from Cats in detail with practice exercises. It has all the required theory for understanding the mental model of Cats, it's pragmatic and focused on code with realistic scenarios.

## Tutorials
* [herding cats](http://eed3si9n.com/herding-cats/) by Eugene Yokota
* [Scala Exercises](https://www.scala-exercises.org/cats) by 47 Degrees
offers multiple online exercises to learn about the type classes and
datatypes included in Cats.

# Example Projects
## Example Projects
* [Scala Pet Store](https://github.com/pauljamescleary/scala-pet-store)
Demonstrates FP techniques while maintaining approachability for people with an OO background. Uses tagless final for the core domain, and popular Typelevel libraries including Cats, Http4s, Circe and Doobie.


# Videos
## Videos
* [Functional Structures in Scala](https://www.youtube.com/playlist?list=PLFrwDVdSrYE6dy14XCmUtRAJuhCxuzJp0)
  by [Michael Pilquist](https://github.com/MPilquist) offers a series
of lectures about basic functional structures.
Expand All @@ -39,6 +44,6 @@
* [Easy and efficient data validation with Cats](https://www.youtube.com/watch?v=P8nGAo3Jp-Q) by [Daniela Sfregola](https://danielasfregola.com/) this talk introduces Cats, and some of its most interesting components for data validation. In particular, we’ll discuss some options to achieve efficient and expressive data validation. We will also argue that, compared to other options in the language, Cats is particularly suited for the task thanks to its easy-to-use data types and more approachable syntax.
* [Cats by example](https://www.youtube.com/playlist?list=PLy4hTMY6erDBmvZiEDjtCTP8XCdhaXc2c) by [Thomas Höfer](https://twitter.com/TomTriple) provides a beginner series on various datatypes from Cats.

# Social network
## Social network
* [@impurepics](https://twitter.com/impurepics) regularly tweet informative and kawaii educational pieces about Cats and FP in Scala.