• Learn to use repositories
  • Use an integrated development environment (IDE), but also be a bit familiar with either emacs of vi for terminal based editing on clusters (but don’t develop major code projects with them).
  • Only develop what you need; no need to generalize more than what you can foresee as cases that will certainly occur in the near future (exception: you are already an experienced software developer)
  • Your first draft to solve a specific problem will never be a good final code; if you want to write good, reusable code, be prepared to revisit the (working) code and reimplement it. In essence: good coding requires complete knowledge of the algorithm you are implementing; this is usually not the case in scientific analysis