An introduction to GitHub for your open source project

A beginner's guide to GitHub

GitHub logo with navy background
Image credits : 

From GitHub

From Google to The White House, everyone is on GitHub. If you don't know what GitHub is, keep reading, because I'm also going to talk about why it's one of my favorite websites and share some of its most popular features.

What's GitHub?

GitHub is a web-based Git repository hosting service that offers all of the distributed revision control and source code management functionality of Git combined with a unique set of other features.

In layman's terms, it's a place where every developer (or aspiring developer) can share their source code and stories with the world. It's a huge and highly respected collaboration platform, and it's used by just about every big technology company you can think of: Google, Twitter, Mozilla, Facebook, IBM, Netflix, Dropbox, and PayPal, to name a few. So, why did they all choose GitHub?

It's the place to store your code

Let's be honest—if you're not hosting your source code on GitHub right now, your open source project pretty much doesn't exist. I have a lot of respect for solutions like Launchpad and BitBucket, but GitHub is still the place to go if you need a place to store and share your source code.

Huge developer community

There are 8.2 million people collaborating across 19 million GitHub repositories. As GitHub says on its about page, "Developers from all around the world are building amazing things together. Their story is our story."

GitHub as a replacement for LinkedIn

I've been using LinkedIn for quite some time and love it, but the truth is, you can say pretty much anything you want on there. Say, for example, that you have C++ listed as a skill on your LinkedIn profile. Your connections can endorse you for it, but it doesn't give employers any idea of how good you are at it, or whether you can program in it at all. With GitHub, they can see your knowledge and skills in action.

Now don't get me wrong—GitHub is not a replacement for your resume, but it's a place where you can show your skills instead of just talking about them. One project, called Open Source Report Card, grabs your public GitHub data and converts it into a format that's pretty similar to a resume.

GitHub pages

Let's say you want to build a website. You have a couple of options: You can buy a domain and hosting service and build it from scratch, or you can use a "freemium" service like Wix, which allows you to create a stunning website in minutes, but limits what you can do with it.

So if you want to have full control, showcase your website development and design skills, and do it all free of charge, what should you use? GitHub Pages!

With GitHub pages, you can create a personal, organization, or project website with ease. Don't believe me? Check out my online portfolio! It took me less than 15 minutes to create using a template offered by GitHub, and I have full control of the site. I even managed to alter the design of the original template!

GitHub training

GitHub uses Git, which is a distributed revision control system designed and developed by Linus Torvalds for Linux kernel development back in 2005. Since then, it's become the most widely adopted version control system for software development there is.

But what if you don't know how to work with Git? Is that a problem? Heck no! GitHub provides resources for working with Git using GitHub as a platform in the form of free training kits and online courses. Whatever learning option you choose, you'll see that your materials are divided into three difficulties: beginner, intermediate, and advanced.

GitHub gists

This is GitHub's newest service—a place where you can share text or code snippets publicly or privately. Public gists can show up in search results and be found by anyone with access to GitHub, while private gists can only be accessed by those with the link.

Atom Text Editor

When I first found out about Atom, GitHub's hackable text editor, I fell in love with the site all over again. So just how "hackable" is it? Completely. You can "hack" every single thing inside of that text editor. Don't know how? Not to worry, there are thousands of packages already available, all of them hosted on GitHub and offered free of charge.

Don't like the design of the editor? Pick one of thousands of alternate "flavors." You can customize your installation to be anything from a simple text editor to a fully integrated development environment. You can even write your publications, blog posts, or books in it. In fact, I used it to write this very post!

GitHub student developer pack

A few days ago I got a letter from my college professor stating that as a student, I'm eligible to receive a GitHub student developer pack, which offers more than 15 free and paid development tools from GitHub and its partners at a huge discount.

Amazing support

I'm a developer. I use lots of stable and unstable software and services on a daily basis, and it's important that I get support as fast as possible. I once had an issue with a GitHub feature and reached out to them for support. I received an email response within 20 minutes. Support was eventually able to explain exactly why I was having the issue and what I had to do to resolve it. I have to give them a straight 10/10 for their support.

Any reason not to use GitHub?

If you're developing proprietary software, there are plenty of reasons you shouldn't post the source code on GitHub, but that shouldn't stop you from working on open source software in your free time. Doing so will benefit you when you start looking for a new job, benefit the developers, and benefit every single user of that open source project. GitHub offers you a wide variety of opportunities, and you should take advantage of them!

Beginners to
Open Source

A collection of articles about how to get started in open source.

14 Comments

Don Watkins

Thanks for a great article. You've really added to my understanding and appreciation of Github. I setup an account after AT02014 but haven't used it because I really didn't know how to use it. Now, thanks to your writing I may venture back.

Vote up!
5
Vote down!
0
Eudris Cabrera

Github also can be used like a great tool for educators.

1) GitHub Repositories allows to maintain and distribute starter code for students assignments.
2) Pull Requests are a great way to give students feedback on their code. Give suggestions for improvement and observe how they adapt their code based on your feedback.
3) GitHub Organization to easily maintain all of your students’ code in one place.

With GitHub we can teach and learn better together.

More information at https://education.github.com

Vote up!
4
Vote down!
0
kjcole

Sady, at the moment "The Open Source Report Card is temporarily (hopefully) out of service due to breaking changes with the GitHub API. Thanks for your understanding!

Vote up!
3
Vote down!
0
r3bl

I have actually suggested that we remove this sentence all together from the article. But I still think that it is an amazing project and I really hope that it will go back online soon.

Vote up!
1
Vote down!
0
charlie

Thanks for the clear and useful article. I plan to share it with our high school help desk students. It may become required reading!

Vote up!
2
Vote down!
0
RG

Great article! Except for one important point: GitHub can and is absolutely used for developing proprietary software. There are many private and publicly-traded companies using "private repositories" to develop closed-source software securely on the cloud. There is also a version of GitHub called GitHub Enterprise which is a "hosted" solution, meaning the code never touches the cloud.

Vote up!
1
Vote down!
0
R

Please stop with the "GitHub as a replacement for LinkedIn" meme. Most programmers do not have the privilege of working on GitHub hosted repos or open source at all.

Vote up!
0
Vote down!
-1
r3bl

Working on a proprietary software does not stop you from working with an open source software in your free time. You can only benefit from it when you're looking for your next job.

Vote up!
1
Vote down!
0
Hunkah

I agree that it would be awesome for everyone to contribute to open source. I too try to contribute as much as I can... Unfortunately there are many people that are under contract with their respective employers that forbids them to contribute to any other project, whether it be open source or proprietary. Some contracts even say that anything you build while under contract is their "Intellectual Property". So no, no everyone can contribute or even has "free time" to do so.

Vote up!
0
Vote down!
0
r3bl

I was not aware that these kinds of contracts exist. Thanks for letting me know!

Vote up!
1
Vote down!
0
Syme

"there are many people that are under contract with their respective employers that forbids them to contribute to any other project, whether it be open source or proprietary. Some contracts even say that anything you build while under contract is their "Intellectual Property.""

In many jurisdictions overly-broad restrictive covenants and even non-compete (post-separation) contractual terms are not enforceable, so one should investigate specific instances where contract terms are inhibiting one's action. An employer can put all sorts of terms in a contract that might not be legally enforceable (short of pissing off the boss--but that can happen without contract terms anyway). Check.

And this issue might be avoided up front by refusing to accept unreasonable restrictive terms and negotiating a contract that, absent extraordinary circumstances, respects the employee's autonomy and right to think and build outside the scope of employment.

From the employer's perspective, it would seem bad policy--as in off-putting to the most creative candidates--to force prospective employees into a contract where they cannot be creative outside of employment and where everything they make, without limit, belongs to the employer. That seems so unreasonable, even today, it should be repellent to everyone.

Vote up!
0
Vote down!
0
Noel Peatfield

Thanks for the article. I really like the way GitHub helps the user to understand quickly who is doing what and how often, it's easy to track activity.

Vote up!
1
Vote down!
0
Andre Ramakers

Great article! Perfect reading for my morning coffee and an opening for continued reading this evening.

Vote up!
2
Vote down!
0
amine

useful article Thanks for sharing =D !!

Vote up!
0
Vote down!
0