Getting Started With Open Source
The open source community provides a great opportunity for programmers to distinguish themselves; and by contributing to different projects, developers can improve their skills and get inspiration and support from like-minded people. They are able to get experience
What is Open Source Software(OSS)?
Open source software is software with source code that anyone can inspect, modify, and enhance.
“Source code” is the part of software that most computer users don’t ever see; it’s the code computer programmers can manipulate to 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.
Why contribute to open source?
Contributing to open source can be a rewarding way to learn, teach, and build experience in just about any skill you can imagine.
Why do people contribute to open source? Plenty of reasons! but we wont get into much detail for now.
- Learn new skills
- Improve existing skills
- Meet people who are interested in similar things
- Find mentors and teach others
- Build public artifacts that help you grow a reputation (and a career)
What to consider before you go open source
Okay, so you can’t wait to start your first OSS project. Let’s go through a few tips that might help you choose what to work on.
Programming language
The most fundamental technology behind any application is a programming language. The most popular languages on GitHub (a collaborative code hosting platform) are JavaScript, Python, Java, Ruby, and PHP. There are a multitude of projects that might suit your skills and taste.
Since we at RubyGarage love Ruby and its ecosystem, we’d like to share several live OSS codebases for beginners:
- Sinatra, a Ruby-based library that helps create Rails-free apps;
- Hanami, a modern web framework built with Ruby;
- Chef, a Ruby-based framework used for automating your work with the server;
- Goby, a framework that lets you build text role playing games;
- JRuby, a second top Ruby interpreter.
Although we mentioned only five active open source projects that need help, you can start your jorney as a Ruby contributor with them.
Type of project
After you’ve chosen the language you want to work in, you need to choose the type of project you prefer. GitHub projects are categorized into folders called Showcases. Here are some examples of Showcases: “security”, “virtual reality”, “text editors”, and “CSS preprocessors.” Just choose a topic that interests you.
However, we do recommend paying extra attention to those projects that would be used by broad spectrum of people so you’ll have the chance to test your code on a large real-world audience. For example, the “Emoji” Showcase contains 25 repositories that represent its popularity. Another tip on how to choose an OSS project is to start working on software you already use or software you’re interested in using. This will keep you motivated to keep on working.
Anatomy of an open source project
Every open source community is different.
Spending years on one open source project means you’ve gotten to know one open source project. Move to a different project, and you might find the vocabulary, norms, and communication styles are completely different.
That said, many open source projects follow a similar organizational structure. Understanding the different community roles and overall process will help you get quickly oriented to any new project.
A typical open source project has the following types of people:
- Author: The person/s or organization that created the project
- Owner: The person/s who has administrative ownership over the organization or repository (not always the same as the original author)
- Maintainers: Contributors who are responsible for driving the vision and managing the organizational aspects of the project (They may also be authors or owners of the project.)
- Contributors: Everyone who has contributed something back to the project
- Community Members: People who use the project. They might be active in conversations or express their opinion on the project’s direction
How to contribute to open source projects
When we speak about free software, we can’t avoid talking about GitHub and related tools. Let’s see what GitHub is and how it helps you to participate in open source projects.
Get to know GitHub
GitHub is the most popular platform for open source collaboration, so you’ll probably use it when exploring the world of OSS. First, you need to create a GitHub account and read the guide that helps you get started. On GitHub, you can contribute to projects by submitting issues and contributing code. Submitting issues means sending messages about errors in applications and suggesting ways to fix them. Contributing code involves sending pull requests with your corrections and improvements.
Learn the basics
When working with GitHub, you should know how to use Git — one of the most popular version control tools (also known as revision control tools). Because developers constantly make changes to their code, they need a system that can manage those changes in a central repository. In this way, everyone involved in the development process can download a given piece of software, make changes, and submit updates.
Ways to contribute to open source projects
Let’s highlight the most common ways to contribute to OSS projects.
1. Create your own open source project
Every project should start with an identified need. If you feel that existing projects on GitHub or Bitbucket don’t offer the functionality you would like to build, then create your own open source solution. Besides an initial project draft, you should consider the following set of questions:
- What skills do you need for your project?
- How much time are you willing to spend on your project?
- What problem(s) does your software solve?
- How many potential users are there for your product?
2. Create open source alternatives to commercial software
Today’s commercial projects actively engage open source solutions. Many companies base their projects on free tools. When there’s a huge selection of software, you don’t need to reinvent the wheel. This is why it’s useful to play around with free software that can replace similar proprietary software, or that fixes an issue you’ve recently faced.
Another reason for replacing commercial solutions with open source software is eagerness for real innovation and growth. Commercial software claims to be innovative, but its final goal is turning a profit. Open source software unites best practices, great quality of code and passionate developers willing to code just because they like to.
3. Contribute to existing open source projects
You can find many projects you are free to participate in on GitHub — a developer-oriented platform with a simple but essential set of functionality. GitHub attracts developers with public APIs, a sleek and frequently updated UI, gists (Git repositories) that allow you to share pieces of code or even whole applications, and much more. You can contribute to free software in many ways. Developers can fork projects, make changes to code, and send pull requests. And quality assurance is always appreciated. Sometimes developers are too busy or too lazy to check the quality of their code. So go ahead and report a bug or try to fix it — your help is appreciated.
You can reach the hottest GitHub projects by following the “Trending” link. And in order to make your search more relevant, use advanced search: select the language you would like to code in and choose “best match” criteria. Best match ranks projects according to relevance, taking into account the number of forks (which represents how actively the project is updated) and stars (“likes”, in the language of Facebook). Most projects have known issues (however, some don’t) with labels like “bug”, “discussion”, “security”, or “refactor”, or other labels according to the level of difficulty: “easy”, “medium”, “hard.”
References :