Beyond Code: How Anyone Can Contribute to Open-Source Projects
The mindset and approach to start contributing to any Open-source project
Are you itching to make a positive impact on the tech community? Are you a student, professional, or just a tech enthusiast who wants to contribute to open-source projects but doesn't know where to start or how to proceed? Look no further! In the next 7 minutes, I'll show you the approach and mindset you need to get started on any open-source project, regardless of your skill level.
Contributing to open-source projects can be a rewarding experience, but it can also be intimidating, especially for beginners. That's why I'm here to guide you through the process, step-by-step. With this approach, you'll gain the confidence to contribute to any project you want and make a difference.
So, if you're ready to take the first step towards becoming an open-source contributor and learn the secrets to success, keep reading. We're about to embark on a journey that will change your life forever!
But, before we get started, not sure what open-source is? Don't worry, I have already covered this extensively in my previous blog. You can check it out here.
5 Steps to start contributing to any project!
The mindset
Firstly, you need to understand that open-source is truly open-for-all and anyone irrespective of background and experience can get involved. Are you a program manager? Doctor? Writer? Tester? Doesn't matter, you can get started today and contribute to projects you want because open-source contributions are not limited to code. Each of us has some strengths that can be leveraged by projects. What if we don't have any? Then just get involved using the below steps and start upskilling!
Fun fact: Kubernetes is the 2nd largest OS Project as of now. Most of it's contributors initially started out with non-code contributions such as documentation!
Contributions are not limited to code. You can contribute in more ways than one including but not limited to documentation, writing test cases, maintaining the project, maintaining the social channels of a project or communicating with others to get feedback etc.
Myth: You need to master tech stacks or be an expert to contribute!
Fact: If you have a basic idea as to what the project is about, you're curious to learn the tech and get involved. This is enough to contribute in numerous ways.
What better way to learn than by doing? So I am gonna teach you the approach by contributing to a Google Season of Docs and Linkfree where I will be adding myself to the list of participants for GSoD'23 and creating my Linkfree profile. Let's get right to it.
Understanding the project
Understanding a project doesn't mean you read all the code and get overwhelmed. Start simple.
When you look at projects, especially large codebases, they are so big with so many files etc that it is very easy to get overwhelmed and back out. But here's what you need to understand!
You don't need to understand the codebase to get started!
So, how to get started then?
Every project has a 'readme.md' file similar to the one here which can be described as the documentation or the abstract of the project. It contains all the crucial information for you to get started such as what the project does, what they expect from you, How you can run the project locally and so on. It gives you a gist of the project and gives you a lot of the information you need to get started.
Also, quick shoutout to Eddie Jaoude for such good documentation on his projects!
Ways to contribute
As I have already mentioned, there are more than one ways to contribute, let us look at a few, Shall we?
Using the issue tracker
Each project has an issue tracker which consists of issues raised meaning the project needs help with enhancing or fixing certain tasks. This is a great place to start when looking for ways to contribute! You can browse through the issues, and check out the ones that interest you or contribute to. How do you find good issues?
As you can see above, you can either browse through issues or search for them or filter them out using 'labels'.
'good-first-issue', and 'documentation' are some labels commonly found in all projects.
Now, it could be that you ran the project locally and found some issues, What then? You can also create your own issues and work on them after the project maintainer approves them. How cool is that?
Using Contributing.md
Each project also has a file called 'contributing,md'.
This is a file maintained by the project which is used to relay how one can contribute to the project.
The file mostly contains the steps you can take to start contributing which anyone can follow along with and recreate the steps.
Getting involved in socials
Each project has some sort of social space such as Discord, telegram or Slack that you can join and get involved.
Need help contributing? Feel free to ask your questions in public, you'll find answers.
Being active in these social channels and helping new individuals get started is also a way of contributing to the project.
It could be that some projects do not have a contributing.md file, you can connect with the project maintainers using these socials and find out how you can contribute.
You can even work on building a contributing.md file yourself, How cool and easy is that?
These are just some ways in which you can get involved right away! What now?
Start contributing
Using the contributing.md file, recreate the steps to contribute. Now, let us pick a scenario where you have no clue of the tech stack being used such as HTML, Javascript or so on. But you wanna contribute, What do we do now?
Take references!
There'll be someone else that must've contributed earlier right? So, look at how they did, in fact you can even just copy their code and make changes according to you. Here's how:
As you can see, to add myself as a participant in Google Season of Docs, I need to add my details in the demonstrated manner at the bottom of the list.
Don't worry if you don't know how to do it. Just recreate the steps as in contributing.md or you can take a look at someone else's work by editing the file.
When you edit the file, you see the work done by others, similar to the below image:
Feels overwhelming to look at, but if you look closely, it follows a pattern. Now to add my name as a participant, I will simply copy the code of any person here and paste it at the bottom of the file as instructed.
You don't have to remember anything practically speaking, you can reference previous work, copy and modify it as per your needs.
Once I have done that, I will now make changes to the file as required. Replacing the name field with my name and replacing the links with my links.
Now, how hard was that? You didn't have to google anything or learn the language, you just referred to another person's work and replicated it. Continue to contribute and get involved with projects, and try different things.
Socials
As mentioned above, get involved in the projects socials such as discord and learn in public, while getting started you might not know much, you can ask for help in these channels.
People will guide you and help you to contribute in numerous ways, They will guide you to resources that will help you learn more and get better. You can socialise and find people that are like-minded and work on solving issues together.
As you learn, you can also go through the pull requests raised and review them to the best of your knowledge. Even reviewing code is a part of Open-source contributions.
Stay active in social channels, help others, and share knowledge through communication, blogs, feedback and so much more.
Conclusion
As you can see, contributing is not limited to code. There's more to tech and open-source than just programming and writing code. The sky is the limit and ways to contribute are numerous. For instance, if you are a doctor, you can't code but you can share your expertise to help build a project related to healthcare.
It is called "Open" source for a reason. It is open for all to get take part irrespective of their background and profession. You can help in any manner you can and as often as you can.
Remember that as long as you don't act on it, you will never really get to it. So, take small steps but take steps to get to the place you wanna be.
Closing remarks
This was a bit generic blog on getting started with open-source as I have seen many struggle with it.
Like |Comment | Share | Follow Rohit T for more!
You can catch me on my socials here, and even let me know how this article helped you, and what would you like me to cover next!