Programming for Physics and Astronomy
Only 50 years ago, most physics and astronomy research relied on the analytical skills of the scientist, on the tools of classical mathematics that were taught to them as students, and in some cases on data management and numerical analysis done by hand. Today, cutting edge research often requires high speed computing for simulation and data analysis, interactive tools to enhance extraction of relevant information from multi-parameter databases, and automated and robotic instrumentation, and incomprehensibly large data sets. The issue for the researcher in training is not whether computing skills are needed, but which ones are most critical.
Broadly classed, there are several options:
- Packaged commercial, proprietary, licensed programs and tools (e.g. Excel, Maxim ...)
- Licensed proprietary programming environments (e.g. IDL, Matlab, Mathematica ...)
- Open source tools (e.g. GDL, ds9, Grace, Sage ...)
- Programming languages (e.g. C, C++, Fortran, Java, Python ...)
In order to decide which of these apply to your own research, consider a larger question of what role computer science plays in contemporary physics and astronomy, and in what direction your research field is headed. Then, pick the tools that solve the problem at hand, realizing that the skills you develop at each step raise you up to reach a solution for the next, unknown, problem.