The right tool for the job

“Give me six hours to chop down a tree and I will spend the first four sharpening the axe.”

—Abraham Lincoln

Programming may be considered a craft (although you can find some debate on that). If you need to solve a scientific problem that may, e.g., only be solvable numerically, and there is no software at hand to solve this problem, you have to write code that does. And as you expect a “regular” craftsman to know the right tool for his job, you may also want to know your tools for your job as a scientific programmer.

In the following an overview of the basic tools for scientific programmers is given, starting with the Unix shell as a mean to interact with the computer while not relying on a GUI and enabling reproducibility, followed by an introduction to text editors suitable for programming, and finishing with a brief introduction to version control systems.