Skip to content

habere-et-dispertire/raku-course

 
 

Repository files navigation

A Complete 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 at 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 withing the current section or topic.

Contents

The five parts of the course are:

  1. Raku essentials
  2. Advanced Raku subjects
  3. Object-oriented programming in Raku
  4. Regexes and grammars
  5. Functional, concurrent, and reactive programming

At the moment, the first part is completely written and published. The other parts are in progress. Note that as the course is still in development, the URLs of its different parts may slightly change in the future.

The first part, ‘Raku essentials’, contains:

  • 91 topics
  • 73 quizzes
  • 65 exercises

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.

The course is hosted as GitHub Pages at the following address: course.raku.org.

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.

Running locally

For the instructions on how to run the site locally, please read INSTALL.md.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • HTML 95.3%
  • Raku 4.3%
  • Other 0.4%