Open Up and Contribute to Open Source
Open Up and Contribute to Open Source
It’s time to overcome your fears and make your first open source contribution.
Join the DZone community and get the full member experience.Join For Free
The benefits of contributing to open source are no secret. You can improve your coding skills, help improve the products you use, get involved with a community, solve real problems, build your portfolio, and even get a job. With a list of benefits like that, everyone should be contributing to open source. Right?
What's Stopping You?
I've asked hundreds of developers this question. Some may use different words to describe it, but I can collect the reasons in a few (very) common buckets:
Yep, there's a name for it. The fear that you don't have anything meaningful to add or that your skills aren't up to par... that is imposter syndrome. In a nutshell, we can describe imposter syndrome as a debilitating fear that, by showing your work to the world, someone will find out that you don't really know how to write the perfect C++ code.
Imposter syndrome is a learned behavior. Think about how your performance is typically measured, beginning with the traditional education system. You took a test and submitted it to your teacher. Your teacher whipped out the red pen and started grading your work while you waited anxiously to see if you performed as expected on tasks that are highly objective in nature. There is only one right answer to 2 + 2, but that just isn't true in the world of open source.
Coding is as much art as science—sure, some things just won't work but you can rule those out in private. The key to overcoming imposter syndrome is recognizing that everyone started somewhere. If your coding skills are still under development, you can help with documentation. If your documentation skills aren't great, start by trying to replicate bugs and documenting your steps. There are hundreds of ways to help in open source that don't involve writing code. By doing these tasks, you serve a vital need in the community and you start to dig in to the code base. You'll be contributing code changes before you know it.
Where to Start?
We have all stared down the list of open-source projects and asked the same question: where am I needed? Here are a few tips:
Start with projects you already use. If you are already familiar with the project, you likely have ideas for new features or improvements to documentation that will help others.
The beauty of sites like Code Triage, Hacktoberfest, and 24 pull requests is that project maintainers must submit their projects to those sites. They WANT contributions and have typically invested time in writing documentation and organizing their repository to help new contributors get up to speed.
What Needs to be Done?
Finding a project is one thing, but knowing how you can be helpful is something else. This is what I do:
Take a look at the number of contributors and the last commit made on the project. If the project isn't actively maintained and there aren't multiple contributors, your efforts will likely be in vain.
Take a look at the README. It will usually tell you whether the project is looking for outside contributions and a little about the maintainer's priorities.
Read the CONTRIBUTING guide. A good contributing guide is a sign that the project maintainer values contributions from the community. You will find tips on building and testing the project, guidelines for getting your pull request accepted, preferred coding conventions, and more.
Dig through open pull requests. What work is already in progress? Take a look at the code and see if you can offer reviews. Clone the repository and try testing the changes locally.
Look through issues for tasks or bugs you can support. Most maintainers will use labels to organize the issues based on skills required, difficulty, and triage status.
The First Contribution Is Always the Hardest
If you look at the open source contributions of the most prolific contributors, you will find that the secret isn't contributing to a lot of different types of projects... but rather picking a specialty and sticking to projects within that specialty. The process of learning the project and the code base is a lot like starting a new job. Investing the up-front time to understand the code and the community is vital to making valuable contributions.
Be an Inspiration to Others
If you are already contributing to open source, what was your experience? How did you overcome imposter syndrome? How did you pick your first project? How do you find meaningful ways to contribute?
Be an inspiration to others by sharing your story in the comments. Better yet, send me a video! I would love to feature some inspirational stories in future posts as we build this wonderful world of open source, together!
Opinions expressed by DZone contributors are their own.