Social Coding with GitHub

This is the course content for Social Coding with GitHub, which has been developed and maintained by OpenTechSchool.


Welcome to social coding with GitHub! This course is intended to introduce beginners to the social side of programming. We’ll be looking at one of the most popular sites for social programming: GitHub.

We’ll be using Git, a popular tool for storing and sharing source code. It’s a tool that keeps a copy of your source code, but not just one copy. It keeps track of every version of every file in a repository. In addition we’ll also use GitHub to host your Git repositories online for you.

What we’ll do today

There are two parts to the course today. The first is the core content. This is to get you up and running with Git and GitHub. We’ll create a simple repository and show you how to get it on GitHub. The second part are all optional extras. There are a few really neat things that you can do with GitHub, so we’ve prepared these extra topics for you to explore and try out if you find them interesting. You can do as many or as few of the optional extras as you please.

A bit of history

Git was created in 2005 by Linus Torvalds (who is also the creator of Linux). Linus was looking for an easy way to manage source code for Linux, which has thousands of developers all over the world. Frustrated with current tools, he wrote the first version of Git during a cross-Atlantic flight. It quickly became the defacto tool for storing and sharing source code thanks to its quick speed and versatility.

In 2008 GitHub launched. It allowed developers to share their Git repositories online free of charge. By September 2012 it was hosting 3.7 million repositories and had 2.1 million users. One of the key features of GitHub is the ability to “fork” or copy the repositories of other users. After forking, users can make changes locally and send a “pull request” to the original owner, allowing them to pull the changes back into their repository. This made following and contributing to projects significantly easier, and GitHub quickly became the place to be if you want to share your source code and contribute to other projects.

The course

Extra fun stuff

Reference material