Some would say that the hunt for knowledge is a never ending adventure, and I bet all of us will agree on this. There are so many things to learn, test and try out but various limitations are stopping us from getting there. Not to mention the nearly unlimited free resources of ebooks out there which pull us deeper in this conquest. With online courses and the growth of e-learning, the term “self-taught” is no longer a stranger to our ears. In this post, we’ve covered a pretty long list of free ebooks covering various topics such as Programming, Python, API Design, Data Science, Artificial Intelligence, Machine & Deep Learning, Probability & Statistics, Algebra, Algorithms and many more.

All topics are closely related and are definitely helpful if you’re trying to improve yourself within these few categories. A recent study suggests that Python is the only programming language that has increased in its total userbase within the past year or so. Its close connection to Artificial Intelligence and automation probably are the biggest factors in pushing it up the coding ladder. Nonetheless, we hope you’ll enjoy this list and gain something out of it. As usual, don’t forget to bookmark us and let us know your thoughts through the comment section below.

## 96 Free Programming, Computer Science and Math Ebooks That You Need To Download Today

**Computer Science**

- The Art of Scalability by Martin L. Abbott Michael T. Fisher
- Mindstorms: Children, Computers, And Powerful Ideas by Seymour Papert
- The Elements of Computing Systems: Building a Modern Computer from First Principles by Noam Nisan and Shimon Schocken
- Structured Computer Organization by Tanenbaum
- Computer Networks by Tanenbaum
- Computer Networks: A Systems Approach by Larry Peterson and Bruce Davie
- Code: The Hidden Language of Computer Hardware and Software by Charles Petzold
- The Design of Design: Essays from a Computer Scientist by Frederick P. Brooks
- Concrete Mathematics: A Foundation for Computer Science (2nd Edition) by Ronald L. Graham, Donald Ervin Knuth, Oren Patashnik
- Foundations of Computer Science by Alfred V. Aho, Jeffrey D. Ulman
- Computational Complexity – A Modern Approach by Sanjeev Arora, Boaz Barak
- The Computer Scientist as Toolsmith II by Fred Brooks

**Programming**

- Programming Pearls, Second Edition by Jon Bentley
- Structure and Interpretation of Computer Programs: 2nd Edition (MIT Electrical Engineering and Computer Science) by Harold Abelson, Gerald Jay Sussman and Julie Sussman
- Coders at Work: Reflections on the Craft of Programming by Peter Seibel
- The Mythical Man-Month: Essays on Software Engineering by Frederick P. Brooks Jr.
- On Lisp: Advanced Techniques for Common Lisp by Paul Graham
- The Art of Computer Programming by Donald Ervin Knuth
- The C Programming Language by Brian W. Kernighan and Dennis M. Ritchie.
- You Don’t Know JS (book series) by Kyle Simpson
- JavaScript: The Good Parts by Douglas Crockford
- Head First Javascript: A Brain-Friendly Guide by Eric T. Freeman, Elisabeth Robson
- The Practice of Programming by Brian W. Kernighan and Rob Pike
- Purely Functional Data Structures by Chris Okasaki
- Rust Cookbook by various authors

**Python**

- Intermediate Python by Muhammad Yasoob Ullah Khalid
- How to Think Like a Computer Scientist: Second Interactive Edition by B. Miller & D. Ranum
- Think Python by Allen B. Downey
- Building skills in Python by Steven F. Lot
- Python for you and me by Kushal Das
- The Hitchhiker’s Guide to Python! by Kenneth Reitz
- Hacking Secret Ciphers with Pytho by Al Sweigart
- Python Practice Book by Anand Chitipothu
- Problem Solving with Algorithms and Data Structures Using Python by B. Miller & D. Ranum
- Making games with Python and Pygame by Al Sweigart
- The Standard Python Library by Fredrik Lundh
- Building skills in OOP by Steven F. Lot
- Python Scientific lecture note by the community
- Modeling Creativit by Tom De Smedt
- A Programmer’s Guide to Data Mining by Ron Zacharski
- Text Processing in Python by David Mertz
- Natural Language Processing with Python by S. Bird, E. Klein & E. Loper
- Think Complexity by Allen B. Downey

**API Design**

- REST API Best Practices by Todd Fredrich
- Architectural Styles and the Design of Network-based Software Architectures by Roy Thomas Fielding
- Thoughts on RESTful API Design by Geert Jansen

**Data Science**

- Python Data Science Handbook by Jake VanderPlas

**Artificial Intelligence**

- A Quest for AI by Nils J. Nilsson

**Machine Learning**

- Programming Collective Intelligence by Toby Segaran
- Machine Learning by Tom M Mitchell
- Elements of Statistical Learning by Trevor Hastie, Robert Tibshirani, and Jerome Friedman
- Machine Learning: a Probabilistic Perspective by Kevin Patrick Murphy
- Machine Learning and Bayesian Reasoning by David Barber
- Gaussian Processes for Machine Learning by Carl Edward Rasmussen and Christopher K. I. Williams
- Introduction to Machine Learning by Alex Smola and S.V.N. Vishwanathan
- A Probabilistic Theory of Pattern Recognition by Devroye, Gyorfi, Lugosi.
- Introduction to Information Retrieval by Manning, Rhagavan, Shutze
- Forecasting: Principles and Practice by Rob J Hyndman George Athanasopoulos (Online Book)
- Supervised Sequence Labelling with Recurrent Neural Networks by Graves
- Pattern Recognition and Machine Learning by Christopher Bishop
- A Brief Introduction to Neural Networks by David Kriesel
- A Course in Machine Learning by Hal Daumé III
- A First Encounter with Machine Learning by Max Welling
- Introduction to Machine Learning by Amnon Shashua
- Machine Learning, Neural and Statistical Classification by D. Michie, D.J. Spiegelhalter, C.C. Taylor
- Probabilistic Models in the Study of Language by Roger Levy
- Information Theory, Inference, and Learning Algorithms by David J C MacKay
- Data Intensive Text Processing w/ MapReduce by Jimmy Lin and Chris Dyer.
- Mining Massive Datasets by Jure Leskovec, Anand Rajaraman, Jeffrey D. Ullman
- Reinforcement Learning by Edited by Cornelius Weber, Mark Elshaw and Norbert Michael Mayer
- Introduction to Applied Bayesian Statistics and Estimation for Social Scientists by Scott M. Lynch
- R Programming for Data Science by Roger D. Peng

**Deep Learning**

- Deep Learning by Ian Goodfellow, Yoshua Bengio and Aaron Courville
- Neural Networks and Deep Learning by Michael Neilsen

**Practical intros**

- An Introduction to Statistical Learning by Gareth James, Daniela Witten, Trevor Hastie and Robert Tibshirani
- Probabilistic Programming and Bayesian Methods for Hackers by Cam Davidson-Pilon

**Probability / Statistics**

- Introduction to statistical thought by Michael Lavine
- Basic Probability Theory by Robert Ash
- Introduction to probability by Grinstead and Snell
- Principle of Uncertainty by Joseph B. Kadane
- Think Bayes by Allen B. Downey
- Think Stats by Allen B. Downey
- From Algorithms to Z-Scores: Probabilistic and Statistical Modeling in Computer Science by Professor Norm Matloff
- All of Statistics by Larry Wasserman
- Basic Probability Theory by Robert B. Ash
- Advanced Data Analysis From An Elementary Point of View by Cosma Rohilla Shalizi
- Advanced R Programming by Hadley Wickham
- Practical Regression and Anova using R by Julian J. Faraway
- R practicals by Charles DiMaggio, PhD

**Linear Algebra / Optimization**

- Linear Algebra Done Wrong by Sergei Treil
- Convex Optimization by Stephen Boyd andLieven Vandenberghe

**Genetic Algorithms**

- A Field Guide to Genetic Programming by Poli, Langdon, McPhee.
- Evolved To Win by Moshe Sipper
- Essentials of Metaheuristics by Sean Luke

**Natural Language Processing**

- Coursera Course Book on NLP by Michael Collins
- NLTK by Steven Bird, Ewan Klein, and Edward Loper