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.
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.
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!
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
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.
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.