General¶
There are many excellent resources out there for scientific computing, including:
Documentation¶
Python language.
NumPy for arrays.
Pandas for tables.
Matplotlib for general plots.
Cartopy for geospatial plots.
xarray for model output.
Dask for parallel computing.
Jupyter for interactive data science.
GeoPandas for geospatial tables.
Salem for some helpful WRF tools.
SciPy for mathematics and statistics.
xESMF for regridding.
WRF-Python for analysing WRF output.
Bokeh for interactive plots.
Pangeo for bringing these libraries together.
ARC for HPC at Leeds.
Miniconda for personal Python installation.
GitHub for version control.
Data Science¶
Computational and Inferential Thinking: The Foundations of Data Science, Ani Adhikari and John DeNero, Data 8: Foundations of Data Science course, UC Berkeley.
An Introduction to Earth and Environmental Data Science, Ryan Abernathey and Kerry Key.
Pythia Foundations, A community learning resource for Python-based computing in the geosciences.
Databases:
Intro to SQL, Kaggle.
Advanced SQL, Kaggle.
Experiments:
Trustworthy Online Controlled Experiments : A Practical Guide to A/B Testing, Ron Kohavi, Diane Tang, and Ya Xu.
Causal Inference:
Causal Diagrams: Draw Your Assumptions Before Your Conclusions, Miguel Hernan, Harvard University.
Causal Inference Book, Hernán MA, Robins JM (2020). Causal Inference: What If. Boca Raton: Chapman & Hall/CRC.
The Book of Why: The New Science of Cause and Effect, Judea Pearl & Dana Nackenzie, 2019.
Introduction to Causal Inference, Brady Neal.
Explanation in Causal Inference: Methods for Mediation and Interaction, Tyler Vanderweele, 2015, OUP.
Software engineering¶
If you’re interested in jobs in this area, I highly recommend Teach Yourself Computer Science by Oz Nova and Myles Byrne. This will help navigate the key topics and best resources. Many of the resources below are directly taken from this great guide.
Programming:
Composing Programs, John DeNero, 61A course, UC Berkeley.
Practical Python Programming, David Beazley.
Algorithms and Data Structures:
Computer Architecture:
Great Ideas in Computer Architecture (Machine Structures). CS61C, Spring 2015, UC Berkeley.
Misc:
Python Packages, Tomas Beuzen & Tiffany Timbers.
Modern Python Developer’s Toolkit, Sebastian Witowski, PyCon US 2020.
Introduction to Discrete Mathematics for Computer Science Specialization, University of California San Diego HSE University, Coursera.
Linux guide, Richard Rigby - CEMAC.
Machine Learning¶
If you’re interested in jobs in this area, I highly recommend Workera to help figure out what the roles are, what you’re suited to, what you need to improve on, and personalised plans to make this progress.
Machine learning, CS229, Standford University, Andrew Ng.
Deep learning, Coursera, DeepLearning.AI.
Video lectures, CS230, Stanford University.
Syllabus, CS230, Stanford University.
Deep Learning with Python, Francois Chollet, 2018.
Hands-on Machine Learning with Scikit-Learn, Keras, and TensorFlow: Concepts, Tools, and Techniques to Build Intelligent Systems, Aurelien Geron, 2019.