2020- Here we are in the midst of the COVID-19 pandemic scenario. Being still; the only trending motions are meet and greet, virtual meets, and remote working. Looking from a developer's perspective, we have a great platform for remote working as GitLab, GitHub, etc. But many of us are unaware of this, they all come under the vast whirlpool of open-source.
According to Wikipedia, 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 study, change, and distribute the software to anyone and for any purpose. Open-source software has developed in a collaborative public manner.
In simple terms, it is software from which you can access original source code and be able to modify and use it or redistribute.
I was wondering if it seems to be a complex process and one needs to be a novice or expert developer to make contributions to open-source. But it is a myth we need to break this, beginners can also contribute.
Why contribute to open source?
If you have any problems.
If have any solution to the problem and if you can fix
To develop your skills by practicing on real-world projects
To give back and become a part of the community
As every coin has two sides, the other part of open source is that- it lacks financial incentives and the files and code may seem chaotic.
Difference between closed, free and open-source
You all have heard about ‘Open’, ‘Free’, ‘Free and Open’ and ‘Closed’ Softwares, it may little confuse you so let's get cleared about it
The code is open, do changes you want to do it but within the
limit of license.
It implies a set of freedom for the user.
Free and Open
An openly shared source code that is licensed without any
restriction on usage, modification or distribution.
The code is not publicly available and generally, it would be a
How does it work?
When a developer starts a project he/she provides the source code of the ongoing project publicly. It will be available on open-source platforms like Github or GitLab, so more developers can work on the project and modify it to solve bugs and fixing issues and it continuously goes on making a cycle. As a result of this cycle, we are having better and improved projects (software).
We all are aware of Mozilla projects, it's one of the open-source projects. It is developing and improving, an old and well-known browser, Netscape.
How do you begin?
Find an organization
You can google it and find the organization that they allow to
work in open source projects
Selecting a project
Look for projects on the basis of your acquired skills
Get a copy of the original file and start working on it
Clone the project on your system, interpreter the code and start
showing your skills and knowledge
Understanding the code
Get the base and foundation of code before begin to
work on it.
Steps to contribute
Determining the contributions, feature or bug you want to solve
Studying the contribution guidelines of the target project, every
project has readme and contribution file must go through it before
you begin any work on it.
Obtaining copy and building the project on your local system
Extracting the relevant code fragments, if you want to work on any
specific part of it.
Adapting the code and integrating the desired changes
Providing the required test cases, document, screenshots, etc
Filing an issue and testing it
Submitting the change back to its original source code
Maintainer of repository look for your changes and if it goes well
it will get merged to original files
Introduce yourself in the community when you start as it helps you
to know the working environment between the contributors and you can
adapt accordingly to it.
Read the guidelines very carefully and follow them, they are
especially in README file.
It is not a competition, it is service to the community
Ask for help if needed & help others as you might get stuck while
working on it and help with your knowledge to others.
Be confident but not overconfident, the idea is to learn and grow as
you start solving issues becoming more familiar with the project and
the language or framework they use through this process.
Don’t worry to begin it as your first move toward it would begin
toward movement to improve your skills
Golden advice for beginner
Many open source repositories have a documentation file that essentially explains their purpose and how to run the code, which is always called README.md.Correcting and maintaining documentation still counts as an open-source contribution, and can be a great way for a beginner to understand and learn the workflow behind GitHub, contributing to open source before facing a challenge, coding-heavy contribution.