As a developer, you probably rely on open source every day. Open source code is incredibly beneficial for building and improving products, whether personal or professional. But have you considered going a step further and contributing to open source projects as well? Taking this approach can improve your skills and make a positive impact on the software development community at large.
Yet, taking the leap can seem difficult. Where do you start? How do you fit into the communities and forums that surround open source projects? How do you overcome a fear of failure? While these might seem like big hurdles, they can be overcome once you understand how open source works.
Why contribute to open source?
Open source, by definition, is publicly-available source code that can be viewed, modified, and distributed under specific licensing requirements. The usable nature of open source code has organically created a community of developers who build new projects and improve upon existing ones to benefit the entire development community..
What started out as readily-available source code has turned into a space for conversation, innovation, and contribution. Let’s talk about the major reasons why you might choose to contribute to — instead of simply using — open source projects.
To contribute to the software you rely on
Do you have a few go-to open source components? Because you know them so well, you are more likely to find bugs and errors within them. Many developers choose to contribute to their frequently-used projects simply because they know them well and want to fix the mistakes they find.
To join a larger community
By making contributions to a project, you join a larger community of users and contributors. You can find opportunities to teach others, meet people with common interests, and learn from more experienced developers through these connections. They could also become excellent resources for job opportunities and career growth.
Improve your skills and empower yourself
If you want to sharpen your skills in a particular area, contributing to open source is a great way to start. You can select projects based on specific skill sets you want to develop and lean on the community to help you improve. The learning and collaboration process will also force you to get better at creating documentation and explaining your work to others, making you a better team player.
As an additional bonus, you may experience a boost in confidence. It’s empowering to contribute even a small change to a project that has positive benefits for the next person who uses it.
Open source projects for beginners
As a beginner to open source development, you might be facing imposter syndrome or fear of messing up someone else’s project (a valid fear). Here are a couple of suggestions to help you overcome these setbacks.
Be strategic when choosing your projects
As a beginner, you do not want to choose an overly-complex or challenging project. Start easy, and increase the difficulty from there.
One way to do this is to pick a project with a familiar ecosystem. Find one that utilizes tech you’re familiar with and is well-maintained. Signs of good maintenance include a clean read me, evidence of fully-resolved issues on the repo, and regular code pushes.
To get the most out of your experience, find an open source project where you know you can make several contributions and ultimately build an ongoing relationship with the team.
Respect the rules
The whole point of open source is to be collaborative. There are rules to ensure that no one developer sabotages a project. While the rules differ from project to project, they might include parameters for writing change documentation with a specified level of detail, or a step-by-step process for submitting new changes on a preferred platform or forum (i.e. GitHub).
Of course, unwritten rules generally understood by those in the community won’t be documented. Here’s a snapshot of a few of them you’ll want to understand from the get-go:
- When you start working on a project, take time to fully understand where you can contribute and where you can’t.
- Ask before you grab an issue.
- After you do decide to make a change, be available for timely follow-up.
- Be ready to accept reviews, comments, and event pushbacks on your PRs from the core team that manages the project.
Most importantly, learn from your mistakes. Many developers shy away from making changes simply because they are afraid of failing and getting called out by others. But, learning through mistakes is one of the greatest benefits of contributing to open source code. It gives you the chance to practice, grow in your skills, and continuously learn how to ask for help.
Types of Contributions
There are several ways that a developer can contribute to an open source project, and not all of them have to do with making changes to the code itself. As you look through project libraries to find one that makes sense with your skill set and growth objectives, also consider the following types of contributions you can make to the community at large.
Providing user feedback
If you use a project frequently, provide honest feedback. Usually, open source communities are built around some type of forum or server. Check out the project’s Reddit threads, Discord channel, GitHub discussions, etc. From there, you can join in conversations and provide feedback that the core team and other contributors could use to improve the project.
Writing code
As we’ve covered throughout this blog, one of the most significant and straightforward ways to contribute to a project is to fix or create code that will make it run better. Look for issues that have been flagged or emphasized by the community, and start there. Be sure to adhere to any guidelines set by the managers of the project.
Notifying the project’s core team about any bugs
Another simple, but impactful way to help the community is to directly notify the project’s core team about any bugs you find. This enables them to step in and make changes that will improve the software for everyone.
Suggesting documentation edits
Keeping open source documentation up to date is a daunting task. Updates must be completed regularly and consistently with a keen eye for new information, errors, and typos. In the open source community, it becomes even more challenging because everyone is contributing on a voluntary basis.
Updating documentation is an important task, however, because updates could include information that affects the functionality and security of the code. The core team of an open source project, along with the users, appreciate documentation edits or updates from members of the community to ensure that projects can be used freely and safely.
Helping new users
If you’re part of a forum or server for a project and you have experience with the code, take the time to answer new users’ questions or concerns. You can share helpful information such as workarounds to specific problems or you can provide your take on various notable topics like DevOps, SecOps, and security by design.
Create your own content about the project
If you run a YouTube channel, blog, or other social media account, you can positively contribute to the open source community by creating text or video-based content on how to use the project.
Get started today
Contributing to an open source project doesn’t take exceptional skills or years of experience. You can start right where you are with your current career, skill set, and experience level.
Joining an open source community gives you an opportunity to improve yourself and build your experience, in addition to joining a large, worldwide discussion on creating the best possible code — and ultimately, making technology better for everyone.
Our team at Snyk is proud to be part of this ongoing discussion with our tools for improving the security and quality of open source components.
Frequently asked questions (FAQs)
How to contribute to open source GitHub?
GitHub is one of the most common places to find open source components. To contribute to projects on this site, you’ll need to copy the part of the project that you want to change within the GitHub site (a process known as forking), clone it to your own computer, make and push changes, then make a pull request so the owner of the project can see your work.
Where to find open source projects?
Open source code is readily available to use and contribute to, across the internet. Some great places to look include GitHub, Gitlab, and SourceForge. In addition, some sites, such as Up For Grabs, Ovio, and First Contributions, offer a tailored collection of projects for beginners to use.
Secure open source software for free
Create a Snyk account today to find and fix open source vulnerabilities right from your workflow.