Open-source technology has rapidly gained traction and popularity across various domains and many IT leaders have been switching to open source solutions to fullfill their enterprise need's considering the various advantages it provide over proprietary solutions.
You too must have used or atleast heard about one of these prominent softwares mentioned below :
1. Linux Operating System
2. Blender Graphics Tool
3. Python Programming Language.
4. Mozilla Firefox Internet Browser
5. VLC Media Player
One thing common about all these is that all of the above are examples of Free and Open Source Software.
So what is an open source software ?
An open source software is a software whose source code is provided in the public domain that is anyone can inspect,modify and enhance the software or built upon it as the design is publically accessible by everyone.
Elaborating upon "Source code" it is fundamental component of a program, it's simply the code that a computer programmer writes using things like functions, classes , variables, calls, methods and other operational statements and manipulating which can 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. This is primarily the essence of open source.
Why to choose open source software ?
1. Secure : OSS have a solid information security record as it is largely addressed by 'many eyes' theory , a term coined by Linus Torvalds (Founder of Linux) which basically means that since all the source code of the project is open so contributors keep reviewing the code and find the loop holes in the same and then fix it to make it more secure.
Best eg. of it is the Linux OS as you know that there is no need to install an antivirus for security in it and further is being used to most business to host their servers as they are rightfully concerned with the security of their infrastructure and data.
2. Freedom of Open Source : Freedom and flexibility are central to the values of open source software, that is most open source projects can be pulled from public repositories and used immediately. Further their is also a Free and Open software mission already being promoted by organisations like GNU, Blender which aim at providing free and access software.
3. Open source community support : Community support is one of the most powerful and helpful feature of open source projects. There is whole large of an inclusive community built around open source projects that help folks in guiding through the project and help them with some issues they must be facing. Community is accesible by all,really helpful and if you actively participate then you might as get assigned some roles like maintainer, community role etc.
4. High quality software by design : Since the open source software code will be seen and critiqued by many folks so developers are inclined towards writing more apt or better and disciplined code. Further since the source code is open to all kinds of audience so that they easily give feedback and suggest changes to make OSS better.
Why you should contribute in open source?
1. Spirit of Collaboration : By contributing to open source, you become a part of this global community, connecting with like-minded individuals, learning from their experiences, and sharing your knowledge.
2. Immense and real learning opportunity : You get to work on real-world projects and gain hands-on experience. You can learn new programming languages, tools, and techniques by working with experienced developers. Code reviews, discussions, and feedback from the community help you improve your coding skills and understand best practices.
3. Remote job prospects : With remote jobs getting more prevalent day by day it is important for you to know that open source can enhance your remote job prospects as many companies value open source contributions. They serve as a visible portfolio that can set you apart in the competitive job market. Moreover, active participation in open source communities can help you network with professionals and potential employers, opening doors to job opportunities and collaborations.
4. Mentorship Opportunity : Various organisations now wanting to promote the culture of open source are providing developers with mentorship opportunities where they get to enhance their skillset under the guidance of industry experts.
There is whole large list of such mentorships and fellowship opportunity that you can apply for as an internship alternatives considering the learning and in cases the good stipend they will provide. The most prominent of all them is GSoC i.e. Google Summer of Code.
What is GSoC?
GSoC is an global, online program that brings new contributors into open source software organisations and help them gain real world experience by working on 12+ week coding project with 100+ open source organizations, under the guidance of dedicated mentors. Also the participants receive a healthy stipend for completing the activity.
Coming on to the main thing i.e. what are the steps to apply for GSoC
Steps :
1. Selecting organisation : It's the initial step in which you have to go through all the participating organisations and select two or three organisations based on your interest. Its better to start early with the process, around November and since the accepted organisations list for the upcoming program would not have been out so its good practice to go through organisations from that year program and select 2 or 3 based on your research of the products and solutions that the organisation provide and also how's the community involvement by going through the orgs github or gitlab repositories and the their community or forum. Organisations mostly use slack or discord as their community platform but it can vary from org to org.
Link of GSoC'23 organisations : summerofcode.withgoogle.com/programs/2023/o..
Visit this site for more help: gsocorganizations.dev
2. Read contributing guidelines : Next very important step, is reading the contributing guidelines. It is essential because it helps you understand the specific rules, expectations, and standards set by a community. By familiarizing yourself with these guidelines, you ensure that your contributions align with the community's goals, maintain a respectful tone, and adhere to formatting and content requirements. It also demonstrates your respect for the community's norms and makes the collaboration process smoother for everyone involved.
3. Locally set up the project : Setting the project locally on your machine is one of the major steps in the contribution process. Follow the setup guidelines provided mostly in the repository. If you are having any issues, then first try to solve it all by yourself if still you are unable to solve it then ask in the community for help and dont directly ping anyone. Just be patient someone will surely response to your query.
4. Start contributing : After locally setting up the project start with your contributions. There is more than one way to contribute to a project. There is a misconception that one can contribute only code to a project but this is not the case one can contribute in following ways -
By answering community questions
By creating issues.
Non code contribution eg adding documentation, suggesting new ideas etc
Code contribution
The best way to get started with contribution is to go through the alreday created issues of the organisation in the issues tab of github repo or if you are beginner then you can find issues with good first issue tag as they are relatively easier to solve and are meant for beginners to solve.
Once you find a issue try to get it assigned to you through directly commenting and showing your interest or you should follow the procedure as specified in the community guidelines.
For GSoC specifically it is said that its a good practice to start contributing to selected organisations from October itself so that you become a familiar face in the community and also that maintainers realize your potential and consider you a appropriate candidate for selection in the program.
5. Submitting a Proposal : If you have achieved the above goals then submitting proposal would just be a piece of cake for you and would be considered a formality from your side. Keep contributing even after submitting the proposal and just keep in mind that whatever be the result , whether you make it into or not , you would have already taken a big and major step in your journey to Open source.
Timeline and other details regarding GSoC'24 program will be shared at the end of 2023. So keep yourself updated and until then select an organisation from the previous program start your contribution and become a familiar face in the community.
Here is a link of the Timeline of GSoC'23 program : summerofcode.withgoogle.com/programs/2023
Final remarks
One very important thing to keep in mind is that open source provides you with great and one of the best learning experiences. It is not just limited till GSoC. Open source is a lot more than GSoC.
GSoC can just be considered as your door to open source world even though if you don't get selected for the program.
There's whole lot of scope in open source with increasing relevance and promotion by various entitled organisation in technology field.