Everything you need to know before you Open Source 🚀
Tags: opensource, github, beginners, webdev
Published: 2020-11-17 13:44:29

<!-- What did you learn that can help others contribute to the project you worked on? What did you learn that can help the users of that project?! -->

<blockquote><h4> Getting Started with Open Source ❤</h4></blockquote>

If you are here reading this article, it means you at least have an idea about Open Source. This article aims to be a launchpad for developers and programmers who still don’t contribute to the Open Source community but want to. It will talk about the How and the Why aspect of Open Source contribution.

As you probably have known that open source has changed the face of the software industry and the modern computing world in general and will continue to do the same in the future. The Open Source community has tons of awesome developers still it requires your contribution because every drop counts. It does not matter if it is a small contribution or something substantial. Everybody starts like that and soon as you contribute more and more you will become an expert too.

A journey of 1000 miles starts with a single step ⚡!

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/xebbgv6twkd69w50psz4.png)


<blockquote><h4> What is open-source software⚡?</h4></blockquote>

<b>Open-source</b> software is software with source code that anyone can inspect, modify, and enhance.

"Source code" is the part of the software that most computer users don't ever see; it's the code computer programmers can manipulate to change how a piece of software—a "program" or "application"—works. Programmers who have access to a computer program's source code can improve that program by adding features to it or fixing parts that don't always work correctly.

<blockquote><h4>What are Open source projects🌍?</h4></blockquote>

Open source projects have given birth to a range of useful software over the years. Many of the great technologies that we use today were born out of open source development! <b>Android, Firefox, VLC media player, MongoDB, Linux, Docker, and Python</b> just to name a few.

Even many of the tech giants realize the benefit and allow their employees to take a day off and dedicate their time to open source projects. In fact, many have open-source projects themselves.

However, the large majority of contributors to open source projects don’t work for tech giants; anyone can leave their mark on an important piece of open software or create their own “next big thing”. Being part of an open-source project can also help you improve your skills, learn something new, get mentorship, or form life long friendships. Contributing to open-source projects should be mutually beneficial in both the short and long term. Many companies actively hire full-time developers from those contributing the most to a project, and so doing so can be a great way to show off your skills, while learning new ones.

<blockquote><h4>Why to Open-Source🤔?</h4></blockquote>

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/4p521xcu1jfu0zxi0v9y.jpg)

Imagine this scenario — you’re working on a project and you find something just isn’t working or is possibly even missing? What do you do? The majority of people will move on. A few will even flag up these issues with the toolmakers and EVEN fewer will be the ones who step forward and build that new tool that helps everyone.

Who do you think is the hero/heroine in that scenario? It’s that person who steps up and takes charge of the situation and from their efforts receives new knowledge, improves the wider ecosystem for all developers AND all the glory.

- Contributing to an open-source project helps to improve it based on real-world experience and proven, working solutions
- Contributing to an open-source project helps you gain a much deeper knowledge about the software
- Contributing to open source project helps your reputation and can leverage your career
- Contributing to open-source projects you are using in your projects lets you better deal with potential risks and plan for the future 
- Contributing to open-source projects is fun and gives you personal satisfaction 😊

Contributing to open-source projects can be a lot of fun, though challenging at first. While in personal projects one may be in the position to act quickly, but when it comes to design or architectural decisions, there may be a lot more discussions in open source projects. The best projects attract the best people, so while contributing to such projects, one gets in touch with strong decision-makers and very talented developers. It may be hard to convince them of one's solution, the design one has chosen, or the usefulness for others. However, doing so successfully thus gives you a much higher personal satisfaction than you may have expected.

<blockquote><h4>Pre-requisites to Open Source 🎈 :</h4></blockquote>

Open source contribution requires one to know basic git commands and also knowing how to navigate your way on Github. Here are all the pre-requisites on must know to be an open-source contributor:

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/x2fe85h2e19w8uk2e1fo.png)

- [An Intro to Open Source](https://www.digitalocean.com/community/tutorial_series/an-introduction-to-open-source)
- [All about Git and Github](https://www.atlassian.com/git/tutorials/what-is-git) 
- [Basic Git Commands](http://guides.beanstalkapp.com/version-control/common-git-commands.html)
- [Git Handbook](https://guides.github.com/introduction/git-handbook)
- [Github Documentation](https://docs.github.com/en)

The Hello World project is a time-honored tradition in computer programming. It is a simple exercise that gets you started when learning something new. And now, you are all set to go ["Hello, World!"](https://docs.github.com/en)  in Github.

<blockquote><h4>Make your first Contribution 🐱‍👤</h4></blockquote>

1) <b>Get yourself a GitHub account🔗</b>

Most open-source projects are hosted on GitHub, which is a website for sharing and saving code. Anyone can make a GitHub account for free. Paid accounts are only necessary if you want some of your code to be private.

2) <b>Find a project that is open to pull-requests and issue to work on 🔍</b>

A set of files for a project is called a Repository, and Issues are where people ask for help fixing things. If you haven’t picked out a project to work on. Contributing to open source isn’t just about hardcore coding — there’s plenty of work to be done on public websites for the project (like CSS and HTML) or documentation that will help out other developers. For your [first contribution](https://github.com/firstcontributions/first-contributions), pick something small. 

- [Resources for First Contribution](https://www.firsttimersonly.com/)
- [Open Source Projects wanting Help](https://up-for-grabs.net/)
- [Good First Issue](https://goodfirstissues.com/)

When you’re new to a project, it’s a good idea to comment on an issue that you want to help with. To see the Issues, click on the tab for it. Many open-source projects use tags like “Good for new contributors” or “help wanted” to indicate which Issues might be best to jump in on. 

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/vlr22qdanrzvuj8198cd.png)

3) <b>Read the guidelines for contributing 📃</b>

Look for a CONTRIBUTING.md file in the root of the project’s repository. Read the document thoroughly. This document will often provide you with instructions on how the project accepts contributions, direct you to the code of conduct, and tell you how to report bugs or troubleshoot.

4) <b>Fork the Repository and Clone the Project into your system 📎</b>

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/tte66fs43nrgd18bljq7.png)

5) <b>Open a pull-request 📌</b>

Write your code on a new, descriptively-named branch. Feel free to open up a pull-request (PR) early. You should link your PR to the issue you’re working on by referencing the issue number in your PR. Make sure that your PR has a descriptive title. 

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/x0bcmkzwfdmvuy9v672i.png)

As you work on the issue, you can ask for changes to be reviewed by the project’s reviewers via the open PR. Some projects will also have continuous integration testing that runs on all PR code. This feedback allows you to make changes to your code as you go. Again, you will want to defer to the guidelines and practices of the particular project you are working on.

6) <b>Get your first Open Source contribution merged into the project’s codebase 🎉!</b>

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/ll5b38ppst6fj9shtv1l.png)

If everything goes well, you will work with the project’s reviewers until your code is acceptable and ready to be merged into the project’s codebase. Sometimes, the reviewers will choose not to accept your code or implement the change that your pull-request proposes. If that happens, don’t be discouraged. Consider whether there is another issue that is a better fit for your skills and the project’s priorities at this time, or explores some other projects that are open to first-time contributions.


<blockquote><h4>Conclusion👋</h4></blockquote>

Contributing to open-source software is a great way to give back and gain experience collaborating with other developers. It may take a little bit of trial-and-error to find the best way to put your skills to use, but there is a place in OSS for everyone.

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/jkh0lzyizzgt0o7uzx89.jpg)

If you find this post useful share it with your peers or beginners who want to start an open-source contribution. Happy Coding and Contributing ❤!