Lately I’ve been obsessed with learning and adopting “best practices” for writing code. For some time now I’ve felt very inefficient. I tend to forget that I already solved a problem, which leads to constantly re-discover little tricks. My organization of all the various code and data for my various projects is terrible, and this adds to my inefficiency. I know there are people who are much worse than me, but it still bothers me to know that I waste time retracing my steps.
So I’m trying to change this. Software Carpentry is a great resource for learning how to write code. They heavily advocate the use of version control software, even for a solo researcher! I like this quote from their site:
Good record keeping is essential to good science; without the kind of record-keeping that version control provides, there’s no way to know exactly who did what, when.