Tech is constantly evolving and vast. Open source is a vital part of today's tech world. Let us take a look at what is Open-source and how you can use it to sharpen not just your hard skills but your soft skills.
What is Open Source?
As the name suggests, Open source software is intended to be accessible to anyone. Yes, ANYONE. The code, documentation and everything else is out in the open for you to grab and make use of it. Anyone can access them, propose changes and modify or collaborate.
Terms you should know
Git is a distributed version control system: tracks changes in any set of files, usually used for coordinating work among programmers collaboratively developing source code during software development.
GitHub is an Internet hosting service for software development and version control using Git. It provides the distributed version control of Git plus access control, bug tracking, software feature requests, task management, continuous integration, and wikis for every project.
Repository: A repository can be simply defined as a folder which contains the entire project.
Issues: A issue can be simply defined as a modification that is either a bug or potential feature that can overall enhance the project
Assignee: You can ask to work on existing issues, people assigned to work on them are called assignees. They are assigned by project maintainers or authors.
Pull request: As the name suggests it is a request made to the main branch or project repository to make changes or modify it
Merge: When a pull request is approved and the code or contribution is successfully added/made to the main project repository.
What are some use cases and how can Open source empower you?
Many big softwares such as Kubernetes, Hadoop or Django are all open-sourced. Anyone of us can access the code. Let us see with an example, Kubernetes. It is the second-largest project as of now.
As you can see from the above image, You can access the entire codebase. Obviously, you need some help with a large codebase or new projects. You can use the official documentation or .readme file of the project for that.
You can see how the project is structured.
You can clone projects to your local computer and try modifying the project or adding your touch.
You can refer to projects to get a gist as to how you can implement similar features or work on your own projects.
You can identify any issues.
You can work on solving issues raised by community members and users too.
You can collaborate with different projects and organisations to enhance the project and community.
You can share your learnings in public and build your profile and social presence. GitHub or Open source are also proof of your work.
You can even bag work opportunities through open source. There are more than 20 Open source Programs active that pay you to contribute to projects of your choice upon acceptance(More on this on another day)
Now that we have an idea as to what is Open source. Let us see how you can get started and how it will help you.
Getting started with Open source
The very first step is the most obvious one. Create an account on Github.
You DO NOT have to be a PRO or Expert to contribute. Contributions can be both code or non-code. Contributions are not limited to code or non-code. As you move forward, you can also contribute by maintaining projects such as WeMakeDevs or Kubesimplify.
You contribute to the documentation of the project as well.
Read the contributing guidelines carefully. It will help you with contributing.
Join the mailing list of projects. Each project has some sort of communication channels such as discord or slack. Kubernetes has Slack.
Why is the above point important? Many other people in those channels can help you get started or people you can work with.
You can ask your questions in public, meaning learning in public.
Try to contribute to large codebases or big projects. Each project no matter how big has beginner-friendly issues or good first issues. Work on them and contribute.
How do you find good first issues or beginner-friendly issues?
You can go to the issues section of the project and filter the issues by clicking on the "Good first issues" tag.
Another effective way is to use this website called Good First Issue
You can choose the tech stack you want and select different projects and good first issues to get started with
How does Open source enhance you?
The more you contribute, the more you will learn your way through things.
Not only do you gain technical skills, you learn to engage with the community and be an active part of the work and community.
Who do you think is well suited for a job or opportunity? someone active in the community and has an understanding of the project or a newbie?
You get to meet people globally and collaborate with them. It enhances your soft skills.
You can participate in open source programs that not only enhance your profile and technical skills but also get paid and gives you the real-world experience of working with teams and overall developing your communication skills.
You can go a step further by trying to be mentors or coaches or Leads of projects. This way you learn to take leadership and lead teams and projects to fruitful work.
The possibilities are endless as you explore. There is no set path to success here. Everyone is writing their own story and finding their path. So, take reference and keep learning and find your path.
Your work as minute as documentation is a step towards helping the community.
How can you contribute from your first month?
Get STARTED! Don't search for the best project to contribute or any other parameters. Just do it. You learn by doing. Do not overthink and just get started with contributions and engaging with the community.
Pick a project you want
Raise an issue or get assigned to a present one.
See how you can add value to the project.
***The logic is quite simple. The more value you add, the easier it is to get merged. ***
Add value to the project in any form you see fit. Try different approaches. Your first pull request may not get merged.
Take feedback. See what changes are required or what can be done in a better way.
Always be open to constructive criticism.
The intent is to give you a gist of Open source and how you can get started. Keep exploring. I will be coming out with more such articles to help you progress and technical content too. I hope this helped. Thank you for reading. All the best on your journey 🚀
Did you find this article valuable?
Support Rohit T by becoming a sponsor. Any amount is appreciated!