DEV Community

Monica Mateiu
Monica Mateiu

Posted on

How to start contributing to open source as a junior

When you're a junior, keeping up with everything you need to learn on the job can be intimidating enough. So how do you get started with open source, when you've only just started your software developer career?

Well... it took me a year and a half, but I finally did it. I started with Hacktoberfest, and found a great community that I can learn from, projects that make a difference, and a rewarding way to spend my free time.

I did it and so can you.

Get over those first hurdles

Unless you're lucky enough to already know of a project that's perfect for you (in which case, why are you even reading this? go contribute!), you will almost definitely spend a lot of time on repos you'll never even begin to contribute to.

Not all projects have a great set-up and good documentation. I've wasted hours trying to get projects up and running locally, eager to dive in and start fixing one of their open issues, only to hit a wall.

Sometimes there's a piece missing in the setup instructions. Or the project uses some fancy tech that doesn't play well with your setup. Or the maintainer assumes that everyone's an expert and knows how to debug all the incompatibility issues they'll run into.

Prepare yourself for this and don't give up. And if you really want to contribute to a project but you've come across these types of issues, let the maintainers know! You might be able to help improve their docs. Once you find the right project for you, it'll all be worth it.

But what is "the right project"?

Probably a repo that meets some, if not all of the following criteria:

  • its maintainers are active and engage with contributors
  • the documentation is decent (contribution guidelines, setup instructions, and test credentials are provided if needed) or open for improvement
  • the open issues don't look like complete gibberish to you; they offer enough detail about what needs to be done, and you may have even already found one that you could pick up
  • you're familiar with the tech stack or able to pick it up quickly
  • you find it interesting!

Overcome your fears

Ignore those voices in your head telling you that you can't do this. Here are my three biggest fears that were stopping me from contributing. They all turned out to be unfounded.

  • "I don't have enough experience to make a valuable contribution"

Bullshit! There are plenty of projects out there that need both big and small tasks to be done. If you're struggling to find them, the first step is to look for those beginner-friendly or good first issue tags.

  • "I can't just dive into an unknown codebase!"

Of course you can! You've already done it at work. And if you found a good project, there will be someone there to help when you need it.

  • "People will hate my code and judge me"

Unless you've somehow come across a horribly managed mess of a project, this is definitely not true. If your code needs more work (as code often does), you will get valuable feedback on how to make it better and learn something in the process.

Get contributing

Alright, you've done the prep work, you got your pep talk, and you're finally ready to contribute. Here are some final tips:

  • please please read the contribution guidelines. It'll make your life easier and it'll get your PR merged quicker.
  • maintainers are super busy. Respect that. Be patient while waiting for feedback on your PR.
  • try to work on open issues first. Respect the project's priorities.
  • don't be afraid to ask questions!

Hacktoberfest is a great way to get started, but open source projects need help all year round. If you've been thinking about it for a while but haven't gotten around to it yet, find a project that piques your interest and start contributing today (or, you know, soon). As a junior developer you're guaranteed to get a lot out of it.

Top comments (13)

Collapse
 
jpruiz114 profile image
Jean Paul Ruiz

Excellent article indeed. I have an ETL open source project I have been looking to grow and would be more than happy to get some help and mentor junior developers looking to learn about ETL, PHP, R, and other technologies: github.com/TheCocoTeam/source-watc...

Collapse
 
metamoni profile image
Monica Mateiu

That looks great, Jean Paul! And thanks for offering help and mentorship to junior devs out there, it means a lot. I know I would hate my job today if it wasn't for the amazing senior developers who've supported me throughout my journey.

Collapse
 
clarejoyce profile image
Ngoran Clare-Joyce

Thanks for sharing.

The Overcome the fears section is helpful.

Collapse
 
thomascherickal profile image
Thomas Cherickal

Wonderful article. Inspiring. I am now sure that I can contribute to open source, thanks to your testimony!

Collapse
 
dattran1999 profile image
dattran1999

How do you find smaller projects? Because all I’m exposed to is the big projects (eg React, Vscode, etc.), and they are so complicated.

Collapse
 
metamoni profile image
Monica Mateiu

Hmm yes, that was a tricky one to figure out. I just did a GitHub search for my favourite language, Ruby, and then spent lots and lots of time looking at the results, their readme files, their issues etc. But I've recently found out that you can just search for a tag, say 'beginner-friendly', then filter by 'Topics' and language, and voila: github.com/search?l=JavaScript&q=b... - plenty of repos to look through. Good luck!

Collapse
 
steelwolf180 profile image
Max Ong Zong Bao

Love it this is a great article on overcoming one's barrier to contribute to open source.

Collapse
 
094459 profile image
Ricardo Sueiras

Nice!

Collapse
 
beaver_kendall profile image
Kendall Beaver

This was motivation enough for me to continue learning coding, something I've only dived into recently. Thanks for the article!

Collapse
 
marciokuroki profile image
marciokuroki

Thanks for the article.
I always feel fear to get into a opensource project for the reasons you've wrote about...
Now I'm more confident to try harder.

Collapse
 
maher727 profile image
Maher727

mmaherr727@gmail.com
Maher MOHAMED Hswei

Collapse
 
reach009 profile image
Reach Allen

Thank you for sharing

Collapse
 
nur_uddin_shohan profile image
NurUddinShohan

This post helped me alot!
Thank you so much!

Some comments have been hidden by the post's author - find out more