Learning Julia on exercism.io through practice problems and free mentorship

announcement

#1

Hey everyone,

Exercism is a platform designed to help people improve their coding skills through practice and mentorship.

It relaunched a few months ago with a new mentoring feature. The Julia track has since grown significantly to nearly 600 students. I want to share it here, because it may be useful to people learning and teaching Julia. For disclosure: I currently maintain the Julia track.

How does it work? There are currently 36 Julia exercises, all including a test suite. 11 of those are so called core exercises. They are designed to teach a little bit more about the language features. A student uploads his solution to the exercise and receives feedback on it by a mentor and discusses it. Once the solution is approved, the student unlocks the next core, and a few side exercises. Usually this is done after a few rounds of refactoring. The side exercises provide practice problems to deepen the learned skills.

Who does it target? Exercism is mainly targetted at people who need practice problems while learning a new language. If you like to help beginners out, like to discuss solutions and want to learn more tricks yourself, you may enjoy becoming a mentor.

If you’re teaching a class, feel free to use the exercises, example solutions and test suites, they’re all published under the MIT license: https://github.com/exercism/julia. There’s also a version for private teams: https://teams.exercism.io/


The track is growing, and while currently the mentors can mostly keep up with the demand, more mentors and contributors are always welcome!
If you’re interested, check it out and consider joining. It is completely up to you, how much time you want to spend on it, although ideally we want to have enough mentors so that on average ~1 hour a week per mentor is enough to handle all submissions. Even giving feedback on 1 submission a week is valuable to the learners!


Looking forward to your comments and hopefully seeing more mentors and students on the track! :slight_smile:


#2

Very commendable that you do this! I’ve recommended this to a new user!


#3

The breadth of languages on here is pretty stunning! I’m really liking it so far.


#4

Bump. We could use some more mentors :slight_smile:


#5

I was thinking about it, but could not convince myself that it benefits learners (in general, not particular people using this site) more than simply answering question here.

Most questions in the First Steps category here get excellent answers within a few minutes. What’s the advantage (from a social perspective) of volunteering time on a closed platform?


#6

How is it more closed than discourse?

In any case, it can be considered a supplement to, instead of a replacement for, First Steps. I’ve learned a bunch from being a (Julia) mentor and a (Go) student. If you’re looking to get familiar w/ a new language, you might consider it.


#7

I am under the impression that even just viewing material requires registration, but I may have missed something.


#8

#9

Just as a heads-up: The example solutions in that repo are used to test that the testsuite works correctly and that it’s possible to write a working solution, they aren’t necessarily the most idiomatic or best way to solve the exercise.

Students can choose to publish their submitted solution and it will show on the website https://exercism.io/tracks/julia/exercises/hello-world/solutions, too. The individual mentor comments are, afaik, the only non-publicly visible material right now.


#10

As a user of the site for both the Lisp and Julia tracks, I find it to be more immediately responsive than asking here on discourse. I’m guessing that mentors are more intimately familiar with the particular assignments and can provide answers with less ‘overhead’, i.e. less back and forth of discussing the fundamental reason for the problem existing and more discussion of the ways to tackle it in Julia.

Also, it feels more appropriate to me to ask fundamentals of a language or subject matter in a space specifically setup for just that task (that’s just my personality though). Everyone on here has been open to answering my questions, but I really see Discourse as a place to tackle much more difficult or in-depth problems and discuss meta-Julia issues.


#11

I am trying it out currently. I enjoy it. The possibility to see other people’s solutions is very helpful, I find. Also, the mentoring by @sbromberger is exquisite!

There are also side exercises that you can solve in addition such as the spiral matrix for which there are sooo many interesting solutions. It’s been a while for me to have to solve these kind of tasks, so I find it’s a nice mental exercise + I get feedback on code quality.


#12

I found about this a couple days ago and I did all the exercises for Julia. It was a neat experience. If I have time, I will try to mentor a bit.