What is Open Source & How to contribute to it?

Search for a command to run...

Glad it was helpful <3
Glad it was helpful!
Thank you Cafer!
You do awesome stuff Eddie!
Thank you Rivon!
Thank you Abdul!
Thank you Shubh!
Great points Krish Gupta! Through EddieHub, I’ve fallen more in love with contributing to open source projects. Is there any open source communities that you recommend non-coders to join?
Thanks for responding Krish Gupta! 😊 It’s been a long while since I posted this comment, so I’ve pretty much answered my own question.
Christine Belzie If you've found it, I think it might be helpful to share it with everyone!
Krish Gupta, I wrote a blog post about ways people who don’t know how to code can contribute to open source projects: https://chrissycodes.hashnode.dev/beyond-code-creative-contributions-to-open-source
The Continuous Software Deployment Strategy Used by Giants like Amazon 😱

DevOps is an approach to improve the SDLC (Software Development Life Cycle) by streamlining the process. To understand DevOps, we first must understand what the past was. World Before DevOps DevOps stands for Development and Operations, and you migh...

GitHub Profiles are basically the future, every day GitHub is getting increasingly hungry to become your default resume 👀. I mean GitHub is adding more and more features every day to your GitHub Profile to make it become your github profile. GitHub ...

I used to be a Windows user, but then I realized that Windows was holding me back. It was slow, buggy, and constantly bombarding me with annoying pop-up notifications. Plus, I could never customize it to my liking, no matter how hard I tried. But the...

The current state of tech on Twitter:
"You can get a job with open source."
"Open Source experience should be included on every developer's resume."
"GitHub is your resume!"

Okay, I admit that the last one is just me.
So it's good to say that tech Twitter somewhat agrees with me? No. I disagree with half of the things tech Twitter says about open source. In this article, I try to map out open source with my experience and knowledge after almost a year and a half of contributing, maintaining, and advocating.
Open source is code that is publicly available for anyone to study, improve, change, and redistribute to everyone.
Each of these may have a slightly different implementation due to the various open-source licenses available, but at their core, you should be able to do all of them.
Open source is a community of developers dedicated to the greater good. Many developers just open-source their projects to make development easier for everyone by solving common problems. Some other developers are against big corporations owning everything and favour creating open-source alternatives.
So it's just a VERY VERY VERY large community consisting of just 100 million people on GitHub
So most people joke about Open Source software not being good :/
Especially about Linux,

What most people don't realize is that almost all of the code in your browser is open source. The entirety of the internet's backend is also open source, as is the software that Hashnode is using to present this article (NextJs). It does not take a good while to realize how much of your life is open source.
Short answer: It can.
Long answer: It most probably will not. Getting a job entirely through open-source contributions is a new thing most companies are still not into. But open source can help you get a job in other ways.

Open Source is a significant addition to your resume; it demonstrates collaboration and soft skills, as well as visible proof of your knowledge.

You can learn anything from industry professionals via the medium of open source. I could right now pull up a MEVN stack project, send in a PR, get a code review, and learn from people working in that tech stack—the people who built that project itself.
I mean, developers these days post these memes on Twitter:

Ok. You got it. No one can design such a bad meme other than me, so it's me, but how did you know this? :|
Never. Open source is not a way to get a job; it is just a multiplier to increase your chances. Don't let open source take over everything, including portfolios and projects.

Yeah, imagine explaining that situation to your partner's recruiter.
I contributed without any knowledge of computer science as an 8th-grade student. What in the damn world can stop you, apart from yourself being lazy?
So I can, as a beginner, contribute to open source, but you can't? ("Yeh Sab Doglapan Hai!"; Translation: This is the true contradiction.)

Where do big projects get their contributors from? If you think about it, every big project began as a small project. So what's the difference between small and big projects? Bigger projects move faster, but can you attribute that to their having more files? So it's balanced most of the time.
I've contributed React's documentation (which is in the queue right now); that proves that no matter how big a project might get, there is somewhere you can add value.

There are so many ways you can contribute! Why limit yourself to code contributions? You can add value in so many more ways (you can create your ways to add value)
Code
Feature Addition
Refactoring Code
Bug Fix
DX Improvement
No Code
Documentation
Content/Awareness/Education
Community
Triaging (Confirming if that issue exists for you)
On a side note, anything that adds value is a contribution. (I'd also like to clarify that you do not need to contribute to only complex issues to be a great contributor for the same reason)

So let me be clear: where I can help you, and where I can't:
✅ Git & GitHub
✅ How to approach projects
✅ How to communicate as a contributor
✅ First steps on making your first pr
❌ Listing projects that you should contribute to (✅ I will tell you how to find them here though)

Git and GitHub have often been overlooked topics when it comes to open source. They are an integral part of contributing to open source, yet they are just left with a list of commands. I'll do my best to give you here a concise guide to git and GitHub, including all key terminologies and functionalities.
Git: Git is a version control system that allows teams to work on large projects with versioning and collaboration support
Commit: A commit would be on a version of the particular source. Commits include information about the changes and who made them.
Branches: When collaborating different teams need to work on different aspects of the source, branches provide a way for teams to take the source repository's current commit source to what you could call a somewhat altogether different repo that could be merged later into the main version (main branch) when the team is done.
Merge Conflicts: If two of the teams edit the same part of the source in 2 different branches and the first one gets merged then the second one will have to review and resolve any conflicts since the changes in the second PR do not change the main now, but branch 1's source has been merged into the main.
GitHub: GitHub is a hosting provider for git which has now branched out to have many other services, which give it the title of the place where the world writes code.
Forks: Most of the time you do not have access to the official hosted repo's branches to make your edits (for obvious security reasons), in that case, you have to download that repo not locally but on your personal GitHub account so that it's still accessible to the internet.
Pull Requests: It's just you asking the people who do have access to the official hosted repo to pull your fork and merge its branch to the source of the official repository. (This is one way to contribute)
Issues: Just a tracker of the submissions for bug reports, feature requests and other things someone might suggest/report to a project.
There are many Git Cheatsheets available on the internet if you need one!
Finding projects is very hard; Here is a list of approaches you should use to find your projects:
Your Network
Many people in your network will have their projects hosted on GitHub it is a great opportunity to add value to their projects.
People in my network have always surprised me with cool projects! I am sure your network will surprise you too!

Projects You Use
There are hundreds of projects you already use, did you know that Chrome, Brave, Android, VS Code, GitLab and Gitpod are all open source?
There are Open Source projects like Curl which have been used on Mars 🤯

People you follow
If you are seeing this post, you must be following some people who have open-source projects! Yes, everyone whom I follow has at least one!
YK Dojo's kaguya
Eddie Jaoude's book-open-source-tips
Francesco Ciulla's free-web3-resources
are a mere FEW!

It can be filtered by languages as well 🚀

I used it to find 3+ Issues on the first day of my first Hacktoberfest, which had been merged!

Good-first-issue sites
Some websites help you find issues to contribute to -
First Contributions, EddieHub Issue Finder, goodfirstissue.dev, goodfirstissues.com, firsttimersonly.com.
Communities
Communities like EddieHub have several open-source projects seeking contributions!

This one should be pretty straightforward, it's just a simple checklist
I have identified where I can add value (Go back to the graph mentioning types of contributions)
I have found a project to contribute to (The step before this one)
I know basic Git & GitHub concepts (Step 1)
I have made a PR to EddieHubCommunity/hacktoberfest-practice to add my name to test out step 3
I have read the contributing guide and the code of conduct of the project (if they do not exist please do not consider contributing to that project as a first-timer)
Make a PR ✅
I need your help people -- I've been writing this article since a great while now, but I think I still do not have enough perspective of different people just beginning in open source. If you've got a minute or two please share how can I improve this article and include more information. Thanks!
Finally, I'd like to thank everyone who took the time to read this blog post all the way through. If you love my content, feel free to follow me on Twitter for more such memey content