However, when you are more advanced and you’re looking for larger
projects, you should think about what you want to do. Maybe a small
game or a specific tool?
I think the best way to learn is to write programs that you actually
use. This is much more demanding than just doing small tasks for
training. And it forces you to write good code, because using the
program will very quickly reveal its weaknesses.
I want to practice by writing a few, even if trivial, programs.
One of the usual exercises is Conway’s Game of Life. Especially, do
it with test-driven development, in baby-steps. Then make slightly
different assumptions in your tests and see how it influences your
implementation.
Then check out the Ruby Koans, and assorted repositories of Code
Katas. If you get stuck on Dave T.'s katas, you can see my
solutions to them on my blog (below).
-Dave
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.