Demystifying Open Source

Demystifying Open Source

·

7 min read

Hello World 👋

In this blog, we will go through the journey of becoming an open-source contributor. Open Source contribution is a great way of learning things together and have right to control your own destiny.

Screenshot from 2020-11-19 15-59-43.png

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! Android, Firefox, VLC media player, MongoDB, Linux, Docker and Python just to name a few.

Why you should contribute to open-source ?

Contributing to open source can be a rewarding way to learn, teach, and build experience in just about any skill you can imagine.

Why do people contribute to open source? there are plenty of reasons and here are list of a few.

  1. Whether it’s coding, user interface design, graphic design, writing, or organizing, if you’re looking for practice, there’s a task for you on an open-source project. so it's a great way of improving your existing skill and work on some real-life scenarios.

  2. Open source projects with warm, welcoming communities keep people coming back for years. Many people form lifelong friendships through their participation in open source. so you will get a chance to find people who work on the same technologies as you do.

  3. Mentoring and teaching each other. Working with others on an open-source project means you’ll have to explain how you do things, as well as ask other people for help. The acts of learning and teaching can be a fulfilling activity for everyone involved.

  4. Open source offers opportunities to practice leadership and management skills, such as resolving conflicts, organizing teams of people, and prioritizing work.

How to Contribute?

Before starting your contribution to open-source read these requirements.

1.Good understanding of one programming language of your choice

Understanding of a programming language not only just includes knowing the syntax or how loops and recursion works. If you are already familiar with that, Good for you! You crossed the first level. Next up you need to take up the task of learning the many tips and tricks related to that language. After that, you should consider learning and using major libraries and packages that are going to be used in any medium to large-scale projects. You should lookup for relevant libraries related to your programming language and devote time to learning them. A good understanding of the languages will help you go a long way in understanding any code base better.

2.Version Control System

Any sort of version control system is a must for any open source project, as there will be tens of thousands of contributors and as they will be making changes to the source code independently a system is required for managing so many changes, as the number of contributors increases it becomes very difficult to accommodate all the changes manually. Yes, this is where Git comes in. As we can see the importance of Versioning Systems it is very important to have a good idea of how these systems work and also to know about all the features they come with. Therefore, first, learn Git, then move on and learn how to use Github.

3.Submit Patches

Submitting patches means submitting the changes you made to the project. The changes might include fixing bugs or adding new features to the project. These patches are submitted to the respective owners and moderators of the project. Once you’ve learned all of the above, you are ready to submit some patches or bug fixes to a project of your choice. Choose any open-source project — preferably written in a language you know, and more importantly, interests you — and go and browse through its bug tracker. Most bug trackers have issues marked as volunteer or introductory. Search for such issues, or go with any issue which you think you can fix. Comment or write an update on the issue saying you are taking it up. Solve it on your local system (you’ll know what this is once you know how to use version control) and then push it to the organization’s remote codebase. This is easier said than done. You’ll need to know the following, at the very least:

  1. What version control system the project is using.
  2. What are their workflows for code contribution? (Most organizations/projects have a defined way to submit a patch which must be followed). The contribution guidelines can be found at the contribution.md file in the project structure
  3. How to get involved with the community.
  4. You must practice and gain expertise in the above procedures as they serve as the building blocks if you want to be a good contributor to the community.

How to find an open-source project?

You can also use one of the following resources to help you discover and contribute to new projects:

  1. GitHub Explore
  2. CodeTriage
  3. SourceSort

Resources

You can follow these resources to deep dive into the open-source contribution.

Open Source Guide

Adam Carrigan's Guide

#Happy_Coding 💻

Thank you for reading the article. Follow CodoPedia for More. 😃

For regular updates and more interesting stuff join our telegram community here Telegram