Coding resources

One of the first personal computers. Photo from the Wikimedia Commons.

This page lists scientific coding resources, covering text editors, version control, Mac package managers, Python and Jupyter notebooks, bash(/shell) scripting, and X-ray data analysis. Please let me know if any links are outdated or if your favourite resource isn’t on here! (Do not contact me asking me to link to your vaguely-coding-related webpage that isn’t about astronomy or physics research software development.)

Text Editors

The Top 5 Text Editors, according to Lifehacker
Free text editor roundup from How-To Geek
Comparison of text editors on Wikipedia
vi (the most basic/simple)
Vim (VI iMproved)
Emacs (warning: the inventor of emacs has serious carpal tunnel syndrome, and the emacs key bindings are partly to blame)
Aquamacs (emacs-based, Mac only)
TextWrangler (my favourite, Mac only; allows for vertical selection of columns by holding down the alt key; doesn’t work on the newest OS X)
pyCharm (specifically for Python, but has other language plugins)

Git: Version Control Software

About Version Control and Git on AstroBetter
GitHub is one of the very popular implementations of the git version control system:
GitHub homepage
A Beginner’s Guide to GitHub
My GitHub page!
GitKraken: I prefer to use a GUI for managing projects that have more than one contributor to visually sort out which branches have which features. I like this one! It handles rebasing better than GitHub Desktop.

Package Managers

**Note: Only use ONE of these!!**
Homebrew (most recommend)
MacPorts (second recommended)
Fink (also an option)


A summary and comparison of commonly-used programming languages
Anaconda distribution and packages (use this!!!)
Anaconda QuickStart Guide (downloadable pdf)


*You should start learning Python 3!!*
Learn Python the Hard Way (this really is the best way)
Stack Overflow for Q&A/search
AstroBetter python posts


Python 4 Astronomers
NumPy and SciPy
Astroquery, for querying astronomical databases

Jupyter (/iPython) notebooks

Anaconda comes with Jupyter notebooks installed!
iPython Homepage and about interactive computing in Python
Project Jupyter blog, an evolution of iPython for interactive computing in different languages
Tutorial from OpenTechSchool
Notebook viewer — can view Jupyter and iPython notebooks from GitHub, e.g., but GitHub now has notebook viewing integrated in it (as of July 2015)

Bash Scripting

It’s a good idea to use bash, the bourne-again shell, rather than c-shell, tc-shell, or any of the others. It seems to have the most support and is the most widely-used.
Command Line Absolute Basics from Lifehacker
Command Line Crash Course (from Learn Python the Hard Way)
Bash Programming – Introduction HowTo
Bash Guide for Beginners
Bash Shell Scripting Wikibook
Advanced Bash Scripting Guide

X-ray Data Analysis

HEASOFT main page
HEASOFT Install Instructions (Note: Use the full source code, not a pre-compiled binary.)
FTOOLS Task Summary (don’t re-invent the wheel!)
Installing CALDB, the calibration database
Stingray: timing and spectral-timing analysis software to study rapid variability. Thus far it has been applied to X-ray and radio data!
LSST DSFP: Lectures and problem sets from the Data Science Fellowship Program, covering a wide variety of analysis techniques.


NICERDAS: List of NICER data analysis software tools. You’ll generally just need to run nicerl2!


Getting Started Guide
The RXTE Cook Book: Recipes for Data Analysis and Reduction
Browse the RXTE Archives (or data from any NASA mission)


Scientific Analysis System (SAS) homepage: The SAS data analysis threads are very useful!


Full XSPEC Manual
Tutorial: Fitting Models to Data
PyXspec: Quick Tutorial (Note: PyXspec doesn’t play well with the Anaconda distribution of python.)
The QDP/PLT User’s Guide (‘Introduction’ and ‘Basics’ are useful for new users)

Interactive Spectral Interpretation System (ISIS)

Installation instructions from the 2nd Black Hole school
Loving ISIS: Confessions of a Former XSPEC User by M. Nowak


The AstroBetter wiki
Program and materials from 2nd Black Hole school
Program and materials from 1st Black Hole school
Presentations from Black Hole Variability 2010
OS X Astro Tricks: Tips and bug “fixes” for running astronomy-releated software on OS X
J. Foster’s Notes on installing python and astronomy-related software on Macs.

Leave a Reply