This collection of articles is about what it’s like to get started in open source, in any position and for any type of open source project. We’re not just talking code here, though we do highlight many ways someone can get started coding, submitting pull requests, and working directly on the software side of an open source project. Open source methods are also used to make data more open, processes more transparent, and “secret recipes” like design files for farming equipment, housing, and 3D printable parts available to everyone.
In this series, hear stories about people who got started in open source many moons ago, or just yesterday. Find out what it was like, what lessons they learned that they can pass on to you, and how open source has changed their lives. Open source is about creativity, innovation, and making things better. How can you get involved today?
What do you mean by open-source contribution?
Open-Source Software is a type of software whose code is publicly available to use and modify. Open-Source Contribution involves contributing to the development or improvement of open-source software.
Some popular Open-Source Software are the Linux Operating System, Android, Mozilla Firefox, Chromium (which powers Google Chrome and Microsoft Edge), VSCode IDE, VLC Media Player, WordPress Content Manager System, etc.
Open Source is something each one of us is inevitably using every day, possibly without being aware of it. Interestingly the code that resulted in the first manned mission to the moon is also open-sourced. Yes, I am talking about Apollo 11.
Why should I contribute to open-source?
Ever wonder if all these projects/software were single-handedly maintained by a single developer?
What would have been its impact on them and pretty much on us?
The software would not have had so many features and upgradations. This is where open source contribution comes in. Contributors from around the world help develop and improve the software for every one of us who use it. Being a contributor will give you the super-power to be a part of something that is impacting so many lives.
Apart from the impact that you get to create, it also helps you become a better developer and with time a good mentor, leader, and passionate team player.
Prerequisites before starting to contribute
Learn a programming language
Since open-source contribution requires you to read/write code if you want to be involved in its development, you are required to learn a programming language to get started. You can get started with any language of your choice. You can easily learn another language at a later stage if a project requires it.
Many people help with documentation, translation, etc as well which does not require programming. If you do not want to contribute as a developer then you can skip this step.
Get Familiar with Version Control Systems (VCS)
When we are working on a big project, it is extremely important to store all the changes that are being made to recall it at a later stage. Version Control Systems are software tools that help with it. They keep track of all the modifications that happen over time in the source code as versions. They also allow us to go through older versions and revert to an old version if required.
You can read more about VCS here – What is version control?
There are many version control systems such as Git, Mercurial, CVS, and SVN. Git is the most popular and most widely used version control system in the industry.
Git is the most popular open-source distributed VCS used with most commercial and non-commercial projects.
These resources might help you learn Git from scratch:
In the initial stages, this cheat sheet might be very handy: GIT CHEAT SHEET
GitHub is a code hosting platform for collaboration using the Git Version Control System. In layman’s term, it is the place where you keep all your projects and multiple people can work together on those projects.
Good resources to get started with GitHub:
- GitHub Learning Lab
- Git & GitHub Crash Course For Beginners – Traversy Media
- Git and GitHub crash course from FreeCodeCamp
Note that you do not need to be a master in VCS/Git/GitHub to start contributing. Once you are comfortable with the basics, you can start contributing to open-source.
How to get started with open-source contribution?
Open Source your projects
If you have already done some projects, open-sourcing your projects might be a good way to get started. Put it on GitHub and seek contributions from the community. This will not only add value to your project but will also help you to collaborate with many developers around the world.
Many widely-used frameworks and libraries were open-sourced by individual developers. Several people started collaborating and maintaining these projects after the projects got popular.
If you do not wish to start with your project, it is totally fine to move to the next step directly.
Solve beginner-friendly issues
Solving a beginner-friendly issue will help you get started with contributing to an existing project.
You can get started by making your first contribution here.
Here are some good resources for finding beginner-friendly issues:
Alternatively, one can go to GitHub and search for easy, beginner-friendly, or good first issues.
The following links might be helpful:
- Good First issue is:issue is: open label:”good first issue”
- Easy Issue: is:issue is: open label:easy
- First Timer Issue: is:issue is:open label:first-timers-only
You can then select or filter repositories based on your interest.
Notice “is:open” in all of the above links. This denotes open issues that have not been resolved yet.
While solving issues do check if the same issue is being taken up by someone else or not. This means that if you find an issue in the codebase and someone else has already raised a PR, make sure not to pick up that issue.
Start contributing to Open-Source actively
- Find projects or organizations that you are interested in contributing to.
- Go to their GitHub repository, read the documentation, and search for first-timer issues as mentioned above.
- Try to work on as many issues as you can either across projects or for a single project.
- Join their IRC channel (Gitter/Discord/Slack, etc.). Introduce yourself and ask for help when stuck. You can find the link to the channels on their GitHub pages.
- You can also create issues after running the application locally.
- Once you are comfortable with contributing to open-source, start participating in open source programs.
Open-Source Programs/Contests you can participate in
There are many open-source coding programs that you can participate in.
- Google Summer of Code (GSoC)
GSoC is the Olympics of Open Source. It is a global program focused on encouraging more student developers to do open source software development.
Students work with one of the selected open-source organizations for 3 months and get a handsome stipend on completing the project. Students need to propose changes that they want to work on to get selected.
It is a good idea to start contributing to your favorite orgs/project much before GSoC.
HacktoberFest is a month-long celebration of open source software carried out in October. You can sign up anytime between October 1 and October 31.
It is open to everyone in the global community!
One needs to complete a certain amount of quality PRs to get swags in return. The swag motivates many people to get started with open-source contributions through this program.
- GirlScript Summer of Code
GirlScript Summer of Code is a 3 month long Open Source program during summers conducted by GirlScript Foundation, started in 2018, to help beginners get started with Open Source Development while encouraging diversity.
Note that it is open to everyone and not just girls as the program name might suggest.
Outreachy (previously the Free and Open Source Software Outreach Program for Women) is a program that organizes three-month paid internships with free and open-source software projects.
It is for people who are typically underrepresented in those projects.
This is generally carried out biannual throughout the year.
- Rails Girl Summer of Code
Rails Girls Summer of Code is a global fellowship program aimed at bringing more diversity into Open Source.
Successful applicants are paid a monthly stipend, from July-September, to work on Open Source projects of their choice.
- MLH Fellowship
The MLH Fellowship is an internship alternative for software engineers.
Instead of working on a project for just one company, selected candidates contribute to Open Source projects that are used by companies around the world and are paid a competitive stipend during this tenure.
Other open-source programs: Open-Source-Programs
So, what are you waiting for? Let’s get started with open-source!
Join our discord community to have healthy discussions on programming, interviews and job search.