A seismologist need to master basic knowlegde of physics, math, and seismology. Besides that, you also need to master some basic skills in programming.
There are three most commonly used operation systems for personal computers:
Most seismologists choose macOS or Linux as their primary operation system for daily researches, because both macOS and Linux provide easy access to toolchains needed in programming, and most existing programs/codes/packages for seismological researches were written on Linux and only work on Linux and macOS. As a beginner, you should use macOS or Linux.
For people who have a MacBook, MacBook Pro or iMac, you need to install the "Command Line Tools for Xcode" and Homebrew, then you're almost all set.
For people without access to macOS, you need a Linux OS. There're several ways to have a Linux OS (Linux itself is free):
Seismologists usually use command lines (CLI) rather than Graphic User Interface (GUI) to navigate around different folders/directories, run programs, process data and almost everything you can imagine, because using CLI is usually much efficient than using GUI. See Linux 101 for details.
You need at least master one compiled language. The most popular compiled languages used in seismology community are C, Fortran, C++ and Java.
For beginners, C or Fortran are the best choices. You need to know the basic grammar of a programming language and how to compile/run a program.
For a program written in C or Fortran, you need follow the steps to run the program:
To compile source codes to a executable file, you need to know some commonly used options for gcc
and gfortran
, such as -c
, -o
, -g
, -I
, -L
, -l
. It would be easier to solve some compilation errors if you have a basic understanding of the compiling, linking and executing for compiled languages.
You also need to learn how to read and write a Makefile, which is a tool to automatize the compiling process for a large source codes with multiple executable files
Interpreted Languages can also be called as scripting language. It's usually easier to write and can accomplish complex tasks using only a few lines of codes. The only disadvantage is interpreted languages are usually much slower than compiled languages.
There are many interpreted languages, the most used in seismology community are bash, Python and Matlab.
This is a list of seismological tools you may use in your daily research. Please refer to this link for details.