Skip to content Skip to navigation

Research Computing Guides

Recommended Reading

Articles

  1. The Law of Leaky Abstractions (Joel Spolsky)
  2. Johannes Kepler's computer simulation of the universe (Geoffrey Loftus)
  3. Falsehoods Programmers Believe About Names (Patrick McKenzie)
  4. Fallacies of Distributed Computing (Peter Deutsch)

Books

  1. The Algorithm Design Manual (Steven Skiena)
  2. Peopleware: Productive Projects and Teams (DeMarco & Lister)

Unix Shell

Tutorials

  1. Wooledge Bash guide
  2. GNU Bash manual

Man pages

  1. List of command line utilities available in Bash
  2. GNU core utilities

Curiosities and gotchas

  1. Shell redirection operators (1)
  2. Shell redirection operators (2)
  3. Using regular expressions with grep

Python

Standard Python

  1. Python tutorial
  2. Python standard library

Scientific Computing

  1. NumPy (linear algebra)
  2. Pandas (data frames)
  3. SciPy (numerical methods)
  4. Statsmodels (inferential statistics)
  5. Scikit-Learn (statistics and machine learning)

Data Visualization

  1. Matplotlib gallery of examples
  2. Matplotlib tutorials
  3. Seaborn gallery of examples
  4. Seaborn tutorials

R

Base R-oriented resources

  1. R tutorial
  2. Task views (R resources organized by research discipline)
  3. R Cookbook
  4. Advanced R (explains why R works the way it does)

Tidyverse-oriented resources

  1. Tidyverse packages
  2. Tidverse cheat sheets
  3. R for Data Science

Matlab

  1. Matlab Tutorials
  2. Matlab Documentation

Databases

  1. SQL and Relational Theory
  2. Common database mistakes

Version Control

  1. The Pro Git book
  2. Git for Advanced Beginners
  3. Git from the inside out
  4. A Visual Git Reference
  5. Git workflows

Documentation

  1. Guide to Markdown syntax