Course of Raku

About this course

Welcome to the course of the Raku programming language!

This course covers all the main aspects of the language that you need to use in your daily practice. The course consists of five parts that explain the theory and offer many practical assignments. It is assumed that you try solving the tasks yourself before looking to the solution.

If you’re only starting to learn Raku, you are advised to go through all the parts in the order they are listed in the table of contents. If you have some practice and you want to have some specific training, you are welcome to start with the desired section.

Structure

The course is divided into five parts, each of which includes several sections, which in turn include a number of topics (or, merely saying, different pages with their unique URL).

The course includes materials of the following four types:

  • — Theory that covers the current topic
  • — Quizzes that test your understanding of the theory of the topic and/or the section
  • — Exercises for the material of the whole section
  • — Answers to the exercises

Sometimes, practical assignments (both quizzes and exercises) give additional information on the subject, so to make the most of the course, it is recommended you do not skip them.

Below each page, there is a navigation block that you can use to traverse the entire course. You can also always jump to the desired section using the breadcrumbs menu at the top of the page.

While the navigation guides you through the assignments in a particular order, you can solve them in more or less random order within the current section or topic.

Contents

The course includes five parts, all completely written and published:

Part Topics Quizzes Exercises
Raku essentials 91 73 65
Advanced Raku subjects 86 48 115
Objects, I/O, and exceptions 33 20 55
Regexes and grammars 34 29 49
Functional, concurrent, reactive, and web programming 40 31 56
Addendum: comprehensive exercises 8 50

The sixth part, the Addendum, is a separate collection of tougher, more substantial exercises that draw on the whole course at once — the kind of practice you reach for once the core material is behind you.

Note that the course is still being refined, so the URLs of its different parts may slightly change in the future. New exercises and quizzes may appear in the already published topics, as well as the theoretical parts can be slightly modified to achieve the best flow of the course.

Prerequisites

To follow the course and run exercises, you need to have a working compiler. There are a number of options:

  • — Install the Rakudo compiler or the Rakudo Star package or
  • — Use online services or
  • — Use docker containers

The different installation options are described at the beginning of the first part.

About the author

The course is written by Andrew Shitov, who is following the development of Raku since about 2000 (when it was known as Perl 6). He is the author of a number of books about programming in Raku. The course material is based on daily experience, particularly on contributing to The Weekly Challenge and reviewing the solutions of other participants, as well as on the experience obtained from using Raku as the main language for the Covid Observer website.

Contributing, terms of use, and feedback

The creation of the course is supported by the grant of The Perl Foundation. You can use the course for self-study or as a set of ready-to-use materials for teaching others. The commercial usage in classes is allowed without permission. Releasing the course as a separate product must be first negotiated with the author.

The source files are available on GitHub: github.com/ash/raku-course. Feel free to submit a pull request to correct the potential mistakes or typos or create an issue on GitHub if you want to discuss a broader subject. You can also contact the author by e-mail.

Course navigation

Start   |   What is Raku