On extending Ruby on Rails knowledge: part 1.
2 min read

On extending Ruby on Rails knowledge: part 1.

I've been working with Ruby on Rails for about 17 months now and I feel I've learned a lot so far but I want to take my knowledge one step further. For this to happen, I'll establish an actionable list of items that I either want to review or learn from scratch. This isn't necessarily a beginner-friendly list as it's meant to take me out of my comfort zone. I hope it'll have the same effect on you. I'll intend to take on items my current understanding isn't at the level it should be. For many of these, I'm a functional contributor but a more in-depth understanding would be welcome.

These encompass Rails queries and relations, for example. I also want to take another look at Ruby basics such as Array methods, operators, and Enumerable. I'll break the list into small topics that I can tackle at my own pace over time. I'll start by reading some chapters from David A. Black's The Well-Grounded Rubyist. This is a very thorough book on the subject and will serve as a guide to the topic as a whole. For the Rails track, I'll rely upon the content provided by the Odin Project. In the future, I'll revisit Sandi Metz's Practical Object-oriented design. It's a fantastic book but for now, I'll keep it off the list otherwise it'll become too extensive. A friend of mine (@raulvcoan) is joining me in this process. He's built a list of important topics to learn from the Ruby Docs. I'll move through them as soon as I finish the book's chapters. I know - the topics may become repetitive. I do think though that there's value in grasping the same content from different authors.

The Notion Dashboard I'll use to keep track of my improvement

Here's how it'll work: I'll read and practice each of the topics listed. Practicing here might mean different things for different topics. For ruby-specific items, I'll follow an approach in the style of Leetcode. I'll select a few easy exercises and complete them to make sure they're internalized. This isn't a university: There are no tests or grades I need to achieve. So I'll take my time to learn each of them in a pragmatic manner. When I've finished one topic, I'll change the "Status" column to complete it and move on. Some others may involve building a small project to exercise the concepts. I'll update this blog with relevant info as I go.

By the end, I expect to be able to discuss and use everything I learned in my professional life. I also aim at speeding up the development of my personal projects, which I'll talk about in future posts. Something you might notice is that the list is backend-heavy. This is due to a personal preference for building projects with separate front-end and back-end components. I hope this is useful for you too! Feel free to duplicate the Notion template to your dashboard and follow along if you feel like it.

Notion dashboard:

Hope your hot chocolate is never cold!