DEV Community

Cover image for How to Contribute to Open Source Software

How to Contribute to Open Source Software

Matt Eland on January 26, 2020

If you’re anything like me, you want to contribute to open source software but are too intimidated to send your first pull request to another team’...
Collapse
 
coderallan profile image
Allan Simonsen

Great post Matt!

On this website: up-for-grabs.net/ You can find GitHub repositories tagged:

  • Up-For-Graps
  • Good-First-Issue
  • Help-Wanted
  • Easy-Fix

and more...

So a good place to start if you are looking for a project to contribute to.

Collapse
 
aviskarkc10 profile image
Aviskar KC

I think one of the things that doesn't get mentioned enough is, if you want to start contributing to open source but don't know how or are intimidated by it, you can start contributing to your friends' side projects. Be it cleaning up readme, fixing existing issues and so on. If your friend or a co-worker has a open source project, reach out to them, collaborate and it will give you a good starting point.

Collapse
 
gabbersepp profile image
Josef Biehler

I started my open source work last year during the hacktoberfest and it was the best thing I could have done the last year. This event is very good because you have a motivation to read through the contribution guidelines. In my opinion it is difficult to start if before no contribution was made in any repository. But after one or two contributions you know how the process works and you can apply your knowledge do other repositories, too.

Collapse
 
rhamedy profile image
Rafiullah Hamedy

Love this. This is a true end-to-end coverage of how to contribute to Open Source. Thank you for sharing Matt.

Last year, I also wrote an article on Open Source Contribution and those interested in pursuing OS contribution might find it useful when combined with the contents of this article.

Collapse
 
jinglescode profile image
Jingles (Hong Jing)

Thanks for writing this article. it is indeed daunting to start, especially for me, always thinking that I am not good enough to contribute, and others can do a better job. Never knew there are tags like good first issue

Collapse
 
kamranayub profile image
Kamran Ayub

What a great article, Matt. In case anyone wants a step-by-step course with a deep dive into the workflows and how to find / work on issues for a project, I just released a course on this topic!

pluralsight.com/courses/contributi...

If you work at a bigger company (or some small companies too), you may have a Pluralsight subscription.

In the course I cover the same topics and it's geared towards those who feel intimidated or unsure where to begin when looking at open source projects.

Good luck!

Collapse
 
integerman profile image
Matt Eland

I love Pluralsight. Congrats on the course!

Collapse
 
jokingzhang profile image
zhangboxuan

Hey man! This article is awesome, I am currently learning how to Contribute to Open Source Software, Can I translate your article, learn, and then put it on the China Programming Forum website? And I'll keep original address in article.

Collapse
 
integerman profile image
Matt Eland

Yes, provided you link to killalldefects.com/2020/01/26/how-... which was the original post on my web site.

Collapse
 
jokingzhang profile image
zhangboxuan

Okay, no problem.

Collapse
 
gklijs profile image
Gerard Klijs

Nice post, and some good recommendations for contributing to 'big' projects.
My fist contributions were to small projects. Most times I found and fixed a bug, or added a feature in my fork. It's a good idea in such cases to first create an issue, to get feedback how the maintainer think about it.

Collapse
 
mssadewa profile image
Muhammad Sadam Sadewa

I really want to contribute in open source project. But, Lack of knowledge make me down.
The more I learn software development, The more I feels lack of knowledge :(

Collapse
 
integerman profile image
Matt Eland

You'll always lack knowledge. Tech changes quickly and things are broad and deep. Look at it as an opportunity to grow and not as a sign something is wrong with you.

Collapse
 
mssadewa profile image
Muhammad Sadam Sadewa

Hi Matt,
Sounds I'm in the right path and just need keep walking and build something amazing!🌁
Thank you for your advice 🙋

Collapse
 
exts profile image
Lamonte

I think contributing is the easy part, it's finding something that you want to contribute to that's difficult. I think I figured out a solution to that which usually comes down to "what packages am I using in all my projects?" and right there in your dependencies there's always a library or the overarching framework you're using that could use some help with fixing bugs. So that's a tip for someone that's looking for things to contribute to that are within your domain and not just a random package/framework that you have no idea about or ever used.

Collapse
 
nathell profile image
Daniel Janus

Good read, thanks for sharing!

I’ve written a related post that reiterates some of your points:

dev.to/workshub/anyone-can-contrib...

Collapse
 
iammpp94 profile image
idevthings101@gmail.com

That's awesome, I will try to contribute to OS in 2020. Thats the least I can do.

Collapse
 
niro profile image
Arnau

What is that git GUI? Looks so good!

Collapse
 
integerman profile image
Matt Eland

This is GitKraken from Axosoft. Here's an invite to try it: gitkraken.com/invite/4tRysUoN

It has a free and pro version. I use pro because of some of the repos I contribute to, but it should work fine for you at the free level for many cases.

Collapse
 
amin007 profile image
amin007

wow amazing!!!

I want to help open source projects but I'm not sure what level of programming skills I have

Collapse
 
integerman profile image
Matt Eland

My second pull request was literally making documentation changes they had discussed in comments. No technical knowledge required. There are ways of doing things, and you don't need the greatest technical skills. Find something you're okay enough at and start digging in to learn how to do a little more.

Either that or forget the pull request route - pick a technology you want to learn and build something small in it, then tinker with it.

Collapse
 
figspville profile image
Salli Figler

What a well written article Matt. It is one I will use as a reference as I continue to learn. Thanks for putting the effort in to help others.

Collapse
 
integerman profile image
Matt Eland

Thanks! That was part of my intent when writing the article - to highlight the steps the Docs team to make it easy for me so others could emulate some of that as it made sense.

Collapse
 
emadsaber profile image
emadsaber

Thanks Matt, I wish you a great success :)