This post might not include much of R code or data analysis, but believe me, behind the scenes, it can be one of the most useful things I am going to write!
As a social scientist and sociologist by near 13 years of training, I have mostly been in contact with people who think social science gang are not Geek or Nerd material! Why is that so? Why there is a common sense that as a social scientist as long as you know how to turn on a computer and use Microsoft Word and Excel along with one or two statistical analysis software packages, e.g., SPSS, Lisrel, STATA, you are good to go! And in case you happen to be able to do some more stuff with computers you can be gazed at or called with names, like geek!
Isn't technology supposed to ease our lives? To facilitate our thinking and research process in a way that we can be focused on the main job we want to do and not on how to do it?! Don't we deserve not to lose time on crashing software packages and waiting for them to do what we want them in a timely manner!?
Let me head back to the main goal of this post. Computer scientists and software developers have been using version control systems for a long time! And I can swear they have been living a much easier life because of this usage!
Imagine a hypothetical scenario in which you have been working on a document file for a while, doing some corrections, revisions, modifications (both addition and removals). You have shared this document with a colleague or your supervisor too, and either they have modified parts or gave you comments on what to change.
Now looking at the folder you have been using for that project, you might have couple of, or even a dozen of versions of that file, maybe you have experienced putting names like final report, and then final report 2, or final final report. Then if I ask: can you please tell me what has changed from one of these versions to the other, as it happens to me, you must probably have no idea what has changed, and in case you are using comparison tools like Microsoft Word's review pane, you will be able to have a view to changes. But most probably you won't have a personal note on what did you do and why did you do that between those two versions.
So in case you need to go back in time and correct a mistake that has happened somewhere along the way, or a distortion in the direction or path that might have been better to go right instead of left at one point, you can have trouble finding the version which points to that time to take it and modify it based on the new insight, suggestion, comment or thought you have come across.
That is what version control systems and technologies are for. To help you be in control of what is happening, why it is happening, and explore different directions along the way, in case of new ideas, just give it a shot and see what can be the results of that new idea. If you were satisfied with what you find, keep it, if not, just throw it away and keep going on with your previous line of work (in case of academic writing, with previous version of your report!).
OK! If the above description was enough, watch this 20 min video on simple steps where to start with these tools to live an easier academic life!
Briefly, for me "Git" is like a huge "Ctrl + Z" that allows me to go back in time to whatever extent that I want and correct my mistakes, isn't that amazing?
Links for further learning
Drop me a line at akbaritabar [at] gmail.com