I recently have been researching how to start contributing to open source projects and wanted to make a resource for the readers of Dev.to (which is actually an open source project itself)! Maybe you are a beginner like me and have thought about getting involved in open source but don’t know where to start.
The good news is whether you’re just beginning to code or have years of experience, there is a place for you in the open source community. This post is a comprehensive summary of the resources I have found on this topic so you can learn more about it and see if you want to be a part of it.
Open-source software (OSS) is any computer software that's distributed with its source code available for modification. That means it usually includes a license for programmers to change the software in any way they choose: They can fix bugs, improve functions, or adapt the software to suit their own needs.
Google believes that open source is good for everyone. By being open and freely available, it enables and encourages collaboration and the development of technology, solving real world problems.
With so many companies joining the open source community today, there is no better time than now to get involved. Becoming part of a project can benefit you in so many ways, including:
- Collaborating with and meeting other programmers
- Gaining hands-on experience working on a real life project
- Showing off your hard work since all your open source contributions are made public
- Standing out from the crowd when applying to jobs – it’s easier to find work when employers can actually see your work!
- Improving your existing skills and learning new ones
- Receiving free feedback and reviews on your code!
There are many misconceptions out there that the only way you can make contributions to open source projects is by coding. But you can contribute in so many other ways, from organizing meetups about the project to editing documentation - if you’re someone like me who has a knack for finding typos/grammatical errors, then there are many projects out there that need your help! Casual contributions like these are actually much more common than you think and they are a perfect way for you to start building your confidence and experience with open source.
I am 99.9% sure that if you’re reading this, you have a GitHub account! And that is great because that’s all you need to get started with open source; in fact, GitHub has the largest open source community in the world.
GitHub has so many valuable resources for getting started including these guides, which will provide you with everything you need to know.
This link includes projects that are marked first-timers-only and you can search by language. I checked out quite a few of these projects and they all seemed very active.
You can use this site to find projects based on your interests.
Once you find a project that’s of interest to you, observe what’s going on a little bit before you jump into it. Make sure the project is actively maintained and there has been activity on it within the last 3 months. Start by completing tasks that no one else wants to do like fixing typos or small bugs in the code. It’s important to start small with grunt tasks that will get your foot in the door. This will help you learn the process and assure your fellow collaborators that you are someone they can count on to finish something. Once you feel good about doing these tasks, you will know when it’s time to take it to the next level!
Try this out for your first contribution!
- Before contributing anything, make sure to read the contributor/README files. These will include all the steps you need to take to set up your development environment and instructions/coding standards. Most, if not all projects will have these files and if they don’t, they may not be worth your time.
- Read the guidelines in full before asking questions! Make sure to do your research and Google anything you’re unsure of to avoid taking up unnecessary time from the maintainers and fellow contributors.
- All open source projects are required to have an open source license, which will most likely be in a text file. No license = not open source.
- If you don’t receive a response right away to the issue you want to fix, be patient. The maintainer of the project could be inundated with emails, especially if they are managing multiple projects at once.
- When creating your pull request after making your changes, always check off the “Allow edits from maintainers” box so the maintainer will be able to edit your code if necessary.
I hope that after reading this you have a better understanding of open source in general and feel inspired to get involved. I’m so excited to start contributing and I plan on sharing some more tips once I have a few projects under my belt 😊 And if you have any tips that I have missed, please feel free to share!
This video by Kent C. Dodds provided me with so much information for this post and he walks you through contributing to a project from start to finish.
Code Triage - Over 4,000 projects to choose from