For anyone early in their career, contributing to open-source software may seem quite daunting. Maybe you have never worked on a project with other developers, or maybe you don't think you have the skills to meaningfully contribute.
If you’ve never contributed to open source before, take some advice from U.S. President John F. Kennedy, who once said, “Ask not what your country can do for you - ask what you can do for your country.”
The most common question when someone recommend open source as a launching pad for budding developers is “Where do I start?".
The answer: anywhere!
There’s a plethora of open source software out there, and not everybody needs to have an encyclopaedic knowledge of the codebase to contribute. You can contribute small things like fixing dead links in the README to resolving trivial compilation warnings to simply tweaking an issue template.
Open source isn’t an exclusive club; it’s made by people just like you. “Open source” is just a fancy term for treating the world’s problems as fixable.
- Even as a beginner, you can make a meaningful contribution to open-source software!
- There are more ways to contribute than just code.
- Thoroughly documented projects with clearly labeled issues and a Code of Conduct are good signs of a project that is welcoming for beginners.
- When contributing, read documentation thoroughly to understand expectations for code contributions, PRs, etc.
- You are great simply by trying!
Remember that there are more ways to contribute than just code!
A common misconception about open-source software is that in order to contribute, you need to know how to write code. This is NOT true. Open-source projects involve a myriad of tasks, including (but not limited to) issue-tracking and labeling, UX design, and documentation- which often gets overlooked, according to this study.
If you don’t feel comfortable contributing by writing code, you can look into some of these other ways to help with the project instead!
Thanks to the adoption of specs like all-contributors, OSS is more friendly and welcoming than ever. Contribute literally anything to a project you use and scale up from there.
Do you like planning events?
- Organize workshops or meetups about the project
- Organize the project’s conference (if they have one)
- Help community members find the right conferences and submit proposals for speaking
Do you like to design?
- Restructure layouts to improve the project’s usability
- Conduct user research to reorganize and refine the project’s navigation or menus, like Drupal suggests
- Put together a style guide to help the project have a consistent visual design
- Create art for t-shirts or a new logo, like hapi.js’s contributors did
Do you like to write?
- Write and improve the project’s documentation
- Curate a folder of examples showing how the project is used
- Start a newsletter for the project, or curate highlights from the mailing list
- Write tutorials for the project, like PyPA’s contributors did
- Write a translation for the project’s documentation
Remember: You will make mistakes in the process. Don’t give up! There’s always a project looking for any kind of help it can get. Start your search at home – See what apps and desktop software you use that’s open source, and if that’s something you’d like to give back to or even fix something in, even if it’s driven by the need to enhance your experience than your goodwill. Linus Torvalds, the creator of Linux famously said this:
I do not see open source as some big goody-goody “let’s all sing kumbaya around the campfire and make the world a better place”. No, open source only really works if everybody is contributing for their own selfish reasons.
Conclusion: Contributing anything is contributing!