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
- Vim (terrifying to get out of until you know the weird shortcuts)
- Emacs (warning: the inventor of emacs has serious carpal tunnel syndrome, and the emacs key bindings are partly to blame)
- Atom (nice and lightweight; what I use now since the death of TextWrangler)
- VSCode (comes highly recommended, though I haven’t used it)
- pyCharm (an IDE 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!!**
Python
- A summary and comparison of commonly-used programming languages
- Anaconda distribution and packages (use this!!!)
- Anaconda QuickStart Guide (downloadable pdf)
Learning
- Learn Python the Hard Way (this really is the best way)
- Stack Overflow for Q&A/search
- AstroBetter python posts
Documentation
- Python 4 Astronomers
- NumPy and SciPy
- AstroPy
- Astroquery, for querying astronomical databases
Jupyter (/iPython) notebooks
- Anaconda comes with Jupyter notebooks installed!
- Project Jupyter blog, an evolution of Jupyter for interactive computing in different languages
- Tutorial from OpenTechSchool
- Notebook viewer — can view Jupyter 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.
NICER
- NICERDAS: List of NICER data analysis software tools. You’ll generally just need to run nicerl2!
RXTE
- Getting Started Guide
- The RXTE Cook Book: Recipes for Data Analysis and Reduction
- Browse the RXTE Archives (or data from any NASA mission)
XMM-Newton
- Scientific Analysis System (SAS) homepage: The SAS data analysis threads are very useful!
XSPEC
- Full XSPEC Manual
- Tutorial: Fitting Models to Data
- PyXspec: Quick Tutorial
- 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
Other
- 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.