Newbie's Guide to Starting with Open Source Contributions
Entering the world of open source can be both exciting and a bit scary. As a newcomer, I often wondered how to find the right project, what to do if I didn't know how to code, or what to do if something went wrong. Don’t worry! There are many ways to contribute to open source projects, and with a few tips, you can really enjoy the experience.
What It Means to Contribute
Contributing to open source isn't just about writing code. There are many important parts of projects that often get overlooked. By helping out with these areas, you can really make a difference and build great connections within the community.
You Don’t Have to Contribute Code
A common misconception is that contributing to open source means writing code. However, there are many other ways to contribute that are equally important and impactful:
Event Planning
Organize workshops or meetups.
Plan the project’s conference.
Assist community members in finding the right conferences and submitting speaking proposals.
Design
Enhance project usability by restructuring layouts.
Conduct user research to improve navigation or menus.
Develop a style guide for visual consistency.
Design artwork for t-shirts or logos.
Writing
Improve project documentation.
Curate examples of how the project is used.
Start a newsletter or curate highlights for a mailing list.
Write tutorials or translate documentation.
Organizing
Link duplicate issues and suggest new labels.
Review open issues and recommend closing outdated ones.
Ask clarifying questions on open issues to move discussions forward.
For the Coders
If you enjoy coding, there are many ways to contribute:
Address open issues.
Help develop new features.
Automate project setup.
Improve tooling and testing.
Helping People
If your strength is in assisting others, consider these contributions:
Answer questions on forums like Stack Overflow or Reddit.
Moderate discussion boards or conversation channels.
Mentoring and Code Review
Review code submissions.
Write tutorials.
Mentor new contributors.
Beyond Software Projects
OOpen source isn't just about software. There are books, recipes, lists, and even fun facts about puffins that are created as open source projects. Contributing to these non-software projects can be a fantastic way to get started and build your confidence.
Opening an Issue
Opening an issue is an excellent way to contribute. You can do this to:
Report errors you cannot solve.
Discuss high-level topics or ideas.
Propose new features or project ideas.
Tips for Opening Issues
Comment on an issue to let others know you are working on it.
Confirm if an old issue is still relevant before starting work.
Document solutions and close issues once resolved.
Opening a Pull Request
Submit a pull request for:
Small fixes like typos or broken links.
Contributions discussed or requested in an issue.
Open pull requests early to get feedback and track progress. Here’s a basic guide to submitting a pull request on GitHub:
Fork the repository and clone it locally.
Create a branch for your edits.
Reference relevant issues or documentation in your PR.
Include screenshots if your changes affect HTML/CSS.
Test your changes to ensure they do not break the project.
Contribute in the project’s style to maintain consistency.
For beginners, resources like Make a Pull Request and First Contributions can help you practice.
Open Source Programs
Participating in open source programs can help you upskill and get rewarded for your contributions. Some notable programs include:
Beginner-Friendly Repositories
Here are some beginner-friendly repositories to get you started:
Learn Git and GitHub
Understanding Git and GitHub is essential for open source contribution. Here are some helpful resources:
Conclusion
Contributing to open source is a fantastic way to grow your skills, meet like-minded people, and give back to the community. Whether you code, write, design, or organize, there's a spot for you in open source. Don't hesitate—jump in and start contributing!
Subscribe to my newsletter
Read articles from Metta Surendhar directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by
Metta Surendhar
Metta Surendhar
Platform Engineer specializing in Observability and Gen AI, passionate about open-source contributions and real-world solutions. Currently pursuing an MSc in Integrated IT at CEG (2024-26), SAASCEG'24, CTF'24. I'm exploring LLMs, Haystack, Retrieval-Augmented Generation (RAG), and Gen AI, focusing on building conversational AI bots. Diving into new tools to enhance chatbot performance and interaction quality!