If you’ve always wanted to feel connected to computer programmers (of all levels), you should join github. My only caution is that it’s confusing as hell. Most accessibly, it’s a Facebook for hackers. It’s a collaborative space that does “version control” on software. Version control (or revision control or source control) is important, because it allows multiple people with work on a project, while preventing conflicts. Examples of non-source controlled collaboration would be sharing a folder in Dropbox or giving lots of people write access to an HTML file in some public directory. What happens is that someone could overwrite your changes, if they have an older version of the file, and save it after you’ve made changes.
Every programmer who expects to work on a team should know how to use version control software. In my undergrad, it was CVS. In grad school, it was SVN. From now on, it will mostly be git.
Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency.
Git is easy to learn and has a tiny footprint with lightning fast performance. It outclasses SCM tools like Subversion, CVS, Perforce, and ClearCase with features like cheap local branching, convenient staging areas, and multiple workflows.
Every new programmer should have a github profile– (to clarify, github is the social network, while git is the program). It connects you to cool projects and stores informative little heat maps of your activity.
I’ve used my account three times.
- my LabBunnies game
- my dissertation project
- a Global Game Jam game
Over time, I still don’t get the approach or philosophy of git. SVN and CVS seemed to make more sense, but are probably just simpler. I’ll write an update as soon as I figure out how “branches” work. For now, they are multiple instances of my work in different contexts, or multiple dimensions for which such realities exist.
To help me, I’ve saved the official “cheat sheets’ from github, among others:
Here’s a great tutorial: http://lifehacker.com/5983680/how-the-heck-do-i-use-github