# Useful learning resources (machine learning, data science, and software engineering)¶

Here are some great learning resources that I’ve found helpful.

## 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:

Machine learning, Coursera, Andrew Ng.

Video lectures, CS229, Standford University.

Machine Learning Engineering for Production (MLOps) Specialization, Coursera, DeepLearning.AI.

Hands-On Machine Learning with Scikit-Learn, Keras, and TensorFlow, 2nd Edition, Aurélien Géron, 2019, O’Reilly Media, Inc.

Artificial Intelligence: A Modern Approach, 4th edition, Stuart Russell and Peter Norvig, 2021, Pearson.

Deep learning:

Deep Learning Specialization, Coursera, DeepLearning.AI.

Video lectures, CS230, Stanford University.

Syllabus, CS230, Stanford University.

NYU Deep Learning, Yann LeCun and Alfredo Canziani, NYU, 2021.

Deep Learning with Python, 2nd Edition, François Chollet, 2021, Manning.

Neural Networks for Machine Learning, Geoffrey Hinton.

Artificial Intelligence:

Stanford : Artificial Intelligence: Principles and Techniques, Percy Liang and Dorsa Sadigh, CS221, Standord, 2019.

Reinforcement learning:

RL Lecture Series, DeepMind and UCL, 2021.

Reinforcement learning, Emma Brunskill, Stanford University CS234, 2019.

Maths:

Linear algebra

Linear Algebra, Gilbert Strang, MIT 18.06, 2005.

Essence of linear algebra, 3Blue1Brown.

Linear Algebra, Mathematics for Machine Learning, Imperial College London, 2017.

Calculus

Essence of calculus, 3Blue1Brown.

Multivariate Calculus, Mathematics for Machine Learning, Imperial College London, 2017.

Matrix Methods in Data Analysis, Signal Processing, and Machine Learning, Gilbert Strang, MIT 18.065, 2018.

Misc:

## Data Science¶

Foundations

Computational and Inferential Thinking: The Foundations of Data Science, Ani Adhikari and John DeNero, Data 8: Foundations of Data Science course, UC Berkeley.

Data Science, Steven Skiena, CSE 519, Stony Brook University, 2020.

Python Data Science Handbook, Jake VanderPlas, 2016.

Computational Thinking, MIT, 18.S191/6.S083, Spring 2021.

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.

Misc:

## 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.

Python Distilled, David Beazley, 2021.

The Pragmatic Programmer, David Thomas and Andrew Hunt, 2019.

Algorithms and Data Structures:

Introduction to Algorithms, Srini Devadas and Erik Demaine, MIT 6.006, 2011.

Analysis of Algorithms, Steven Skiena, CSE 373, Stony Brook University, 2020.

Computer Architecture:

Great Ideas in Computer Architecture (Machine Structures). Krste Asanović and Vladimir Stojanovic, UC Berkeley CS61C, 2015.

Databases:

Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems, Martin Kleppmann, O’Reilly Media, Inc., 2017.

Cloud Computing:

AWS Cloud Technical Essentials, AWS, Coursera.

Testing:

Research Software Engineering:

Research Software Engineering with Python, The Alan Turing Institute.

Misc:

Python Packages, Tomas Beuzen & Tiffany Timbers, 2021.

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.

## Numerical atmospheric modelling¶

Art of Climate Modeling, Paul Ullrich, UC Davis.

Engineering Mathematics (ME564 and ME565), Steve Brunton, University of Washington.

Numerical methods for atmospheric models, Hilary Weller.