appendix A Further reading and resources
A.1 Competitive programming
There are a number of great resources available for learning algorithms. I highly recommend Steven Halim’s Competitive Programming book, in addition to the classic Algorithm Design Manual by Steven Skiena and Introduction to Algorithms by Thomas H. Cormen et al.
There are a number of great coding challenge websites some of which are listed here:
- LeetCode: https://leetcode.com
- TopCoder: https://www.topcoder.com
- CodeForces: https://codeforces.com
- HackerRank: https://www.hackerrank.com
- GeeksForGeeks: https://www.geeksforgeeks.org
- uVAOnlineJudge: https://onlinejudge.org
A.2 Recommended books
Machine learning mastery requires a solid understanding of fundamentals. New ML algorithms are designed by building on the fundamentals or combining new trends with classical results. This section highlights some of the key machine learning books that anyone who strives to get better in the field must read. The books summarized in figure A.1 range from theoretical to applied and span the topics of statistics, machine learning, optimization, information theory, algorithms, and data structures.
Figure A.1 Recommended books

I highly recommend the following books, as shown in figure A.1, on your journey to machine learning mastery: