One specific challenge, when writing code as a scientist, is that we care a lot about getting the right answer; but of course, the right answer is not always obvious. So we should be very careful with the code we write. A piece of code that crashes is annoying; but a piece of code that runs, and give you the wrong answer can compromise your science and your career. This guide will help you adopt practices that make it less likely to introduce mistakes in your code, and more likely to catch them. Hopefully, this will let all of us write code we can trust more.
Good principles in scientific computing can help you write code that is easier to maintain, easier to reproduce, and easier to debug. But it can be difficult to find an introduction to get you started. The goal of this project is to get you started on the most important points. You can use these lessons on your own, or as a group.
This material is aimed at people who have already interacted with a computer using a programming language (we use Julia, but the code is meant to be fairly general), but want to adopt best practices that make their code more robust. It can also be used to facilitate the onboarding of new people in your lab or your project.