How to choose the right open source project for you
Tags: programming, opensource, beginners, codenewbie
Published: 2022-12-01 17:27:24

## Content
- [Intro](#intro) 
- [How to look up the projects](#how-to-look-up-the-projects)
- [How to filter further](#how-to-filter-further)
- [What is next?](#what-is-next)

## Intro
It seems trendy to be a part of open sources lately. I've heard a lot of people wonder how to start contributing to an open source project. I will share tricks and tips. Yet, I will start with a few points you should keep in mind. 

First, contributing to the open source should be beneficial to you. Your most precious asset is time. So, think about the reason why you want to be involved. 

Second, popularity of a project, which is often measured by the number of stars, means nothing. It may sound cool to say you are contributing to a known project. Yet, those project might not be right for you. 

When I started open source projects, I tried to be in any popular projects. And I ended up learning nothing with frustration. This article is not to make another passionate dev miserable. 

## How to look up the projects
If you decided to be part of open source world, next step is to find the right ones. Here are a few tactics I use every time. 

### Start with your own struggles
Beginning with your own difficulties is the best way to start open source imo. For example, do you hate a library you use for logging or monitoring. Or do you find minor errors in the library? You can report this to the project and even propose a better way! They will welcome you if you are willing to improve their project. Plus, as you already have context, it will be easier to start.

### Start with your desire to learn 
What if you don't have ideas? Then begin with what do you want to learn. I lately wanted to learn more on CI/CD process in depth. I found [woodpecker](https://github.com/woodpecker-ci/woodpecker) (if you are interested in) and start contributing to it. While I've been involved, I learned a lot about a better way of designing Golang project and general software engineering.

## How to filter further
If you searched well, you may have a handful of projects you are interested. Feeling ready to dive? Wait a few moments. From experience, we need to be more strict about projects we will join. Why? Some projects are not easy to contribute to, and your time is PRECIOUS. Here are a few criteria you can refer

### They don't have docs
Having right documents is useful to understand about the architecture, codebase in high level, and so much more. Without it, you have to struggle to find the right resources. 

### They don't have good labels in issues
Putting labels is useful to categorize issues to maintainers, but also beneficial to potential contributors as they can find what they are interested in with ease. It will be difficult to find what to touch if they don't have any tags.

### They don't communicate 
I had an experience I asked to be involved and didn't receive any message for a month. If they are not willing to communicate, it's a good indication they are probably not going to answer your question while you are contributing... There are more supportive ones 

### They are too competitive 
You may notice from issues that people are fighting for issues to be assigned to themselves. This may show that the project is not having enough issues for contributors. Or this may show that contributors are too competitive. 

Other people may have more criteria, yet these were enough for me to narrow down what I want to participate. 

## What is next
Participating in open source is not easy. You have to spend your time and energy, so it's not for everyone. Still, if you see more benefits and decide to try it, use the tactics I suggested finding the right one for you :) 
Start your journey today!

For more useful content, follow me @bitethecode or on [Github](github.com/bitethecode or dev.to/bitethecode)!