Announcing the official launch of Scala Exercises V.2

In March of 2015, we launched Scala Exercises, a free Open Source web-based community tool containing multiple koan style exercises designed to help users master some of the most important tools in the Scala Ecosystem.

The goal of the initial version was to gauge community interest in an educational tool of this type. Despite having multiple limitations, the platform saw over 63,000 sessions, a 40% return rate, and 180 PRs from 50 contributors within the first year. Interest gauged.

Now, we’re happy to announce the launch of Scala Exercises V.2, a highly improved and expanded platform where users can gain an understanding of Scala’s API and central libraries by completing exercises directly in their browser.

The exercises serve as unit tests that a user must successfully pass in order to advance. The fill in the blank, compile process provides real-time validation beginning with the basics and increasing in complexity as a user’s skills progress.

What’s new?

Login directly with your GitHub account and save progress across devices.

Increased social components: share your progress with your friends, discuss and ask questions with others in the community.

We’ve made it easy for other libraries and community members to craft their own exercises (see contribute! below).

We’ve included exercise tracks for the following libraries to start:

Std Lib: Scala fuses object-oriented and functional programming in a statically typed programming language.

Cats: an experimental library intended to provide abstractions for functional programming in Scala.

Shapeless: a type class and dependent type based generic programming library for Scala.

Why learn Scala?

Scala has a reputation for being a difficult language to learn, so why should you even bother?

Besides the numerous benefits of using a scalable language like Scala, the rising adoption within major corporations as well as smaller startups has generated a high-demand for Scala developers. The problem is, there aren’t that many of them out there.

Meaning, the jobs are out there, the talent to fill them is not (unless you go through staff augmentation and consulting engagements from the likes of our experienced Scala/Spark Engineers).

Tech Crunch, who is referring to Scala as “the new golden child”, sums it up quite nicely, “If you’re looking to grow your knowledge and job prospects, now is a good time to pick up some new tools – ones designed for scalability.”

In addition, according to a recent Stack Overflow developer survey, Scala is one of the most loved programming languages out there (and highest paying). So the question shouldn’t be, why should I learn? But, why haven’t I started yet?

Scala Exercises makes learning the language, and it’s associated tool sets easy. It can be a great asset for individuals completing the Coursera Functional Programming in Scala specialization, seasoned developers looking to brush up their skills, and those who’re curious about what programming in Scala looks like.

Technical Specs:

Unlike V.1, which was written entirely in Javascript, V.2 uses a variety of technologies including Scalajs and Cats on the client-side, and Play, Cats, and Doobie on the server-side.

The growth of this Open Source project depends on you! We’ve made it easy for people to add exercises for additional libraries and toolsets by creating a sbt-plugin to transform your tutorials and lessons into functioning exercises within their own repositories.

We also encourage you to open an issue if you notice a bug, have an idea for a feature, or a question about the code.

47 Degrees believes in recognizing contributors as part of the Scala Exercises team! We will feature photos and details of specific commits on every section.

Scala Exercises began as a proof of concept from Rafa Paradela for 47 Degrees’ Labs. Version two has been worked on by many of the 47 Degrees team with a total of 59 contributors.

Please feel free to join us in the Scala Exercises Gitter Channel to discuss anything related to this project and follow us at @47deg and use #ScalaExercises to join in on the conversation.

Learn. Solve. Share. Contribute. Repeat.