October came with a lot of excitement for open source contributors, as DigitalOcean launched its #hacktoberfest giveaway. With less than 1 week, we already saw people who are done with the 50 commits challenge, and that is amazing! However, we know that inexperienced developers might feel intimidated by the idea of contributing, for several different reasons. This quick getting started guide will give you some protips on how to overcome initial barriers and join the OSS party.

When the concept of open source software started to get attention, back in the late 90s, it seemed nearly impossible to believe that it would get so popular as it is today, being widely adopted by enterprises and individuals, from big companies to non-IT people.

October came with a lot of excitement for open source contributors, as DigitalOcean launched its #hacktoberfest giveaway. With less than 1 week, we already saw people who are done with the 50 commits challenge, and that is amazing!

However, we know that inexperienced developers might feel intimidated by the idea of contributing, for several different reasons. This quick getting started guide will give you some protips on how to overcome initial barriers and join the OSS party.

Breaking the initial barriers

If you are not sure yet about how contributing to open source can help you become a better developer, have a look at this post from @GeeH on dev-human: Open Source for Personal Gain.

Another relevant post on dev-human related to open source is from @meadsteve, about code reviews: Taking all criticism in a positive light.

Getting familiar with the tools

Git today is the standard tool for code management, and GitHub is the most popular code hosting platform for open source projects. Anyone who wants to contribute to open source should start by getting some practice using those tools.

The website try.github.io offers an interactive tutorial where you can learn Git in a very practical way. To set up Git in your local environment, you can head to this Github tutorial: Set Up Git .

Its also very important to understand the usual flow of contributions with Git and GitHub. This GitHub Flow Guide will help you understand how the process of open source contribution usually works.

Communicating

Before starting to work on a project, either if it’s a new feature or a bugfix, it’s always a good idea to talk with the other developers involved, get some insights about code guidelines and also to make sure you are not working in something that is already being developed by someone else. IRC can be a good place for that, since it offers a more real-time communication. Many open source projects have dedicated channels on Freenode, and you can easily connect to this network using their web chat client.

Finding a Project

With so many open source projects out there, it might seem hard to find the right one to get started. If you don’t know where to look for, consider these two strategies for your search:

A project you are familiar with – you might feel more motivated to contribute to a project you already use, and like. Having this familiarity will help you understand more easily the system and what you could do to improve it.

A project your friend contributes to – if you have friends who contribute to open source projects, its a good idea to ask them for recommendations. They might even have their own OSS projects that could use your help. Developing with friends is always fun!

If you are still undecided, here are three suggestions of PHP open source projects that are super friendly and welcoming to new contributors:

Joind.in

Joind.in is widely used by conferences, mainly focused on obtaining feedback from attendees, for the event organization and also for the speakers. They are currently working on a new version of the platform: https://github.com/joindin/joindin-web2

Bolt.cm

Bolt is a simple and lightweight content management system built on top of the microframework Silex. Repository: https://github.com/bolt/bolt

Phansible.com

Phansible provides a web interface where you can build and download a Vagrant + Ansible bootstrap setup for your PHP project. Repository: https://github.com/Phansible/phansible

Want to suggest other PHP projects to the list? Leave a comment 😉