A Brief Meditation on Github

By, Neo Ellison

So today I wanted to let everyone in on a little secret that every computer engineer knows. Since my readers come from some pretty varied walks of life I wanted to give a little insight to the icon on the left that looks like a squid that wants to be a kitty. That icon links one to a quite amazing site known as Github. For those of you not familiar, think of it as a place for code to live, for others to see it, and to collaborate. Github provides cloud storage for any number of projects, called repositories, a user wants and base accounts can be used for free. Because of its power and versatility it is used for everything from full-fledged websites like Twitter.com to my humble attempts at web development, don’t judge.

The genius of this site is not the storage, but the ability to sync and track projects. Imagine you are writing a book the course of a year, every day you save the new verses to your work. Now imagine that each save, instead of just overwriting your document, you actually commit these changes to a kind of timeline. So at the end you are left with not just the final work, but also all the intermediate steps, additions, revisions, and records of deleted sections to your book. This kind of timeline is what people are talking about when they say a git. Further because the git lives online it is share-able, sync able, and allows for seamless collaboration. So sticking with our book example, imagine that with just a few commands in the command prompt you can download your story and work on it from any computer with an internet connection. You can share it with friends and family. You can even allow an editor to clone your book make changes to it and then submit them back to you allowing you to merge them into your book. This flexibility is the essence of how Github has become the backbone of most collaborative coding projects. After all, coding is just a how-to manual written for a computer.

Now that you have something to hold on to as far as what Github is, what might one do with it? Well besides the obvious, working on an enterprise level code base, Github can function as an augment or even a substitute for a resume. There is a trend where employers increasingly are less interested in your pedigree and just want to know what you can do. This is probably best demonstrated on the jobs page for the company Knewton: http://www.knewton.com/jobs/cheat/. Additionally, Github functions well for not-so-aspirational projects, I have a friend that uses Github to store his .vimrc file just so he will always have his custom settings no matter what computer he is on, (side note Go Vim!). It could even be used for something as simple as keeping your collection of poetry in an easy to find place.

Anyway, for you non-technical people out there consider yourself a little wiser on something very important to those who program. And for any engineers who happened to stumble upon this, you don’t have to keep all the coolest toys for yourselves.