Contributing to open-source projects is a great way to get started learning to code. Once you’ve found an open-source project, Github’s Fork and Pull request mechanisms can make the process of contributing code straightforward. This guide will take you through the process of finding and contributing code to an open-source project using Github.
Have you ever had a great idea for an open-source project but don’t know where to start? The most common way to discover projects is to use GitHub’s search functionality. You can search for all of the things a project does (language, technology stack, etc), or for projects that are looking for help. The other advantage of using GitHub’s search is that you quickly filter out all of the pet projects and find everything that has the potential for a serious contribution.
Improve software you rely on
Lots of open source contributors start by being users of software they contribute to. When you find a bug in an open source software you use, you may want to look at the source to see if you can patch it yourself. If that’s the case, then contributing the patch back is the best way to ensure that your friends (and yourself when you update to the next release) will be able to benefit from it.
Finding a Project
On our Twitch stream, we answered them all. One of the coolest things our viewers loved, is where to find projects. It can often be a daunting experience when you first look at Open Source. There are so many projects and so many issues you almost don’t know where to start. Hacktoberfest has made it easy by showcasing projects on their homepage.
But did you also know you can search trending Open Source projects on GitHub? You can even filter by programming language, spoken language, and even date. We ran through an example on how to find a top Ruby project. If you check out our search terms you’ll find the top Ruby projects for today.
You can even search by developers. If you want to find a top developer contributing to the language you want to write, then you can do just that too. We found a Ruby dev with nearly 6,000 contributions just this year!
There’s so many ways to find projects you’re interested in. Taking a look at trending open source repos are just one way of doing this.
Meet people who are interested in similar things
Open source projects with warm, welcoming communities keep people coming back for years. Many people form lifelong friendships through their participation in open source, whether it’s running into each other at conferences or late night online chats about burritos.
Open Source Friday stream
If you missed this epic talk on our Open Source Friday stream, don’t worry. It’s all recorded and you can check it out on YouTube. You can always join us on one of our Open Source Friday sessions. You’ll meet lots of awesome developers, connect with the community, and have the chance to ask questions from both GitHub staff and open source maintainers.https://www.youtube.com/embed/nRZCqe7fyZA
Follow us on our Twitch Channel and join our Meetup Group. We post all our upcoming Open Source Friday streams, as well as meetups for your region. Looking forward to seeing you on the next live stream, and good luck with all your Hacktoberfest Contributions.
Find mentors and teach others
Working with others on a shared project means you’ll have to explain how you do things, as well as ask other people for help. The acts of learning and teaching can be a fulfilling activity for everyone involved.
Bash Scripting eBook
This is an open-source introduction to Bash scripting guide/ebook that will help you learn the basics of Bash scripting and start writing awesome Bash scripts that will help you automate your daily SysOps, DevOps, and Dev tasks. No matter if you are a DevOps/SysOps engineer, developer, or just a Linux enthusiast, you can use Bash scripts to combine different Linux commands and automate boring and repetitive daily tasks, so that you can focus on more productive and fun things.
It’s empowering to be able to make changes, even small ones
You don’t have to become a lifelong contributor to enjoy participating in open source. Have you ever seen a typo on a website, and wished someone would fix it? On an open source project, you can do just that. Open source helps people feel agency over their lives and how they experience the world, and that in itself is gratifying.
SQL Basics eBook
This is an open-source introduction to SQL guide that will help you learn the basics of SQL and start using relational databases for your SysOps, DevOps, and Dev projects. No matter if you are a DevOps/SysOps engineer, developer, or just a Linux enthusiast, you will most likely have to use SQL at some point in your career:
Build public artifacts that help you grow a reputation (and a career)
By definition, all of your open source work is public, which means you get free examples to take anywhere as a demonstration of what you can do.
Git and GitHub eBook
This is an open-source introduction to Git and GitHub guide that will help you learn the basics of version control and start using Git for your SysOps, DevOps, and Dev projects. No matter if you are a DevOps/SysOps engineer, developer, or just a Linux enthusiast, you can use Git to track your code changes and collaborate with other members of your team or open source maintainers:
Collect repository information
How many projects does a repository have? It’s a no-brainer, use the REST endpoint for projects. You need to handle pagination if you want to get the exact number. But first, we just want to know if a repository has at least a couple of projects. “A couple” is a vague term, we can specify it later. One is not enough, because the owner might have been playing with this feature. She created a single project and never used it beyond the initial testing. So let’s find out which repos have at least 2 projects. We don’t even have to worry about pagination, the first result set is enough to get this information.
Pagination is not the biggest problem here. We want to collect all sorts of information for a repo. How many milestones does it have? How many of them are open? How many issues does it have, both open, and closed? How many labels, releases, pull requests, and watchers? How many, how many, how many?
To get more than ten attributes for each of the top hundred repos we’ll need more than a thousand queries. I don’t think GitHub likes it.
GraphQL was created to address these woes. You write a single query and tell it what information you need about some objects (repositories in this case), and you get back a json with exactly the data you requested.
Like any other skill, it will take time to develop your Github skills, but once you do there is a wealth of projects out there that need help. Finding work to do on Github is all about finding large open source projects and then looking at the issues list to see what needs help.