Getting started with Open Source - The beginner's guide

Getting started with Open Source - The beginner's guide

In this blog, I am going to provide guidance related to open source and how a beginner can get started contributing to it.

ยท

5 min read

Hey everyone, I am Hasnain Makada and I am currently working as a Developer Advocate at Napptive where I explore the platform deeply and I also love to educate the community regarding DevOps and Flutter.

This blog is going to be a bit different today because I've been posting blogs on DevOps and Flutter so far... so I thought that this time let's discuss open source because there are so many folks who don't know about open source and they don't know how to get started with it.

So before jumping on to the main thing let's discuss what is open source, shall we?

What is Open Source?

I get a lot of questions from folks around the community asking me the same question again and again "What is Open Source software and in general what is Open Source?". So the simple answer to your question is "any tool or software which is made publicly available to everyone so that they can also put their interests in improving that software/tool is called open source software"

So that was the general definition of what open source is, but now arises the big question: how a beginner (a newbie) can get started with open source, how they can focus on improving the software, and how they can step by step start their journey right away.

Code and Non-Code Contributions

Let me start, when I first started contributing to open source, I was pretty much confused that how should I get started with it, there were a lot of people giving guidance about it that it's not all about code, you can also contribute to it ("non-codely") and stuff, but Eddie Jaoude was the only man I listened to, he also created the EddieHub community for folks to get started with contributing to open source. You can also check out his youtube channel.

Code contributions involve contributors actually editing the source code and making sure that new features or existing ones remain updated while Non-Code contributions include updations in the documentation, project guides, listing new features, etc...

A few misconceptions people have about open source is that they think you need to have some experience to get started with it, It's completely wrong, with open source you always get to learn something new while contributing to it whether it is Code or No-code, you always learn from it.

Another misconception people have is they should only contribute to the project in code and it's completely wrong. Even a minor typo change is considered a contribution to the actual project. Many times the project maintainers are so busy that they forget to make these small changes, but as an open-source contributor, you can contribute these small updates to that project.

Remember: "Open Source is all about collaboration and not just about contributions" - Eddie Jaoude

Now that we've discussed about what Code/No-Code contributions are, let's look into the next section of this blog which is "How to find good projects to contribute to?"

Open Source projects to contribute

There are many such websites available on the internet where you can find good projects to contribute to it but here are some of them from my side,

  1. Codetriage - A website where you can find good open-source projects to contribute.

  2. Good first issue finder - Made by the eddiehub community which scrapes good first issues from GitHub and lists them

  3. Good first issue - Picks good first issues and users can filter issues according to their tech stack

The above-mentioned sites are to find projects worth contributing, Now here are some projects to which I've contributed so far...

  1. Open Source with Pradumna thumbnail

  2. Markdown-cheatsheet by Tapas Adhikary image

  3. Reactplay thumbnail

  4. Shoes by Tapas Adhikary preview

Apart from these 4 projects, I've also contributed to various small projects and helped them as much as I can, the list is very long so if you want to see them, you can check out my GitHub profile

I am also a core team member of the ReactPlay Community where we encourage folks to build projects while they are learning React. We also have a Discord server where you can hang out with the community.

Adding to the list, I've also created an open-source project that will be completely for beginners to contribute to. You can check it out by clicking the below image ๐Ÿ‘‡

Open Source with Hasnain

Tips to get started with contributing to it!

Here are some of the tips which I would like to give to you as a beginner,

  1. Don't just directly jump into the source code of the project, first try to read the documentation of the project and then approach the source code one step at a time.

  2. Try to read the documentation carefully and If you think something is missing from it, reach out to the maintainers or raise an issue.

  3. Before raising any issue, make sure to check out the existing ones, If you see your issue raised already, try to solve it.

  4. And now the most important tip: Make sure to sync the forked repo always. Because if you'll not sync the forked repo of yours, It will create merge conflicts whenever you'll push new changes and as a Developer, we just hate merge conflicts ๐Ÿ˜ฃ.

  5. If you're into DevOps, check out the workflows of the project and try to improve them or add new ones to the project.

Wrapping up!!!

I hope that by now you must have gotten the guidance on how to get started with contributing to open source, If you have any more questions regarding open source, DevOps, Flutter, etc... You can reach me via my Twitter and Showwcase handle.

Never ever stop contributing to open-source because it will build your network and will give you a lot more opportunities in your career.

And remember one thing, The Art of giving is the art of living.

Till then Happy Coding ๐Ÿ˜€

ย