In this post I’m going to share with you a few reasons why I consider GitHub as my favorite technology-related company. If you still don’t know what GitHub is, you should continue reading this article because I’m going to share with you some of the most popular features GitHub has integrated in their service.
What is GitHub?
GitHub is a web-based Git repository hosting service, which offers all of the distributed revision control and source code management (SCM) functionality of Git as well as adding its own features.
This is the definition I borrowed from a GitHub Wikipedia article. In short terms, it’s a place where every developer (or a student soon-to-be developer like me) can share their source code and their stories with the world. It’s a huge and highly respected collaboration platform.
It’s been used by every big technology company you can think of. Let me give you a few examples: Google, Twitter, Mozilla, Microsoft, Facebook, Adobe, IBM, Yahoo!, LinkedIn, Netflix, Dropbox and PayPal. Still think GitHub doesn’t have a huge support? What if I told you that White House uses it too? I bet you didn’t know that some of these organizations even participate in the open source community at all!
So, why have they all chosen GitHub as a platform?
A Great Place to Store Your Code
Let’s be honest, today, if you’re not hosting your source code on GitHub, your open source project does not exist. I have a lot of respect for other solutions such as Launchpad and BitBucket, but lets be honest, GitHub is the place to go if you need a place to share your source code.
Huge Developer Community
There are 8.2M people collaborating right now across 19M repositories on GitHub. Developers from all around the world are building amazing things together. Their story is our story.
I borrowed this quote from GitHub’s press page. Over eight million people is not a small number, and they’ve all chosen GitHub as their choice. Together, they’ve created around 19 million repositories.
GitHub as a Replacement for LinkedIn
Don’t get me wrong, I love LinkedIn and I’m using it myself for quite some time (you can find my LinkedIn profile here). But the truth is, you can post pretty much anything you want on LinkedIn and you can perfect your profile in any way you want. GitHub does not allow you to do the same.
Everything you publish on GitHub, you prove it right away.
As an example, lets say that you posted on LinkedIn that you know how to program using C++. Your connections can endorse your skill and your employer can be sure that you know how to program using C++ if enough of your connections endorse it. But, if he visits your GitHub profile, he can see your C++ knowledge in action. He can read the code you’ve posted and based on the code, he can make sure that you’re a creative and a collaborative person, and that you have an experience in working with C++.
Now don’t get me wrong, your GitHub is not a replacement for your resume and you should not think of it as a replacement for your resume. But, it is a place where you can show your skills instead of talking about them. And there are some projects like Open Source Report Card that grabs your public GitHub data and represents them in a way that’s pretty similar to a resume (check out my Open Source Report Card here).
Now, let’s say that you want to build a website that represents you, your organization, your company, or anything else. You have a couple of options. You can buy your own domain and hosting service and build it from scratch. You can choose some freemium service like Wix, where you will create a stunning website in minutes without any coding knowledge, but you will be limited to the features that service allows you to do.
So, lets say that you want to have a full control over your site, without any limitations what so ever, and you showcase your website development and design skills in the process, all of that completely free of charge. The solution? GitHub Pages! You can create your personal website, a website for your organization or a website for your project straight away. And it’s not really complicated to do that. Don’t believe me? Check out my online portfolio! It took me less than 15 minutes to create it using a template offered by GitHub, and I have a full control of that website, which explains how I managed to alter the design of the template called Hack by Ben Bleikamp (see how original template looks like here).
GitHub uses Git, which is a distributed revision control system designed and developed by Linus Torvalds for Linux kernel development back in 2005. It has become the most widely adopted version cotrol system for software development there is (source).
Now, lets say that you don’t know how to work with Git, the same way I didn’t know how how to work with Git not too long ago. Problem? Heck no! All resources for working with Git using GitHub as a platform are already provided for you by GitHub itself! GitHub offers you free resources (or training kits as they call them) here and you also have a few free online courses available here. Whatever learning option you choose to use out of those provided, you’ll see that your materials are divided in three difficulties: beginner/foundations, intermediate or advanced.
This is the newest addition to the GitHub services. It’s a place where you’re able to share your text or a part of your code publicly (which means that your gist will be searchable by a search engine and viewed from your profile) or privately (which means that only people you choose are going to be able to view it, and you share Gists with them by simply copying a link).
Atom Text Editor
After I found out about Atom, I fell in love with GitHub all over again. Atom is a hackable text editor for the 21st Century (as advertised by GitHub).
So, a hackable text editor, what does that even mean?
That means that 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 your favorite flavor of Atom out of thousands of them available here. You can customize your installation to be anything from a simple text editor to a full IDE (short for Integrated Development Environment). Heck, you can even write your publications, your blog posts or your books in it. In fact, I even used it to write the post you’re currently reading (see the picture below) in the same way I’m using it to write every single post on my blog.
GitHub Student Developer Pack
This is something I recently discovered. A few days ago, I got a letter from my collage professor stating that as a student, I’m eligible to get a GitHub Student Developer Pack, which offers me over 15 free and paid development tools from GitHub and its partners at a huge discount. Now, I should point out that I’m still in the verification process at the time this article is published. This process could last for weeks! But, I should also point out that a guy called Alex Fernandez from GitHub staff has personally apologized to me for that. The reason why this process lasts for so long is because they have to review each request manually, which does take quite some time.
GitHub Has an Amazing Support
I’m a developer. I use a lot of stable and unstable software and services on a daily basis and it is important to me to get the support as fast as possible. I had an issue with a certain GitHub feature so I decided to contact GitHub support. I’ve got an email response in like 20 minutes, and they’ve been very helpful in the process. They’ve managed to explain to me why I had this issue and what I had to do to resolve it. I have to give them a straight 10/10 for their support.
So, if you are a developer, is there a reason not to use GitHub?
Honestly, I don’t think there is. If you’re developing a proprietary software, there are plenty of reasons why you should not post the source code of your application on GitHub. But, that should not stop you from working on open source software in your free time. By doing so, it will benefit you (once you start looking for a new job), it will benefit the developers behind a project that you’ve decided to be a part of, and it will benefit every single user of that open source project. GitHub offers you a wide variety of opportunities and you should take advantage of them!