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.) If you’re looking for my blog post on installing HEAsoft, click here.
- 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.
**Note: Only use ONE of these!!**
- A summary and comparison of commonly-used programming languages
- Anaconda distribution and packages (use this!!!)
- Anaconda QuickStart Guide (downloadable pdf)
- Facebook group for Python users in astronomy (troubleshooting, Q&A)
- Learn Python the Hard Way (this really is the best way)
- Stack Overflow for Q&A/search
- AstroBetter python posts
Jupyter (/iPython) notebooks
- Anaconda comes with Jupyter notebooks installed!
- Project Jupyter blog, for interactive computing. I really like this for exploratory data analysis (usually with a small sample/training set of data) and visualization.
(Pupdate: macOS 10.15+ has switched to zsh as its default shell) I use bash rather than c-shell or tc-shell. 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.)
- My blog post on installing HEASOFT on a Mac
- FTOOLS Task Summary (don’t re-invent the wheel!)
- Installing CALDB, the calibration database
- Stingray: timing and spectral-timing analysis software to study variability
- 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!
- My github repo for NICER data exploration
- 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
- Facebook group for XSPEC troubleshooting
- 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
- 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.
(Header image: Wikimedia Commons)