A combination of things I've learned over the years. Content comes from the paper, "Best Practices in Scientific Computing" (http://arxiv.org/abs/1210.0530), Software Carpentry (https://software-carpentry.org), and my own trial-and-error experiences.