DEV Community

Cover image for Crushing Your First Open Source Contribution: 5 Tips for Beginners 🚀
Bap for Quine

Posted on • Updated on

Crushing Your First Open Source Contribution: 5 Tips for Beginners 🚀

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.

tl;dr

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 🤟

1.  Start small hombre 🤠

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 🫠

We found this super concise video made by Ali Solanki where he explains quite well to beginners how to contribute to your first repo on Github!

Check it out below and earn your “open-source coder” title in the next 10 minutes 🎉

2. Now where do I find good projects? 👀

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.

Image description

3. Guidelines, Guidelines and Guidelines 📄

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:

  1. Coding standards
  2. Testing requirements
  3. Commit message conventions.
  4. How to request to be assigned to an open issue.

4. ”All code is guilty, until proven innocent” 🐞

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.

5. Don’t be a sissy.. ask for help 🤟

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:

  1. 🦠 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.

  2. 💅 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.

  3. 🗣️ 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.

  4. 💌 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.

Conclusion

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!

Top comments (10)

Collapse
 
techtitans0101 profile image
TechTitans0101

Thanks @fernandezbaptiste for the tips.

As a beginner, i did come across kandi from Open Weaver. It helps developers build custom functions, use cases through code snippet and open source library reuse. Their community activities enables learning and collaboration in building applications through open source reuse. Happy coding!

Collapse
 
eylonmiz profile image
eylonmiz

Nice article, do you also have a tip how to get contributions? I'm working on an open-source projects and I'm looking to make it easer to contribute

Collapse
 
fernandezbaptiste profile image
Bap • Edited

Hey man!! Thanks for the question - yes getting the right contributors is a challenge on its own as well. I just added it to the list of content to deep dive on. Be on the lookout for the next couple of posts 😉

Collapse
 
mightyspaceman profile image
MightySpaceman

but first I must git gud

Collapse
 
fernandezbaptiste profile image
Bap

hahahah really good one 😹😹 From the sound of it you are already pretty gud

Collapse
 
elnobre23 profile image
Breno Cuzzuol

I'm pretty new to this business, and I really appreciate your article. Do you have any tips on how to create good documentation? How should I start it? Where can I find a model to follow?

Collapse
 
fernandezbaptiste profile image
Bap

Hey Brenooo!!! Man its nice to hear you like the article and of course I got some tips for you! I will add it to the list of things to write about and will come back to you on this 👯‍♀️

Collapse
 
elnobre23 profile image
Breno Cuzzuol

Wow! That's awesome, I can't wait to read it!

Collapse
 
fernandezbaptiste profile image
Bap

If there is a subject you want to hear about - whether it is to do with open source related or topics connected to it 👯‍♀️, let us know about it in the comment section and we will be sure to try to write about it for you 🫶

Collapse
 
vegas73509 profile image
FuadVegas

I got

The Crusaders - Rhapsody & Blues
Peter Frampton - Frampton Comes Alive
The Yellowjackets - Samurai Samba
Huey Lewis & the News - Fore!
Chuck Mangione - Feels So Good
Gamma - Gamma 1
Spyro Gyra - Free time
And a few more that I can't think of lol got a TON of Jazz and Jazz Fusion.