How to start contributing to open source projects
Tags: hacktoberfest, opensource
Published: 2020-10-19 09:12:42

This post is about how I started contributing to some open source projects. I wanted to start doing some work on it for quite some time now, but there was always a reason not to do it. Be it the "I do not have enough time", or "I do not have enough knowledge of the topic", or any other lame excuse.

Below are some of the things I went through. It is by no means a guarantee that it will work for everyone.

## Starting with a group of people (slows down)

Because of all the excuses I thought it would help to get started in a more formal way and make it part of my daily work. Since I work with a lot of developers I figured it would make it more fun to form a group of likeminded people and some time from our employer to work on open source projects. Seeing the list of benefits when people contribute makes it easy to sell to the employer (just Google it).

What surprised me, was that the enthusiasm from other developers was... lacking. First lesson learned here!

A downside to try and do it with a group, is that there are a lot of opinions on the projects that we need to contribute to. So this causes some overhead. And still someone has to take initiative. And it is again very easy to say "I am too busy right now to do this".

## Flying solo

Because the lack of traction the 'work on it with a team' had, I decided to try it again on my own. Get rid of the overhead and just experience it on my own.

Now only the question was where to start...

## Welcome Hacktoberfest!

Since there still was no 'pressure' to do anything... nothing happened. Then at one day there was an email in my inbox about Hacktoberfest.

What I totally loved, was the **limited time**. So there was a clear end to it. There were some **rewards** (either a shirt, or plant a tree). It challenged me in a certain way that I found tempting. But before committing myself to it, I wanted to know more and started looking around.

## Starting big (is not always the best idea)

When looking at open source projects you quickly look at the ones that are already well known and used a lot by a lot of developers/teams. This might lead to the idea that you will never be able to contribute anything. A quick glance at one of the projects might reveal that the codebase is enormous and there are a lot of open issues... and pull requests... and contributors.

Another downside to those big projects is, that the low hanging fruit (or easier issues) are already picked up. Which leaves the hard ones where some more in-depth knowledge is needed. If you already contributed to bigger projects, this would not be a problem. But if you are just starting to contribute to open source projects, then this might not be a great start.

## Starting small (and feel what it brings you)

Another, and less overwhelming, way is to start with some really small projects. With these projects there are probably some easier tasks to be picked up. Probably the maintainer has a lot of ideas on where the project should go to and how to get there but has too little time to do it all by himself/herself. This would then be the perfect opportunity to help out.

It does not feel very challenging at first when you pick up an easy task, but it is a great way to find out how to get enough information on what to do, create a pull request and eventually get it merged back into the project.

The most important thing here is to experience the feeling you get when you finish something and get appreciation from the maintainer.

## Let's do it!

So I joined (on my own) and started small. Quickly I found out that the idea and feeling of contributing was giving me energy. It also allowed me to pick up something that I was unfamiliar with and to just start doing it. You will learn along the way.

If I look back a the amount of time I have spent on creating pull requests, it is less than I initially thought it would take.

## Conclusion

If I need to come to a conclusion, then it would probably be that starting alone and starting small is the way to go. It brings a certain feeling that is addictive. It is also a great way to learn something new. Be it a new project, new people or even a new language. 

Another, longer term, benefit is that you might also bring in some new ideas on the project you are contributing to. You can then help form the project.

If you are still in doubt on whether or not you can help... just try it!