Skip to content

Favorite Books

Books that I have read and enjoyed, and more importantly, learned from

Below, you will find a list of some of my most favorite books. I used two criterion for including a book in this list:

  • I have read the entire book, cover to cover
  • I enjoyed reading the book, learned a lot from it or both

Book covers via Open Library; where no cover could be found, a generated illustration stands in and says so.

Computer Science

  • Cover of Designing Data-Intensive Applications
    Cover via Open Library

    Databases & Distributed Systems

    Designing Data-Intensive Applications

    Martin Kleppmann

    While the title suggests that you might be reading about large scale data intensive systems, this is not really the case. It is more about how databases and distributed systems work and it serves both as an excellent explanation as well as a reference. I recommend this if you have been building enterprise applications and have a few years of experience under your belt. Excellent book.

    Find the book
  • Cover of Grokking Deep Learning
    Cover via Open Library

    Artificial Intelligence (AI)

    Grokking Deep Learning

    Andrew W. Trask

    An amazing book if you want to start your journey in the world of AI, machine learning and neural networks. Uses Python to build everything from scratch.

    Find the book
  • Cover of Cracking the Coding Interview
    Cover via Open Library

    Algorithms & Data Structures

    Cracking the Coding Interview

    Gayle Mcdowell

    Absolute classic and still relevant today.

    Find the book
  • Cover of Release It, 2nd Edition
    Cover via Open Library

    Development & Operations (DevOps)

    Release It, 2nd Edition

    Michael T. Nygard

    Great book about overall software development lifecycle and looking at it from the lens of operations.

    Find the book
  • Cover of Domain Driven Design Made Functional
    Cover via Open Library

    Software Architecture

    Domain Driven Design Made Functional

    Scott Wlaschin

    Teaches DDD using F# and functional programming. While the focus is on how to build systems and model them using a functional language, it still serves as a great introduction to DDD.

    Find the book
  • Cover of Clean Code
    Cover via Open Library

    Software Architecture

    Clean Code

    Robert C. Martin

    It is a good read, especially early on in your career. It helps one understand how to structure code for readability and maintainability. Later on, you will decide for your self what works for you and what doesn't.

    Find the book
  • Cover of Dependency Injection Principles, Practices, and Patterns
    Cover via Open Library

    Software Architecture

    Dependency Injection Principles, Practices, and Patterns

    Steven van Deursen and Mark Seemann

    I read the original one by Mark Seemann (probably the first software book I ever read) and it was a great introduction to DI. I must say DI wasn't the learning "thing" that I got out of this book. It was more about how to structure your code and how to think about dependencies. It is a great book and I highly recommend it.

    Find the book

Mathematics

  • Cover of Love and Math
    Cover via Open Library

    Mathematics

    Love and Math

    Edward Frenkel

    Don't let the title fool you. This is not a poetic book. It is one that tries to show you the different beautiful sides of Mathematics. Ones you probably weren't exposed to in school. It is not really teach you any concrete mathematics that you will use tomorrow, but it shows you what it is like to be a mathematician. The reason I love this book is that it takes you on a whirlwind tour in the different landscapes of mathematics. It shows how the different pieces of the puzzle fit together, and the author has an amazing talent in explaining very complex and esoteric concepts very intuitively. I wish "actual" math books were so approachable and intuitive.

    Find the book
  • Cover of A Programmer's Introduction to Mathematics
    Cover via Open Library

    Mathematics

    A Programmer's Introduction to Mathematics

    Jeremy Kun

    This can serve as either a refresher or an introduction to the world of mathematics.

    Find the book
  • Cover of Book of Proof, 3rd Edition
    Cover via Open Library

    Pure Math

    Book of Proof, 3rd Edition

    Richard Hammack

    First of all, this book is free. Secondly, it is an excellent introduction to set theory, logic and proof writing. It has a ton of examples and the author explains everything intuitively.

    Find the book
  • Cover of A Friendly Introduction to Abstract Algebra
    Cover via Open Library

    Pure Math

    A Friendly Introduction to Abstract Algebra

    Ryota Matsuura

    An excellent book that introduces you to the world of Abstract Algebra. It is written in proof style but still very approachable and intuitive with lots of examples.

    Find the book
  • Illustration for Visual Group Theory
    Generated illustration, not the book’s cover

    Group Theory

    Visual Group Theory

    Nathan Carter

    I discovered Group theory when I was studying Linear Algebra. It turned out to be the workhorse of modern mathematics and this is by far the best introduction you can have.

    Find the book
  • Cover of Linear Algebra, 4th Edition
    Cover via Open Library

    Linear Algebra

    Linear Algebra, 4th Edition

    Jim Hefferon

    This is a great introduction to Linear Algebra. It is free and it is written in a very intuitive way. It is a great book if you want to understand the concepts of Linear Algebra and not just memorize formulas. Professor Hefferon has a full accompanying video course, free on YouTube, that you can follow along while reading through the book. He has also provided answers for every single exercise in the book. Hands down the best course I have taken on the subject.

    Find the book
  • Cover of Think Stats, 2nd Edition
    Cover via Open Library

    Probability & Statistics

    Think Stats, 2nd Edition

    Allen B. Downey

    Allen introduces a lot mathematical concepts using a computational approach with hands-on Python code, and, all of his books are free. This is a great and practical book.

    Find the book

Philosophy

  • Cover of Philosophy: The Basics
    Cover via Open Library

    Philosophy

    Philosophy: The Basics

    Nigel Warburton

    This is a great introduction to the world of philosophy. The main areas of philosophy are covered and the author does a great job in explaining the different schools of thought and the main ideas in each. It is a great starting point if you want to dive deeper into philosophy.

    Find the book