Getting Started with FOSS
Free software means that the users have the freedom to run, edit, contribute to, and share the software. Thus, free software is a matter of liberty, not price.
Check out the definition of open source, and this article for why it is so cool :)
Open source is often the invisible but critical foundation of everything we build and use today: linux, freebsd, ffmpeg, vlc, harfbuzz, nginx, openssh, harper, postgres, opencv, rust, node, python, go, pytorch, git, gitlab, and even the IIIT Hyderabad Mess Portal!
But Where Do I Start?
This is the most common hurdle. You're excited, you want to contribute, but the world of open source seems vast and intimidating. The idea of cloning a massive, unfamiliar repository and trying to fix a bug feels alien and overwhelming.
If you feel this way, you are not alone. Let's reframe the entire approach.
Start with Yourself
Forget about contributing to a massive project for a moment. The best, most meaningful, and most sustainable contributions begin with things that you use. The goal is to solve your own problems first.
Instead of looking for a project to join, look for a problem to solve in your own daily life. This is how you get exposed to new projects and start coding up what you want.
Build Your Own Mini Projects
Start small. Create a tiny tool to solve a personal annoyance or automate a repetitive task. This is your training ground.
- →Struggle to keep up with your e-mail? Create a mail organizer that sorts emails from different professors into folders.
- →Want your calendar to be smarter? Build a tool that automatically pulls your Moodle deadlines into your Outlook Calendar.
- →Have to find someone's birthday? Write a script that searches LDAP for it.
Discover and Use Open Source Libraries
As you build your mini-project, you'll quickly realize you don't have to build everything from scratch. You'll search for libraries to parse a PDF, make an HTTP request, or connect to a mail server.
More often than not, those libraries are open source, and you are now an active user of open source projects! You are learning how different projects work and how they can be applied to solve your specific use case.
Extend and Contribute Back
Sooner or later, you'll find a library that almost does what you need. Maybe the Moodle connector doesn't support your specific authentication method, or the mail library has a small bug.
This is your moment.
You can now dive into that library's code, make the change you need, and submit it back to the original project. Your first contribution isn't a random bug fix for a project you don't use; it's a feature you genuinely need, which will also benefit others :)
Our Open Source Developers Group
"Open source" doesn't just mean contributing to some established library on GitHub. It starts local - find a group of people you know with a common problem and build something leveraging open source tools to solve it!
Here at IIIT Hyderabad, we call this group the Open Source Developers Group, or OSDG :)
Our goal is to build or deploy our own set of open source projects for everything we do on campus. You can find a list of them here!
Start by using projects built by our community. When you find a bug or think of an improvement, you'll have a familiar and supportive group of people to help you make your first contribution. Let's build and learn together!