May 24, 2024

Kicking off new ways to learn Unison Cloud

Rebecca Mark

If you head to the Unison Cloud website, there's a new way of learning how to write Unison services. Cloud exercises offer a more structured, step-by-step approach to learning.

In pursuit of the goal of teaching folks Unison through various projects, we wrote an application that deploys and tests services, is backed by a Unison native application, and uses Cloud data storage. We think using Unison as a platform to teach Unison is pretty rad. 🤘

The gist of the workflow is that a user who signs up for the Cloud and installs our cloud-start template project can follow along with the steps and guidance given in the exercises.

Some language from a lesson instructing the user to create client models and not store them directly in the database

Using the tips, code snippets, and samples provided, users can edit the exercise stubs in their local environment, and then submit their solution for validation.

The UCM console being used to submit a solution to an exercise with the command

Because service deployments can be described with regular function calls in Unison, they can also be tested with regular function calls. When a user issues run submit.exerciseName in the UCM, they're actually kicking off a program that deploys the service and issues a series of test requests to that service once it starts up.

The UCM console after a passing solution has been submitted. Displaying the passing test and some info about the learning track.

As a user successfully completes different modules, we print a nice record of their progress to the console. ⭐️

A sense of progress and direction was something we wanted to surface to folks learning about the Cloud, so a simple record of previous successes or errors is recorded in a Unison native service. That means, when you submit an exercise, you're also performing a typed remote function call behind the scenes to save the submission's test result.

🍎 Why is this stuff important to us?

We realize there can be a bit of a "blank page effect" when encountering a new platform or technology. Unison might seem… cool… but what should you do with it if you're not a library author beyond the regular “hello world” deployment? We think providing some direction while exploring the language and ecosystem will help folks find their creative footing.

Unison is a new language, and that means we're a community of autodidacts, fighting against a tide of pretty bad pedagogy in tech. We want to provide experiences and build a community that meets people where they're at in their learning, and builds competencies from there.

The modules are open source, so we hope to incorporate community contributed feedback and projects too! Over time, we'll be adding more variety so you can keep learning and building things with Unison. 🎨