Books, courses and web sites on technical topics like machine learning and software engineering.
π - Book
πΊ - Video Course
π - Online Course or Exercises
π¨ - Tool
-
General
- πΊ 3Blue1Brown Wonderful channel of math explainer videos. The series on Calculus and Linear Algebra make some of the most confusing concepts make intuitive sense.
-
Game Theory - I got interested in this after listening to the NY Times article "How A.I. Conquered Poker" on Audm.
- π Game Theory with Python - Coursera course teaching the basics of game theory using Python.
- π Game Theory: A Non-Technical Introduction by Morton D. Davis - Seems like the best introductory book on the subject.
-
Linear Algebra
- π Linear Algebra Done Right by Sheldon Axler. Widely recommended text for learning linear algebra. Free online PDF is available from the publisher in addition to a print edition.
-
Tools
- π¨ Desmos Graphing Calculator Helpful tool to visualize formulas.
-
Bayesian
- π Bayesian Modeling and Computation in Python This online and print book focuses on using Python to do Bayesian modeling. It's a welcome change from all of the Bayesian books in R, JAGS and other non-general purpose languages. The other Bayesian book in Python,
- π Bayesian Methods for Hackers didn't impress me so it's nice to have an alternative.
-
Causal Inference
- π Causal Inference: The Mixtape by Scott Cunningham This online and print book is an intuitive and highly-readable introduction to causal inference. It provides examples in R and Stata.
- π Causal Inference: What If by Miguel Hernan and Jamie Robins. Book on causal inference by two professors at the Harvard School of Public Health. Brings together information that was previously scattered across many journals and disciplines into a single resource.
- π The Effect by Nick Huntington-Klein. The Effect is a book intended to introduce students (and non-students) to the concepts of research design and causality in the context of observational data. The book is written in an intuitive and approachable way and doesnβt overload on technical detail. I heard about this book on the Practical AI podcast.
- Models
- π State of Open Source AI Book Covers all the most important categories in the Open Source AI space, from model evaluations to deployment.
-
Introductory
- π An Introduction to Statistical Learning The foundational book for machine learning. There is a second edition out that includes deep learning.
-
Data Wrangling
- π¨ Pandas Tutor Shows a visual representation of Pandas data manipulation code.
- π Tensor Puzzles Set of brain teasers to help learn programming for multidimensional arrays.
- π Pandas Workout by Reuven Lerner Work out your pandas skills against dozens of real-world challenges, each carefully designed to build an intuitive knowledge of essential pandas tasks.
-
Machine Learning
- π Machine Learning with Pytorch and Scikit Learn by Sebastian Raschka. I read the first edition of this book back in the day and it was a wonderful introduction to using Python for Data Science. Sebastian is on the fourth edition as of 2022 and I'm sure the material is better than ever.
- π Interpretable Machine Learning by Christoph Molnar. We used the SHAP section of this book to discuss interpretable methods at work. The rest of the book looks fantastic as well.
- Machine Learning Design Interview book and online course by Khang Pham Bridges the gaps between Machine Learning βbookβ knowledge and Machine Learning in production. Itβs very easy to find resources about certain Machine Learning techniques but there is a lack of resources that explain how these techniques are used at big companies at scale.
- Altdeep Online courses in causal machine learning with deep neural networks. Created by Robert Osazuma Ness, a researcher at Microsoft Research.
- π Causal AI A code-first introduction to building machine learning and deep learning models that implement causal reasoning.
-
Deep Learning
-
Grokking Deep Learning by Andrew W. Trask Plain English explanations of the fundamentals of how neural networks work.
-
fast.ai Courses for anyone to learn how to use neural networks. The courses can be used even if you haven't done anything with ML before.
-
Neural Networks explainer videos from 3Brown1Blue. These videos give an intuitive understanding of how neural networks work.
-
What Are Embeddings? A deep dive into embeddings by the inimitable Vicki Boykis.
-
-
Natural Language Processing
- ChatGPT Prompt Engineering for Developers from DeepLearning.AI and Andrew Ng. Learn how to use a large language model (LLM) to quickly build new and powerful applications.
- Natural Langage Processing with Transformers by Lewis Tunstall, Leandro von Werra, and Thomas Wolf. NLP book by the Hugging Face crew. Discusses using transformers for NLP tasks and more.
- Hugging Face Course Free online course by the team that has done a ton of breakthrough work in NLP. Teaches you to use transformers to do text processing.
-
MLOps
- CS 329S: Machine Learning Systems Design Slides and notes from Chip Huyen's Stanford course on building production ML systems.
- Designing Machine Learning Systems Book on designing ML systems also from Chip Huyen.
-
Data Visualization
- Storytelling with Data Great blog and books about data visualization. Cole Nussbaumer Knaflic has created some amazing resources for learning how to communicate data visually.
- Data Modeling
- Data Modeling Made Simple by Steve Hoberman. Get a straight-forward introduction to modeling relational data from one of the OGs in the field.
- Object-Role Modeling Fundamentals by Terry Halpin. Gentle introduction to the most powerful data modeling method. ORM is a theoretically-sound way to build data models that match relationships in the real world.
- Information Modeling and Relational Databases - Second Edition by Terry Halpin and Tony Morgan. This is a large textbook that covers much more about ORM than Terry's introductory book. This is the bible of relational data modeling.
-
General
- π Code: The Hidden Language of Computer Hardware and Software by Charles Petzold. I read the first edition of this clearly written introduction to computer fundamentals years ago and loved it. There's now a second edition out that looks even better.
-
Software Architecture
- Software Architecture: The Hard Parts This looks like a good book. "Architecture veterans and practicing consultants Neal Ford, Mark Richards, Pramod Sadalage, and Zhamak Dehghani discuss strategies for choosing an appropriate architecture."
- Strategic Monoliths and Microservices: Driving Innovation Using Purposeful Architecture Heard a Software Engineering Radio episode with the author of this book. The book recommends making architectural decisions that correspond to the strategic direction of business.
- Understanding Distributed Systems by Roberto Vitillo Recommended as a great first book to learn about distributed systems by Engineering with Utsav and Gergely Orosz.
- Microservice Architecture is a web site from Chris Richardson which documents microservice patterns. He also has a book on the same topic.
- Cloud Design Patterns A set of design patterns that are useful for building reliable, scalable, secure applications in the cloud. They were compiled by the Microsoft Azure team, but the descriptions are platform agnostic.
- Event Sourcing in Python
by John Bywater. A book on how to do event sourcing using the Python
eventsourcing
package. - π Balancing Coupling in Software Design by Vlad Khonopov. I heard the author talk about this book on the Add Dot podcast. He had some great points about how some coupling in necessary in software systems, but unnecessary coupling can make systems brittle and unmaintainable.
-
Coding
- πΊ Destroy All Software Screencasts by Gary Bernhardt explaining basic theoretical computer science concepts as well as implementing systems like compilers, web servers etc. Also includes Execute Program which is a learning environment using code examples to teach engineering skills.
- π Wizard Zines by Julia Evans Easy to digest zines on particular topics like DNS, debugging, etc. Julia makes highly technical material both easy to learn and dare I say fun?
- π Tidy First? by Kent Beck Recommends first cleaning up any legacy codebase before trying to modernize it. The book is highly recommended by Gergely Orosz.
-
Data Structures and Algorithms
- See the Career - Interviewing section for more resources
- π A Common Sense Guide to Data Structures and Algorithms This is a great book to learn data structures and algorithms. The author has taught a live course on the subject many times and has distilled his learning down to this book. The explanations are clear and well illustrated. I highly recommend this book.
-
Legacy Systems
- π Kill It with Fire by Marianne Bellotti This book is recommended by the hosts of the Staff Eng podcast. It discusses how to smartly refactor legacy systems without giving in to the knee-jerk reaction to rebuild from scratch.
-
Python
- π Fluent Python by Luciano Ramalho This is one of the most highly rated books for how to take your Python from beginner to advanced. Teaches you how to write idiomatic Python. The second edition was released in 2022.
- π Powerful Python by Aaron Maxwell. This book is the perfect resource to take you from beginning to intermediate Python.
- πΊ Talk Python Training Short video courses on a variety of Python related topics. The courses are taught by Michael Kennedy, the host of the Talk Python to me podcast, and his associates. Includes courses on mongodb, async programming, FastAPI and more.
- π Modeling and Simulation in Python by Allen Downey I heard about this book on an episode of Talk Python to Me. It covers simulating a variety of real-world processes like population growth, infectious diseases and so forth. It's by the same author as Think Bayes, Think Python, etc. There's also a free ebook version with Google Colab notebooks.
-
JavaScript
- π Scrimba Online courses for learning HTML, CSS, JavaScript and React. The courses provide an online development environment and are well constructed. I wrote a review of the HTML and CSS course.
- π Elequent JavaScript by Marijn Haverbeke. Highly recommended book for beginners to learn JavaScript. Book content is published online as well as print.
-
Networking
- The Bits and Bytes of Computer Networking This course from Google is a recommended way to learn the basics of networking. It has over 30k 5 star reviews on Coursera.
-
Tools
- πΊ Vimcasts
Videos, courses and books for improving your
vim
skills.
- πΊ Vimcasts
Videos, courses and books for improving your
- DevOps
- The Phoenix Project This is a book about the DevOps revolution written in narrative form. It is highly recommended by Josh Sheppard, my group manager at C.H. Robinson.
- Cloud
- A Cloud Guru Great online courses to study for cloud certifications. I used their course to get my AWS Cloud Practitioner certificate and had a good experience.
- π Inspired by Marty Cagan. This is a great overview of best practices in product management from the founder of the Silicon Valley Product Group.
- Commentary
- Logic This magazine does deep dives into how society is affected by technology and vice versa. The articles contain insightful takes on a wide variety of technology topics.
- Technology Review This online and print magazine from MIT follows the most important technology trends from many fields.
- From The Pragmatic Engineer Newsletter
- The Writing Well Handbook by Julian Shapiro. An e-book for writing nonfiction blogs and books.
- Technical Writing Courses by Google A collection of courses and learning resources to improve writing technical documentation.
- The Craft of Writing Effectively An hour and a half video from Leadership Lab. One of the best talks about technical writing.
- On Writing Well by Willian Zinsser. The classic guide to writing nonfiction. The book that helped me write more concisely.
- Docs for Developers How to write documentation by a group of technical writers from Waymo and Stripe. This Stack Overflow podcast has a great interview with the authors.
- π AI Product Management Bootcamp This program offers a comprehensive package comprising 25 hours of live content & 6 practical hands-on exercises encompassing both technical and strategic aspects.
-
Technical Leadership
- Staff Eng Podcast Interviews with Staff-plus engineers from a variety of big tech companies. Sadly, this podcast is no longer being produced.
-
Management
- High Output Management This book is recommended by one of the hosts of the Staff Eng podcast. It contains a section about "Know How Managers" who are more technical leaders than people managers.
- Engineering Management for the Rest of Us by Sarah Drasner. Heard an interview with Sarah about the book on the Changelog podcast. She has more than 10 years of experience in Engineering Management at all levels, from Lead to VP at Netlify, Microsoft and Trulia/Zillow Group.
-
Career Development
- Timeless Career Advice for Software Engineers by Louie Bacaj Advice on navigating the career ladder by someone who was the youngest Senior Director ever in Walmart Engineering.
-
Job Search
- The Standout Developer by Randall Kanna Learn how to ace the interview, get companies reaching out to you, build a standout resume and more.
-
Interviewing
- Cracking the Coding Interview The original book that started the craze of technical interview resources. Has over 150 practice questions as well as advice for the interviewing process.
- Blind 75 The classic list of LeetCode questions to focus on for coding interviews. Compiled by a Facebook engineer, the list went viral and is now referenced everywhere.
- Tech Interview Handbook Free online book for how to prepare for tech interiews. One of the authors of this book is the creator of the famous Blind 75 list of LeetCode problems. Includes a refinement of the Blind 75 down to 50 questions.
- Grokking the Coding Interview: Patterns for Coding Questions Online course created by FAANG engineers to help learn the typical patterns that appear in coding questions and how to solve them.
- 14 Patterns to Ace Any Coding Interview Question Blog post written by one of the creators of "Grokking the Coding Interview". Gives a quick overview of the patterns that you'll learn in that course.
- LeetCode Patterns Filterable list of LeetCode problems to practice different data structures and algorithms patterns.
- NeetCode YouTube channel that explains the solutions to LeetCode problems. The explanations are clear and include both a theory and coding portion.
- Interview Query Practice interview questions for data analysis, business intelligence and machine learning interviews. Based on questions from hundreds of tech companies.
- Machine Learning Interviews Online book by the one-and-only Chip Huyen about how to prepare for ML Engineer interviews.