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.
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.
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.
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 (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.
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
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.
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.
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
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.
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!