Header-image >< Photo by Benjamin Davies on Unsplash

Contributing to open source can be challenging, and those who contribute are often experts with extensive knowledge beyond what I can imagine. As a beginner, I used to believe that it wasn’t meant for me, which affected my motivation. But, one day I stumbled upon a video that inspired me to take the leap. I recommend watching it before continuing.

video-url vv

Looking back, I realized that my fear of making mistakes was the primary obstacle. Once I acknowledged this, I made the decision to be fearless.

Let me provide some context about my background.

Three years ago, I started my programming journey with Python. Since then, I have been coding in Ruby, JavaScript, Go, and SQL. , I am not a Computer Science graduate. I’m someone who enjoys writing code and building innovative software, working towards making it my career.

Now, let’s talk about when I started contributing.

After watching that YouTube video, I logged onto GitHub and explored projects that seemed interesting and . It was around September 2018, during the buzz of Hacktoberfest—an event where participants could earn a T-shirt by creating five pull requests. The desire to own that T-shirt became my initial motivation.

I began by learning about pull requests and how to create them through quick YouTube tutorials. Yet, I soon found myself facing the same dilemma of where to start. , I discovered an organization called FreeCodeCamp that had a fantastic repository dedicated to beginners, guiding them through their first pull request. Instead of fixing issues, this repository focused on creating a curated list of articles or notes on various tech topics, such as a quick guide on Gatsby or an introduction to Docker. As a newbie, my task was to write an article and add interesting pointers about the technology I explored, allowing future readers to enjoy the learning experience.

I enjoyed this approach, and since there were no complex issues, I started researching topics not yet covered in the repository. After writing about them, I created pull requests. With time, I got the hang of it and completely forgot about Hacktoberfest. I kept writing articles and submitting pull requests, and , I received the T-shirt.

It’s important to note that the expectation of receiving a prize at the end of contributing to open source should not be the driving force. Start contributing because it benefits the community, enhances your understanding of programming languages or related technologies, and helps you evolve as a developer.

Now, where should you begin?

CodeTriage is an amazing website that provides a list of repositories in your preferred programming language. By signing up on CodeTriage, you’ll receive an email with a list of issues from your chosen repository.

Once you find a repository you want to contribute to, navigate to the issues section and look for labels like [good-first-issue] or [beginner]. These labels target newbies and will assist you.

I started my OSS contributions with the help of CodeTriage. I found a Ruby repository called Faker, and it sparked a desire within me to overcome my fears and start writing code rather than focusing on articles. I discovered a few [feature-request] issues that nobody was working on, so I decided to tackle them. It took some time to grasp the entire codebase since it wasn’t limited to a few files. But, it wasn’t as frustrating as I anticipated. I was thrilled by the notion that my code could become a part of this codebase, benefiting many users. This alone served as the greatest motivation, surpassing the desire for a T-shirt. My pull request got approved and accepted by the maintainers, while a few other pull requests were still in review. I’ve never felt more fulfilled about something.

github-pr ><

This feeling is what I’m referring to—it’s far better than receiving a T-shirt. It provides more reasons to continue contributing because, , it’s the community that benefits. 🎉

In conclusion, the process of contributing to open source involves:

  1. Finding an issue to work on.
  2. Studying the codebase and understanding what needs to get done.
  3. Writing code, asking questions on the issue, and committing changes.
  4. Submitting a pull request.
  5. Addressing review comments.
  6. Returning to step 1 for the next contribution.

To everyone reading this, programming isn’t hard, and contributing isn’t either. Even if you don’t have an in-depth knowledge of a programming language, you can still contribute through documentation, bug reporting, and learning along the way. After all, we all have to start somewhere, right? 😉