A Guide to Open Source Development

Hey folks !! In this article, we will go from end-to-end, noob to pro guide in open source development. You will get to know about the thorough knowledge of open source, why it is necessary, opportunities, how to contribute, best practices etc.

I have jotted the article into the following points:

What is open source development?

Let’s understand the whole process of open source development with a very realistic example.

Let’s suppose you go to a North Indian restaurant, where you get to have “Indori poha” as breakfast. Now, you feel that only one dish for breakfast is not good for sustainable growth. So, you advised (raising an issue) the chef ( in charge of making breakfast or project maintainer) that you can give milk with cookies, jalebi-phaphda, sandwiches and many other add-ons (features in project) for sustainable growth. This can be done by providing customer with different options (different features, solving bugs or issues etc). The chef said “Ok, can you help me with that?”. You said “ Yeah, sure”. Now, the chef assigned the task of making dishes of different varieties (assignment of issue) and you successfully completed the same (solved the issue), you requested the chef to taste the dishes you made ( requesting a pull request or PR), he tasted (reviewed the PR), felt that dishes are delicious and can be a good add-on (merged your PR), finally the chef offered you a permanent job ( you became a contributor).

Technically, you can understand open source development as a process of software development whose source code is made publicly available (free to use & study), for modification and enhancements. It is enforced & released under various licences like BSD, MIT etc. Learn more about licences here. Examples of open source software & packages can be accessed here.

Why is Open Source important and how does it help?

1. Collaboration

Open Source Development enables you to “Learn & Implement in Public”. One can collaborate with different people across the globe on a project which helps to enhance software development skills.

2. Software Enhancements

As open source softwares are “public for valuable contributions”. They are modified & improved through public contributions & developers all over the globe work on different issues & features for a real-world project.

3. Job / Mentorship Opportunities

Open Source Development helps to get industry-standard hands on different projects according to your skill sets. Companies like Hackerrank, Fampay, FOSSAsia etc also look for your open source contributions as a preferred & desirable add-on.

4. Open Source is for Everyone

Open source welcomes everyone with code, low-code, documentation solutions and much more. The only requirement is “your ability to implement your skillset”.

How can one contribute to open-source?

Following are the steps to contribute to open source:

  • Learn About Git & Github actions
    Git is a VCS (version control system) that helps developers around the world to collaborate on projects/repositories in different time zones.
    You can take the following references to learn completely about them:
    1. Net Ninja Playlist
    2. Complete Git & Github Tutorial
  • Filter & Find Issues, Repositories & Organisations according to your skillset
  • Ask the maintainer to assign you an issue to add features/fix bugs to the project and then send PR to the project. Basic contributing guidelines can be found here.
  • Until review & merge of your PR, keep an eye on other issues/projects.

Different Open Source Programs to look at:

  • Hacktober Fest
  • FOSS Asia CodeHeat
  • Google Summer of Code
  • Google Season of Docs
  • Outreachy Program
  • Girlscript Winter of Contributing
  • Girlscript Summer of Code
  • Devscript Winter of Code
  • Script Winter of Code
  • Script Fellowship Program
  • MLH Fellowship Program
  • Open Source Days
    and there are many more to look at. You can refer here.

References to contribute & know more

Keep Sharing, Keep Contributing !!

Leave a Reply

Your email address will not be published.