Recommended reading
Articles
- The Law of Leaky Abstractions (Joel Spolsky)
- Johannes Kepler's computer simulation of the universe (Geoffrey Loftus)
- Falsehoods Programmers Believe About Names (Patrick McKenzie)
- Fallacies of Distributed Computing (Peter Deutsch)
Books
- The Algorithm Design Manual (Steven Skiena)
- Peopleware: Productive Projects and Teams (DeMarco & Lister)
Unix shell
Tutorials
Man pages
Curiosities and gotchas
Python
Standard Python
Scientific computing
- NumPy (linear algebra)
- Pandas (data frames)
- SciPy (numerical methods)
- Statsmodels (inferential statistics)
- Scikit-Learn (statistics and machine learning)
Data visualization
R
Base R-oriented resources
- R tutorial
- Task views (R resources organized by research discipline)
- R Cookbook
- Advanced R (explains why R works the way it does)
Tidyverse-oriented resources
Matlab
Databases
Version control
- The Pro Git book
- Git for Advanced Beginners
- Git from the inside out
- A Visual Git Reference
- Git workflows
Markup languages
Installation guides
- Software Carpentry workshop installation guides
- Coming soon: Configuring MacOS for research computing
- Coming soon: Configuring Windows 11 for research computing
