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

Computer Science

Databases & Distributed Systems

Artificial Intelligence (AI)

Algorithms & Data Structures

Development & Operations (DevOps)

Software Architecture


As you can see, I enjoy "reading" math books (although I read them like a novel and i don't do the exercises, highly, highly not recommended), even ones that don't or aren't relevant, yet, to software engineering! There are a few reasons for that:

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.

A Programmer's Introduction to Mathematics - Jeremy Kun

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

Pure Math

Group Theory

Linear Algebra

Linear Algebra is used everywhere. No matter what engineering or scientific discipline you plan to go through, Linear Algebra will be there, guaranteed.

Probability & Statistics


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.