I am writing this blog as a final year undergrad. “Open source” has been a buzz word for me for the past 2 years. I have always shied away from learning about such a cool thing, and I regret for not having gotten my hands dirty earlier. I have read numerous blogs and taken up numerous courses, but sadly I could not find anything that suited my needs. So I decided to write this blog as a guide to other developers who have found the concept of open source a bit tough to understand, just like I was until a couple of days back. Let’s get started.

Some famous open source projects(Source: Google)

Let us look at what the internet has to say

Open-source software is a type of computer software in which source code is released under a license in which the copyright holder grants users the rights to use, study, change, and distribute the software to anyone and for any purpose. Open-source software may be developed in a collaborative public manner

Phew! That is a lot to take in, right! In simple terms, it is some code that can be accessed by anyone. There is a tonne of cool software and products out there right. If you have reached this blog, it means that you know all of that cool stuff is someone’s code that is running. Take our favorite Google Chrome for example. It is a browser, and it is someone’s running code. What about some final year project that is hosted on GitHub? That is someone else’s code. If you can access it, that is also open source. Now you would have gotten the idea.

If you take another look at the definition, it says that the code is licensed. Which means there is an owner who stands as the copyright holder to that code. If I own something, I have to make sure that someone else doesn’t steal or take credit for it right? The same goes with open source as well.

Why open source?

That is why you open source your source code. You are giving the chance for others to help with your code. They can make changes that they think will make your project better. Or they can help with the problems in your code.

Version control System

In software engineering, version control is a class of systems responsible for managing changes to computer programs, documents, large web sites, or other collections of information.

If you have large amount of code, there are chances that many people are working on it. Imagine that both of us are teammates. I want to add a button to a web page. You want to add a search bar to the same web page. I make some additions, and then there is a new version of the project with the code for a button in it. Now if you want to add the search bar, should you go for the the “button code” version or the “no button code” version? Which version is the latest one, that everyone should be using? Well, all of this is taken care of by the version control system. It allows for multiple developers to contribute to the code base, without having to worry about other’s additions.

To be continued….

Link: https://medium.com/@snehhapaddy19/a-guide-to-make-your-first-open-source-contribution-in-github-the-basics-469c18463e80

A lot about computers and technology excites me. I learn, I code, I write. Cloud and data is where my mind is. My LinkedIn @Snehha Padmanabhan.