Skip to content

Instantly share code, notes, and snippets.

@brntbeer
Last active January 3, 2016 17:08
Show Gist options
  • Save brntbeer/8493407 to your computer and use it in GitHub Desktop.
Save brntbeer/8493407 to your computer and use it in GitHub Desktop.
Why version Control? Built with <3 for Rails Girls (in SF)

Why even bother?

Learning to program can sometimes be a lot of pressure on a person. First you have to learn how to even program, how are these things structured? Next, you learn you should probably start learning about this cool text editor and all of its hand-contorting commands to really take your experience to the next level.

But then someone tells you "oh yeah, also take a look at Git and GitHub."

One thing at a time please, I'm new here.

I'd argue that learning about version control and it's importance should come before you try to be hip and cool with some text editor.

Before we talk about any examples, I think a story and an analogy of version control will be useful! A good friend of mine, Kelly, once described to me how she did any work before she used version control. She would be writing some html or css for a website and after it looked good, she'd copy and paste it into a new file off to the side before making additional edits.

So, she was writing html and after everything looked good, she copied it into another file. We could typically just call this a commit. However, if she was using version control, she wouldnt have to copy the file and she would just have every single commit after all of her changes.


Some changes can break things

  • Sometimes you are running tests (things to make sure logic or behavior of your application works) before a deploy, or before you turn in an assignment for a class and suddenly things are broken. This happens from time to time, especially when you're WAY in the groove of coding. You just keep going and forget that you may have broken something even 5 minutes ago.
  • If you did break something, but you're using version control, it's easy to undo it and get back to a safe place. Version control is a nice safety net.

Learning

  • If you're just starting to learn to program, you'll hear people say "Code is Art!". Well that's probably true, but people don't paint masterpeices in one sitting. Scientist have recently looked at the many layers of paintings from some of the best artist in history, and discovered that they often just repainted over their old designs. How cool would it have been to peel back those layers to see how they ended up with JUST that particular brush stroke that finished the painting?
  • If you're pairing with someone else, or even shadowing and watching them program, you may miss things. Being able to see the steps someone took to get to a solution is incredibly valuable. You get to see all the things they tried before they got there and learn how they thought threw a problem.
  • If someone is needing to look over YOUR work, they're going to be able to see how you are progressing with looking at the different changes you've made over time to a file to know what you're trying, what you may have missed, or how you can improve.

Sharing ( GitHub )

  • None of the learning with other people would even be possible if you didnt have particular changes to talk about
  • Helps potential new employers to know about how you've grown.
  • You can see how you've grown by looking back at your old stuff. Sharing with a past version of yourself and see all the terrible coding things you used to do. This is okay, and I'm definitely guilty of this.

Etc

There are so many other reasons. Some of the reasons even become hard to think about as you grow within your experience and that's okay. As you get into pickles with your code, you'll love the fact that you had version control to allow you to grow and learn on your steps into a programming career.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment