Short Ruby Podcast by Lucian Ghinda

Sharing your knowledge as a path to mastery

Lucian Ghinda Season 1 Episode 3

To become a better developer, consider sharing your knowledge as a path to mastery. 

This advice applies to any developer, regardless of language or experience level. While expanding your skills through books, conferences, open-source contributions, side projects, and coding katas is valuable, teaching others combines creation and learning.

Contribute to the Ruby or Rails community by sharing knowledge, benefiting everyone regardless of AI trends. Curiosity is key: let it guide you, explore 'what-if' questions, and dive into gem source codes.

You can share your knowledge in multiple forms:

- social media posts/threads

- blog posts

- videos

- streaming

- ebooks or booklets in various shapes and forms

I recommend starting with social media posts/videos and blog posts to make it easier and avoid focusing on publishing the perfect content. But you should choose the format that fits you the best. 

I want to provide a different angle to the question about how can I become an even better developer. I have Ruby developers in mind, but I think it can be applied to any developer that uses any programming language. 

There are multiple ways to increase your knowledge: read books, participate in conferences, contribute to open source, start your own side project, do coding katas, and more. All of them are great, and maybe I will try to talk about each one individually and how to get the most out of it. 

But here is my different proposal: share your knowledge with other people as a road to mastery. I usually give this advice to anyone who asks me how to grow or level up, whether they are junior, middle, senior, or expert already. What I like about this is that it is both an act of creation and a learning method. 

At the same time, you will contribute to the growing the body of knowledge about Ruby or Rails Hanami or Sinatra Roda, or whatever framework/library you like to work with. This is a net benefit for the entire community no matter if the future is AI or not AI based in our work. 

There is one essential aspect to this: curiosity. When sharing your knowledge, allow yourself to explore where your curiosity might lead you, explore what-if questions, open that gem source code, and check the method definition yourself. 

You can share your knowledge in multiple forms:
- social media posts/threads
- blog posts
- videos
- streaming
- ebooks or booklets in various shapes and forms

I recommend starting with social media posts/videos and blog posts to make it easier and avoid focusing on publishing the perfect content. But you should choose the format that fits you the best. 

Some people might debate what you share. That is another source of leveling up if the debate is focused on the technical knowledge and it is not personal. You will learn to dig deeper into your own reasoning and try to find new arguments thus you will know even more about that specific topic. Or you might find out you were wrong, you made a mistake and someone else offered a better or more fit solution. That is also a great learning point. You just found out in this case a better solution for that specific problem you were trying to solve. 

Three important points to take into consideration:

  1. Whatever you feel like sharing, make it a learning experience for the reader. Present the context, the solution, and the pros and cons. You don't have to write all of these from the start but you can evolve to explore a problem and the solution you are proposing from various angles. Being able to see both the advantages and the drawbacks or payments for a specific solution is a great source of knowledge. It is wisdom. 
  2. Follow your curiosity and dig deeper about what you share. Read the Rails source code and the docs about that method and then share about it. Open the gem and read that method yourself. Ask yourself questions like 'What if' about what you are sharing. Open the IRB or Rails console and try it out. 
  3. Accept critique: I often got corrected or debated on my posts (social media or blog) in public or private, sometimes by Ruby or Rails commiters. Those were amazing occasions to learn, ask questions, and understand my blind spots.

By doing this (and I mean here by trying to share your technical knowledge and interact with your audience) you will get three very important side effects:

1. You will improve your communication skills. This is especially important the older you are in your career. 

2. You will help other people learn. If you are a junior, let me say this very clear: this applies to you, too. Sharing what you know might help other juniors find a solution to their own problems or see that they are not alone in their endeavor. Your own point of view, how you see things, how you reason about them might help someone that matches your own style. But also it might help well establish projects improve how they are onboarding people who just started their learning path. 

3. You will become more resilient emotionally. If you engage in conversations and debates about your technical solutions and put an effort into understanding the other person's point of view, you get to train yourself to handle negative feedback. Or to read opinions that you don't like. Being able to read divergent technical opinions and give weight to a solution that you might not agree with is a great way to sharpen your thinking skills and reduce the first emotional response. 

This is why sharing your knowledge with others and getting feedback about it is a great way to level up as a developer.