Skip to content

Move “Online Courses” documentation to a dedicated page #2287

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

Merged
merged 3 commits into from
Jan 17, 2022
Merged
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
2 changes: 2 additions & 0 deletions _data/doc-nav-header.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@
url: "/tour/tour-of-scala.html"
- title: Scala Book
url: "/overviews/scala-book/introduction.html"
- title: Online Courses
url: "/online-courses.html"
- title: Online Resources
url: "/learn.html"
- title: Tutorials
Expand Down
2 changes: 2 additions & 0 deletions _data/scala3-doc-nav-header.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@
url: "/scala3/new-in-scala3.html"
- title: Scala 3 Book
url: "/scala3/book/introduction.html"
- title: Online Courses
url: "/online-courses.html"
- title: Migrate
url: "/scala3/guides/migration/compatibility-intro.html"
- title: Reference
Expand Down
10 changes: 7 additions & 3 deletions index.md
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,10 @@ scala3-sections:
description: "Talks about Scala 3 that can be watched online"
icon: "fa fa-play-circle"
link: /scala3/talks.html
- title: "Online Courses"
description: "MOOCs to learn Scala, for beginners and experienced programmers."
icon: "fa fa-cloud"
link: /online-courses.html

scala2-sections:
- title: "First Steps..."
Expand All @@ -68,10 +72,10 @@ scala2-sections:
description: "Learn Scala by reading a series of short lessons."
icon: "fa fa-book-open"
link: /overviews/scala-book/introduction.html
- title: Online Resources
description: "Online Courses, Exercises, & Blogs."
- title: Online Courses
description: "MOOCs to learn Scala, for beginners and experienced programmers."
icon: "fa fa-cloud"
link: /learn.html
link: /online-courses.html
- title: Books
description: "Printed and digital books about Scala."
icon: "fa fa-book"
Expand Down
90 changes: 5 additions & 85 deletions learn.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: Online Resources
layout: inner-page-no-masthead
layout: singlepage-overview
redirect_from:
- /documentation/books.html
---
Expand All @@ -11,90 +11,10 @@ There are a handful of websites where you can interactively run Scala code in yo

## Online courses from the Scala Center

The following online courses provide two main paths to learn Scala. The
fast path consists of taking the course [Effective Programming in Scala],
otherwise you can take the full [Scala Specialization], which is made of
four courses and a capstone project.

All the courses are available for free. Optionally, a subscription gives
you access to a certificate of completion that attests your accomplishments.
Learn more about
[Coursera certificates](https://learners.coursera.help/hc/en-us/articles/209819053-Get-a-Course-Certificate) or
[edX certificates](https://support.edx.org/hc/en-us/categories/115002269627-Certificates).

### Effective Programming in Scala

[Effective Programming in Scala] teaches non-Scala programmers everything
they need to be ready to work in Scala. At the end of this hands-on course,
you will know how to achieve common programming tasks in Scala (e.g.,
modeling business domains, implementing business logic, designing large
systems made of components, handling errors, manipulating data, running
concurrent tasks in parallel, testing your code). You can learn more about
this course in the following video:

<div style="text-align: center">
<iframe width="560" height="315" src="https://www.youtube.com/embed/MSDJ7ehjrqo" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div>

This course is also a good way to upgrade your Scala 2 knowledge to Scala 3.

After taking this course, you might be interested in improving your
skills in specific areas by taking the courses [Parallel Programming],
[Big Data Analysis with Scala and Spark], or [Programming Reactive Systems].

### Scala Specialization

The [Scala Specialization] provides a hands-on introduction to functional programming using Scala. You can access the courses
material and exercises by either signing up for the specialization or auditing the courses individually. The
specialization has the following courses.
* [Functional Programming Principles in Scala],
* [Functional Program Design in Scala],
* [Parallel programming],
* [Big Data Analysis with Scala and Spark],
* [Functional Programming in Scala Capstone].

These courses provide a deep understanding of the Scala language itself,
and they also dive into more specific topics such as parallel programming,
and Spark.

### Programming Reactive Systems

[Programming Reactive Systems] (also available on [edX](https://www.edx.org/course/scala-akka-reactive))
teaches how to write responsive, scalable, and resilient systems with the
library Akka.

### Scala Learning Path

The diagram below summarizes the possible learning paths with our courses:

![](/resources/images/learning-path.png)

The “foundational” courses target programmers with no prior experience in Scala, whereas the “deepening”
courses aim at strengthening Scala programmers skills in a specific domain (such as parallel programming).

We recommend starting with either Effective Programming in Scala, or Functional Programming Principles in
Scala followed by Functional Program Design. Then, you can complement your Scala skills by taking any
of the courses Programming Reactive Systems, Parallel Programming, or Big Data Analysis with Scala and Spark.
In case you take the Scala Specialization, you will end with the Scala Capstone Project.

### Scala 2 Courses

The above courses use Scala 3 (except the Spark courses). If needed, you can find
the (legacy) Scala 2 version of our courses here:

- [Functional Programming Principles in Scala (Scala 2 version)](https://www.coursera.org/learn/scala2-functional-programming)
- [Functional Program Design (Scala 2 version)](https://www.coursera.org/learn/scala2-functional-program-design)
- [Parallel Programming (Scala 2 version)](https://www.coursera.org/learn/scala2-parallel-programming)
- [Programming Reactive Systems (Scala 2 version)](https://www.coursera.org/learn/scala2-akka-reactive)

[Scala Specialization]: https://www.coursera.org/specializations/scala
[Effective Programming in Scala]: https://www.coursera.org/learn/effective-scala
[Functional Programming Principles in Scala]: https://www.coursera.org/learn/scala-functional-programming
[Functional Program Design in Scala]: https://www.coursera.org/learn/scala-functional-program-design
[Parallel programming]: https://www.coursera.org/learn/scala-parallel-programming
[Big Data Analysis with Scala and Spark]: https://www.coursera.org/learn/scala-spark-big-data
[Functional Programming in Scala Capstone]: https://www.coursera.org/learn/scala-capstone
[Programming Reactive Systems]: https://www.coursera.org/learn/scala-akka-reactive
The [Scala Center](https://scala.epfl.ch) is committed to creating high-quality
and freely available online courses for learning Scala and functional
programming. The course levels range from beginner to advanced.
More details on [this page]({% link online-courses.md %}).

## Scala Exercises

Expand Down
106 changes: 106 additions & 0 deletions online-courses.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,106 @@
---
title: Online Courses from The Scala Center
layout: singlepage-overview
scala3: true
---

The online courses from the [Scala Center] provide two main paths to learn
Scala. The fast path consists of taking the course [Effective Programming
in Scala],
otherwise you can take the full [Scala Specialization], which is made of
four courses and a capstone project.

All the courses are available for free. Optionally, a subscription gives
you access to a certificate of completion that attests your accomplishments.
Learn more about
[Coursera certificates](https://learners.coursera.help/hc/en-us/articles/209819053-Get-a-Course-Certificate) or
[edX certificates](https://support.edx.org/hc/en-us/categories/115002269627-Certificates).
Your subscriptions also supports the work of the [Scala Center], whose mission
is to create high-quality educational material.

You can learn more about the Scala Center online courses in the following video:

<div style="text-align: center">
<iframe width="560" height="315" src="https://www.youtube.com/embed/rRCdnTspE_k" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div>

## Scala Learning Path

The diagram below summarizes the possible learning paths with our courses:

![](/resources/images/learning-path.png)

The “foundational” courses target programmers with no prior experience in Scala, whereas the “deepening”
courses aim at strengthening Scala programmers skills in a specific domain (such as parallel programming).

We recommend starting with either Effective Programming in Scala, or Functional Programming Principles in
Scala followed by Functional Program Design. Then, you can complement your Scala skills by taking any
of the courses Programming Reactive Systems, Parallel Programming, or Big Data Analysis with Scala and Spark.
In case you take the Scala Specialization, you will end with the Scala Capstone Project.

## Effective Programming in Scala

[Effective Programming in Scala] teaches non-Scala programmers everything
they need to be ready to work in Scala. At the end of this hands-on course,
you will know how to achieve common programming tasks in Scala (e.g.,
modeling business domains, implementing business logic, designing large
systems made of components, handling errors, manipulating data, running
concurrent tasks in parallel, testing your code). You can learn more about
this course in the following video:

<div style="text-align: center">
<iframe width="560" height="315" src="https://www.youtube.com/embed/MSDJ7ehjrqo" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div>

This course is also a good way to upgrade your Scala 2 knowledge to Scala 3.

After taking this course, you might be interested in improving your
skills in specific areas by taking the courses [Parallel Programming],
[Big Data Analysis with Scala and Spark], or [Programming Reactive Systems].

## Scala Specialization

The [Scala Specialization] provides a hands-on introduction to functional programming using Scala. You can access the courses
material and exercises by either signing up for the specialization or auditing the courses individually. The
specialization has the following courses.
* [Functional Programming Principles in Scala],
* [Functional Program Design in Scala],
* [Parallel programming],
* [Big Data Analysis with Scala and Spark],
* [Functional Programming in Scala Capstone].

These courses provide a deep understanding of the Scala language itself,
and they also dive into more specific topics such as parallel programming,
and Spark.

## Programming Reactive Systems

[Programming Reactive Systems] (also available on [edX](https://www.edx.org/course/scala-akka-reactive))
teaches how to write responsive, scalable, and resilient systems with the
library Akka.

## Scala 2 Courses

The above courses use Scala 3 (except the Spark courses). If needed, you can find
the (legacy) Scala 2 version of our courses here:

- [Functional Programming Principles in Scala (Scala 2 version)](https://www.coursera.org/learn/scala2-functional-programming)
- [Functional Program Design (Scala 2 version)](https://www.coursera.org/learn/scala2-functional-program-design)
- [Parallel Programming (Scala 2 version)](https://www.coursera.org/learn/scala2-parallel-programming)
- [Programming Reactive Systems (Scala 2 version)](https://www.coursera.org/learn/scala2-akka-reactive)

## Other Online Resources

You can find other online resources contributed by the community on
[this page]({% link learn.md %}).

[Scala Center]: https://scala.epfl.ch
[Scala Specialization]: https://www.coursera.org/specializations/scala
[Effective Programming in Scala]: https://www.coursera.org/learn/effective-scala
[Functional Programming Principles in Scala]: https://www.coursera.org/learn/scala-functional-programming
[Functional Program Design in Scala]: https://www.coursera.org/learn/scala-functional-program-design
[Parallel programming]: https://www.coursera.org/learn/scala-parallel-programming
[Big Data Analysis with Scala and Spark]: https://www.coursera.org/learn/scala-spark-big-data
[Functional Programming in Scala Capstone]: https://www.coursera.org/learn/scala-capstone
[Programming Reactive Systems]: https://www.coursera.org/learn/scala-akka-reactive

5 changes: 4 additions & 1 deletion scala3/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -52,5 +52,8 @@ sections:
description: "Talks about Scala 3 that can be watched online"
icon: "fa fa-play-circle"
link: /scala3/talks.html

- title: "Online Courses"
description: "Online Courses on Scala 3"
icon: "fa fa-cloud"
link: /online-courses.html
---