Getting started with an open source project can seem daunting.
However, contributing to an existing open source project is a great first step. The open source community depends on interest in and contributions to existing projects. Also, contributing to an existing project or creating your own project is a great way to build a presence in the community.
What does it mean for a project to be open source?
Open source means that anyone can view the code used to create a project.
For a project to be considered open source, it must generally be freely modifiable and distributable. If you are not sure if a project is open source, you can check the license for the project. The license defines just how open the project is.
How can you contribute to open source projects?
Step 1. Create an account with a Git-hosting service
There are many Git-hosting services to choose from. Git is an open source version control system widely used for software development. Familiarizing yourself with Git is helpful to get the most out of any Git-hosting service.
A popular Git-hosting service for open source project contributions is GitHub.
Through GitHub, you can access pertinent information and guidelines specific to a project. Once you create your account, you can update your profile and start to explore projects of interest.
Step 2. Find a project that interests you
Finding projects that you are enthusiastic or passionate about is a great way to join the open source community. By looking at the number of stars and contributors a project has, you can see how involved the community is with a project.
Remember that every project that has lots of stars at one point had only a few stars. If you find a project you are passionate about that is newer and has a lower star count, getting involved early can be an excellent way to establish yourself as a leader once the project grows.
Make sure you read through the contributor-focused resources. Projects usually provide contributor guidelines, developer documentation, codes of conduct, Slack channels for collaboration, etc.
Step 3. Explore tasks related to the project
Every project on Github has something called issues, but the specific term varies by platform. Issues are tasks that contributors can work on. Getting familiar issues for a project is a great way to identify a place to start contributing.
Step 4. Reach out to project contributors and find a mentor
It is important to connect with other people in the community. You can share ideas with other contributors, learn more about current goals for a project, and build a presence and name in the wider open source community.
By far the best way to get other people interested in working with you is to make meaningful contributions to important issues on a project.
Do not be afraid to ask for advice or start a conversation with other project participants. Keep in mind that contributors are oftentimes volunteers, so their time and availability may be limited.
Step 5. Start contributing
To start contributing, fork the repository — this creates a copy of a project for you to work on.
You can contribute anything from code, ideas, documentation, social media or marketing expertise, etc.
To do so, create a new ‘branch‘ in your forked repository off the master branch with a name that characterizes your contribution. This way your contribution stands out clearly and is easy to compare to the master branch.
Next, you can create/open a pull request. A pull request allows you to update other contributors on proposed ideas or changes and review and discuss them as needed before they are integrated.
You have to specify the “base branch” your contribution is for, the “head fork” you copied and made changes to, and the specific branch you worked on in the fork, known as the “compare branch”.
It is important to note that you do not have to know how to code to contribute to a project!
You can contribute to existing documentation, help with translations into other languages, graphic design, answer user questions, support promotion efforts through outreach, conference talks or presentations, social media marketing, make monetary donations, etc.