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)
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...
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.
Thanks for sharing.
The Overcome the fears section is helpful.
Wonderful article. Inspiring. I am now sure that I can contribute to open source, thanks to your testimony!
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.
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!
Love it this is a great article on overcoming one's barrier to contribute to open source.
Nice!
This was motivation enough for me to continue learning coding, something I've only dived into recently. Thanks for the article!
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.
mmaherr727@gmail.com
Maher MOHAMED Hswei
Thank you for sharing
Some comments have been hidden by the post's author - find out more