If you already know some of the fundamentals of the Ruby language, but you want to get some hands-on experience to expand your skills, I suggest taking a look at the following tools/platforms:
Ruby key concepts on Exercism - All the concepts covered are explained in the context of language-specific paradigms and conventions.
Ruby Koans - Learn the Ruby language, syntax, structure, and some common functions and libraries. You’ll also learn about culture and testing.
Ruby Warrior - Game designed to teach the Ruby language in a fun and interactive way.
Ruby Challenges - Open-ended challenges designed to test your problem-solving skills.
Advent of Ruby - CLI tool for Advent of Code in Ruby that shows other people’s solutions.
Cassidoo Newsletter - There’s also an interview question of the week, where you can test your skills and review the results the following week.
There are a couple of practices I recommend to engineers as a form of deliberate practice. It really comes down to doing something repetitive that exposes you to a lot of code. What really helped me to expand my coding ability was writing tests for existing code. It’s hard to write tests for code you don’t understand, so you’re testing your understanding at the same time you’re testing the code. Similarly, going through linter fixes, or updating code across a codebase to match a new pattern can expose you to a lot of code, which helps you learn to understand code you read more quickly. We spend like 90% of our time reading existing code, so it’s pretty core to being a skilled developer.
Thanks for your comment @mockdeep (and welcome to the forum!)
I agree that writing tests is a great way to get good at writing code since it forces you to understand what is happening and can also give you a lot of feedback regarding the design tradeoffs in a project.
Do you recommend a specific repository or exercise or the idea is to pick something you’re familiar with?
Well, in house I typically recommend our private codebase. Open source codebases are tricky because the maintainers may or may not be responsive. I’m a maintainer on RMagick, which has a ton of untested code, and I and the other frequent maintainer are pretty responsive. So that’s one place to start. It interfaces both with C code and various versions of ImageMagick, though, so it can be extra challenging to navigate. Which could be a good thing as long as you’re patient with yourself.
I really enjoyed Exercism when I was learning Ruby. I learned a lot from comparing my solutions to other people’s solutions.
Recently I wanted to make the same thing possible for Advent of Code in Ruby, so I made a gem called Advent of Ruby that shows AoC solutions pulled from Reddit and GitHub. It is also a CLI that streamlines the setup of each puzzle (downloading the input file, creating solution and spec files, etc.).
Thanks for sharing. I’ve included it on the list of recommended resources, it’s great idea to enhance the Advent Of Code experience and get some extra practice!