On this page I decided to list several books which I think are quite good and which I have either already read, or I am planning to read in the future.

**1) "Introduction to Algorithms" **- Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein

A classical book on algorithms. I've read only parts from it whenever I've needed certain types of algorithms.

**2) "Artificial Intelligence: A Modern Approach (3rd Edition)"** - Stuart Russel, Peter Norvig

A classical book in AI. Really huge though. I've read only only a small piece of it (unfortunately).

**3) "Mathematics for Machine Learning"** - Marc Peter Deisenroth, A. Aldo Faisal, and Cheng Soon Ong

The good thing about this one is that it is free for download.

I haven't read it yet (just started it) but I find it perfect for people who studied lots of math in university courses, but which have forgotten most of the details. This book seems like a great refresher.

**4) "Machine Learning - an Algorithmic Perspective"** - Stephen Marsland

This one seems somewhat too advanced for me (at least as of 2020) but nevertheless it covers a pretty good range of ML topics, and it puts emphasis on algorithms. Some decent knowledge of math is required. In any case it is good to have a look at this book if only to get an idea about the main topics/areas within the field of ML.

**5) "Introduction to Probability"** - Bertsekas, Tsitsiklis

I've read some parts of it. Also, I've watched the MIT course video lectures in great detail and I've been taking detailed notes while watching it.

MIT Applied Probability course - video lectures

**6) "Netty in Action"** - Norman Maurer

I like Netty, I use it in my work. But I don't fully understand it. So I want to learn more about it. It's the best Java-based framework for building high-performance networking applications so definitely a good thing to know.

**7) "Think Python"** - Allen Downey

This one I already completed reading (and also I went through and solved all the programming exercises). I find this book perfect for people who have experience with programming languages but are new to Python. It's not heavy at all and it introduces all the major concepts nicely. If you can solve all the exercises, you can be certain already that you know the Python language pretty well.

**8) "MS SQL Server 2012 - T-SQL Fundamentals" **- Itzik Ben-Gan

I completed this one around 2014 or 2015. This one is a great book for SQL. It is for people who know how to write some basic SQL statements like SELECT, INSERT, UPDATE, DELETE but want to get better than that. The author is really a master of explaining complex concepts nicely and interestingly while not sacrificing rigor. If you want to be become better than 95% of the developers writing in SQL, just read this book and make sure you understand every single example.

**9) "Python Data Science Handbook"** - Jake VanderPlas

I only glimpsed at this one a few weeks ago. Looks a great book. It was published in 2016 but doesn't seem outdated at all. I should read it in full.

**10) "Interactive Linear Algebra"** - Dan Margalit, Joseph Rabinoff

Check out the book website

I haven't read this one (I have enough linear algebra books in my native language). I found this book only recently, and I read a few pages only. But it looks like quite a good book if you want to refresh your linear algebra knowledge (e.g. in order to pursue some data science or machine learning type of role). It contains lots of illustrations too to aid the learning process.

**11) "Introduction to Statistical Learning" **- Gareth James et. al.

Check out the book website

I only recently came across this book. Looks like a really fundamental introductory book to *statistical learning* which (in computer science terms) pretty much translates to *machine learning*. The only inconvenience for me is that it has some code applications in the R programming language (and not in Python let's say). But the theory covered seems really really fundamental. I haven't read it yet.

**12) "Java Concurrency in Practice"** - Brian Goetz

The most fundamental book on Java concurrency programming written by probably the most influential person in that domain. I've never had the time to read it in full and try out the examples. But I guess one can use it as a handbook too.

**13) "Grokking Deep Learning"** - Andrew Trask

This book on deep learning seems perfect for several reasons. It requires minimal math knowledge, the code examples are in Python and it does not use any existing libraries (except for numpy). So it's really about building neural networks from scratch.

**14) "Lectures on Probability Theory and Mathematical Statistics"** - Marco Taboga

This book is great in several ways. 1) It takes a practical approach, not much attention is given to technicalities, and still it's very rigorous; 2) It does not require too much from its readers i.e. the author is very diligent about proofs and basically no major proof is left to the reader; 3) It's available for reading online, and one can use it as a handbook in probability theory and statistics.

**15) "Hands-on Machine Learning with Scikit-Learn, Keras & TensorFlow (2nd. Edition)"** - Aurélien Géron

## No comments:

## Post a Comment