Exercism, free programming learning platform

Exercism, free programming learning platform

Exercism is a platform meant to make programming accessible to everyone.
The platform has 66 languages including crystal.
For every language, there are several exercises for each language meant for users to improve their knowledge.

This month another 5 exercises were added for the crystal track.

The platform also offers free mentoring from real humans. The mentoring sessions is meant for students to get another person’s view of their code. And can really help students understand how to improve their code.

If you already are experienced with crystal, can you mentor students to help new people to get to know crystal.

Here is a link to: Crystal on Exercism


I think what separates Exercism from all the other online coder practice platforms is having to run the tests yourself before submitting your answers. The added transparency enables one to learn how spec works, too.


Perhaps this should’ve gone under ‘help’, or useful here since it pertains to a problem on the Crystal track at Exercism?

The brief, elegant solutions to problem #2 Acronym (generate an acronym with letters following various characters) use a #split statement like


splitting the string input at spaces, hyphens, and underscores. My question: Is

 /[ ]/

used in many places, and why aren’t the separator characters within separated themselves by, say, commas or bars?

I haven’t been able to look at the Exercism question, but I assume you’re talking about the syntax here. Regex literals can be denoted with forward slashes encapsulating the expression, for example: /foo bar/, /\w{3}/, /^[Cc]rystal$/, etc. In this case, [\s-_] is the expression here, the [] is regex syntax for matching character groups (see Regex - Crystal 1.8.1 (crystal-lang.org)).

This is different from alternate string delimiters which are prefixed with the percent symbol (e.g. %(), %[], %<>), and forward slashes are not allowed for this – %// is invalid syntax.

1 Like

string#split can be delimited by an encapsulated regex.

Thank you. I was never gonna figure that out on my own.