Dev Bootcamp Week 1
It's like learning to play the guitar -- so much FUN!!
March 20, 2015
This is my new desk setup!
The Shell
For our first week, dbc wanted us to learn about the unix shell(basically, your operating system), bash (the language that speaks with the operating system), terminal (the window to execute commands), the commandline, version control and git / github.
As a musician, I often find myself relating programming to playing music, playing in a band, or learning to play the guitar so here I go. :)
Version Control
Version Control in programming is a really cool concept, one that exists across all disciplines actually. Say I came up with a really cool chord progression on my guitar. I might record that on garageband and call it version 1. The next day I work a little more, and add more chords to the song. I record this and call it version 2. Then I come up with a melody, reocrd, call it version 3. I start writing lyrics, record it, but maybe I don't end up liking what I recorded. In this case, I can roll back to version 3 and start over!
Another really cool thing that version control allows you to do is collaborate with others. I might take all the different versions of the song I recorded and put them up on dropbox, for example. Then my badnmates can pull those down onto their garageband, record a bassline that goes with the song, call it version 4 and send it back up to dropbox so I can hear it. Version control basically allows you to keep close track of everything you do in a coding project so that you can add, edit and collaborate while minimizing risk of losing your work or stepping on other people's toes.
Git vs GitHub
Git is a really cool tool that allows you to do version control. Git allows you to copy a codebase from other projects, allows you to 'fork' your own version of it, make changes, take snapshot of your changes, keep a history of all your changes (and changes of others), and allows you to merge your chnages back into the main codebase when you're ready to do that. It's a really powerful tool that you can execute from the commandline.
GitHub (or GH for short wut!) is an open-source code repository on the internet that does the same thing git does - version control. I can't think of a really good music comparison to this, but it would be like having a dropbox where you can share music, or maybe if you made an AIFF(uncompressed audio) file format available on your bandcamp for people to download and maniuplate.
On GH you can find a bunch of cool open-source projects on which you can collaborate with, or put your own code up for others to play with. Because GH uses git to version control, once again, you won't be stepping on anyone's toes and vice versa!
tryGit is a pretty cool interactive tutorial on Code School if you want to try learning git.