Contributing to open source projects is a phenomenal way to improve your skills as a software developer, gain experience working on real-world projects and give back to the community! 🤠
It is also a great way to get a job - but you probably knew that already 😌🍾
However, when you are a newbie at it, it is daunting to know where to start...
In this blog post, we'll share 5 tips to help you get started with contributing to open source projects as a beginner.
1. Start small → If this is your first time, contribute to the project’s docs
2. Find projects where your help is most needed → use quine.sh
3. You are a guest so follow the guidelines
4. Double down on testing → ”All code is guilty, until proven innocent”
5. Don’t be a sissy.. ask for help 🤟
You are not Steve Wozniak (yet) so push (no pun intended 🤓) those unrealistic expectations aside and start with something easy.
You know what’s the easiest way to start: contributing to a project’s documentation!
This will help you dip your toes into it in a very risk free manner!
You will also get all the exposure you need to the things that still makes no sense to you like for instance the difference between forking and cloning
Here's a super easy guide on how to contribute in the next 10 min.
This gets pretty interesting here..
You need to look for projects that align with your interests and skills - that’s obvious. 🙄
But you also need to find projects that are willing to accept contributions and could use an extra pair of hands! 👯♀️
Now you can head over to Github on “Topics” and look for the topic you want.
This is one of the most popular options, but there are better alternatives!
For example, you can use a tool that scanned all of Github’s repositories and issues!
This enables you to get a project you can start contributing to and that tool is called quine.sh 😏
Quine.sh will recommend you the most good starter issues that align with your topic and language preferences 🎯
The UI is quite simple, after signing up simply pick your language 🗣️, your topic 🧳 and filter for “good starter issues” - that’s all you need to do to find a repo that suits your background and your needs!
Oh and in case you were wondering - it is completely free.
I know, likely not what you wanted to read yet, but every open source project has its own guidelines and expectations from contributors.
These are sometimes written in the README file on the repo 📑, but they can also be found in the CONTRIBUTING file of the repo (not every repo will have this).
Make sure you read and follow these guidelines closely to avoid wasting your own time and that of the project maintainers (btw in case you didn’t know maintainers are the person(s) who manage the repository).
Some common guidelines include:
- Coding standards
- Testing requirements
- Commit message conventions.
- How to request to be assigned to an open issue.
I think this one is pretty obvious so we will skim through it quickly: before submitting a pull request, make sure you've triple tested your changes.
You need to ensure they really work as intended and don't introduce any new issues.
This includes running any automated tests that the project provides, as well as testing your changes on various platforms and configurations.
🔥 Little tip: Document your test cases and send it to the maintainers. This is extremely useful and displays great testing standard from your end! Also, don’t hesitate to submit a comment to the issue to ask project-specific questions.
Contributing to open source projects can be scary as fudge, especially if you're new to the project or the technology stack.
But honestly put your ego aside and remind yourself EVERYONE was a beginner once!
If you get stuck or don't understand something, most open source projects have a welcoming and helpful community that are happy to assist new contributors 🤎…
Also, remember that you can find answers to most questions in StackOverflow, coding forums, and even by asking ChatGPT 🙈
But Github is a bit weird, like how do you even communicate? Is it just through pull requests?
Good question and short answer is NO.
You can communicate through pull requests but that’s not the only area!
The other main communication channels are:
🦠 Issues: Every project has an “Issues” section that is used to report bugs, request features, or discuss ideas related to the project. Contributors can create new issues, comment on existing issues, and provide feedback on proposed solutions.
💅 Chat Platforms: Quite common now, we do get quite a bit of repo teams working together on Slack, Discord, or Gitter for real-time discussions.
🗣️ Discussions: Repository owners and people with write access can enable GitHub Discussions for a community on their repositories. This provides a space for open-ended conversations such as proposing new ideas, asking questions or sharing thoughts on a particular aspect of the project.
💌 Email: In some cases, contributors may use email to communicate with the project maintainer. It is definitely less common lol but still sometimes used and reserved for more formal or sensitive discussions.
Contributing to open source projects as a beginner can be super challenging and the learning curve is steep at first. However, it will become a rewarding experience I promise you that ⭐️
So, remember to:
- start small
- follow the project's guidelines
- ask for help
- test your changes thoroughly
- and be patient
You'll be well on your way to making valuable contributions in open source projects!! 💻🌐🚀
PS: If you're looking for a platform to discover projects aligned with your interests, language preference, and do it, whilst not spending a penny, visit quine.sh . It's a great space to find free projects where you can contribute and make a difference!