Books


Warning. The presence of a book in this list does not mean that I have read the book in part or in full, or that I am knowledgeable about it, or that I own it. Nor does it mean that I share the author's ideas in whole or in part. Conversely, the absence of a book from this list does not mean that I have not read the book, that I am not competent on the subject, that I do not own it, or that I am opposed to the author's ideas. This list, which is constantly evolving, essentially serves as a useful pointer to books that are likely to contain useful information, without in any way prejudging the quality of the book, the value of its author, or the purpose of this information-gathering. If you are interested in my knowledge and opinions, please refer to my publications. It should also be borne in mind that such knowledge and opinions are likely to evolve over time and, in an ideal world, should be subject to interpretation and caution.

ID Reference Key words
Bertrand Russell (1952). The Impact of Science on Society. https://www.routledge.com/ Science, Philosophy, Religion, Politics.
Allen B. Downey (1999). Think C++ https://greenteapress.com C++ Programming.
Allen Downey, Jeff Elkner and Chris Meyers (2002). Learning with Python. How to Think Like a Computer Scientist https://greenteapress.com Python Programming
Pete Goodliffe (2006). Code Craft. The Practice of Writing Excellent Code https://nostarch.com/ Programming.
Allen B. Downey (2007). Physical Modeling in MATLAB https://greenteapress.com Physical Modeling, MATLAB Programming.
Allen B. Downey and Nicholas Monje (2008). How to Think Like a (Functional) Programmer https://greenteapress.com OCaml programming.
Allen B. Downey (2009). Python for Software Design. How to Think Like a Computer Scientist https://greenteapress.com Python Programming.
Norman Matloff (2011). Art of R Programming. A Tour of Statistical Software Design https://nostarch.com/ Programming, R
Robert Sedgewick & Kevin Wayne (2011). Algorithms. 4th Edition. Addison Wesley. https://algs4.cs.princeton.edu Programming, Algorithms, Java.
Allen B. Downey (2012). Think Complexity: Complexity Science and Computational Modeling https://greenteapress.com Complexity Science, Computational Modeling, Python Programming.
V. Anton Spraul (2012). Think Like a Programmer. An Introduction to Creative Problem Solving https://nostarch.com/ Programming
Allen B. Downey (2013). Think Bayes. Bayesian Statistics in Python. https://greenteapress.com Bayesian Statistics, Python Programming.
Alvin Alexander (2013). Scala Cookbook. Recipes for Object-Oriented and Functional Programming. https://www.oreilly.com/ Scala programming, Object-Oriented Programming, Functional Programming.
Al Sweigart (2013). Hacking Secret Ciphers with Python. http://inventwithpython.com/ Python Programming.
Fred Hebert (2013). Learn You Some Erlang for Great Good! A Beginner's Guide https://nostarch.com/ Erlang Programming.
Allen B. Downey (2014). Think Stats, Second Edition. https://greenteapress.com Statistics, Python Programming.
Nina Zumel and John Mount (2014). Practical Data Science with R https://www.manning.com/ Data Science, R.
Dave Fancher (2014). Book of F#. Breaking Free with Managed Functional Programming https://nostarch.com/ Programming, Functional programming, F#, .NET
Allen B. Downey (2015). Think Python, 2nd edition https://greenteapress.com Python Programming.
Allen B. Downey (2015). Think OS. A Brief Introduction to Operating Systems https://greenteapress.com Operating Systems
Stephen A. Thomas (2015). Data Visualization with JavaScript https://nostarch.com/ Data visualization, JavaScript
Alex Reinhart (2015). Statistics Done Wrong. The Woefully Complete Guide https://nostarch.com/ Statistics, errors, misconceptions.
Amit Saha (2015). Doing Math with Python. Use Programming to Explore Algebra, Statistics, Calculus, and More! https://nostarch.com/ Mathematics, Python, Algebra, Statistics, Calculus.
Ian Robinson, Jim Webber, and Emil Eifrém (2015). Graph Databases. 2nd Edition. https://neo4j.com/ Graphs, Graph databases, Neo4j.
William Kennedy with Brian Ketelsen and Erik St. Martin (2015). Go in Action https://neo4j.com/ Go Programming.
Al Sweigart (2015). Automate the Boring Stuff with Python. https://www.oreilly.com/ https://automatetheboringstuff.com/ Python Programming.
Daniel Higginbotham (2015). Clojure for the Brave and True. Learn the Ultimate Language and Become a Better Programmer https://nostarch.com/ Clojure Programming.
Allen B. Downey (2016). The Little Book of Semaphores https://greenteapress.com Concurrent Programming
Allen B. Downey (2016). Think DSP. Digital Signal Processing in Python https://greenteapress.com Digital Signal Processing, Python Programming
Allen B. Downey and Chris Mayfield (2016). Think Java https://greenteapress.com Java Programming, Java 6.
Chris Garrard (2016). Geoprocessing with Python https://www.manning.com/ Geoprocessing, Geospatial Data, Python.
Sau Sheong Chang (2016). Go Web Programming https://www.manning.com/ Go Programming, Web Applications.
Matt Butcher and Matt Farina (2016). Go in Practice https://www.manning.com/ Go Programming.
Tilman M. Davies (2016). Book of R. A First Course in Programming and Statistics https://nostarch.com/ Python Programming, Statistics.
François Chollet (2017). Deep Learning with Python https://www.manning.com/ Deep Learning, Machine Learning, Python.
Allen B. Downey (2017). Think Data Structures: : Algorithms and Information Retrieval in Java https://greenteapress.com Data Structures, Algorithms, Information Retrieval, Java Programming.
Allen B. Downey (2018). Think Complexity: Complexity Science and Computational Modeling, Second Edition https://greenteapress.com Complexity Science, Computational Modeling, Python Programming.
Al Sweigart (2018). Cracking Codes with Python. http://inventwithpython.com/ https://nostarch.com/ Python Programming.
François Chollet (2018). Deep Learning with R https://www.manning.com/ Deep Learning, Machine Learning, R.
Nishant Shukla with Kenneth Fricklas (2018). Machine Learning with TensorFlow https://www.manning.com/ Machine Learning, TensorFlow, Python.
Thomas Scheffler (2019). How to Think Like a Computer Scientist. C Version. https://github.com/tscheffl/ThinkC/ C Programming.
Al Sweigart (2019). Automate the Boring Stuff with Python. Second Edition https://nostarch.com/ Python Programming.
Eric Matthes (2019). Python Flash Cards. Syntax, Concepts, and Examples https://nostarch.com/ Python Programming.
Lam Thuy Vo (2019). Mining Social Media. Finding Stories in Internet Data https://nostarch.com/ Python, Social Media.
Josh Lospinoso (2019). C++ Crash Course. A Fast-Paced Introduction https://nostarch.com/ C++ Programming.
Will Kurt (2019). Bayesian Statistics the Fun Way. Understanding Statistics and Probability with Star Wars, LEGO, and Rubber Ducks https://nostarch.com/ Bayesian statistics
Peter Farrell (2019). Math Adventures with Python. An Illustrated Guide to Exploring Math with Code https://nostarch.com/ Mathematics, Python.
Mark Needham, Amy E. Hodler (2019). Graph Algorithms: Practical Examples in Apache Spark and Neo4j https://www.oreilly.com/ Graphs, Graph algorithms, Apache Spark, Neo4j.
Andrew W. Trask (2019). Grokking Deep Learning https://www.manning.com/ Deep Learning, Machine Learning.
Hobson Lane, Cole Howard, Hannes Hapke (2019). Natural Language Processing in Action. Understanding, analyzing, and generating text with Python https://www.manning.com/ Natural Language Processing, Python.
Max Pumperla and Kevin Ferguson (2019). Deep Learning and the Game of Go https://www.manning.com/ Deep Learning, Machine Learning, Game of Go, Python.
Jesse C. Daniel (2019). Data Science with Python and Dask https://www.manning.com/ Data Science, Pandas, NumPy, Scikit-Learn, Python, Dask.
Nina Zumel and John Mount (2019). Practical Data Science with R. Second Edition. https://www.manning.com/ Data Science, R.
David Kopec (2019). Classic Computer Science Problems in Python https://www.manning.com/ Computer Science, Python.
Allen B. Downey and Chris Mayfield (2020). Think Java, Second Edition https://greenteapress.com Java Programming, Java 7.
Allen B. Downey (2020). Astronomical Data in Python https://allendowney.github.io/ Astronomical Data, Python Programming
Robert C. Seacord (2020). Effective C. An Introduction to Professional C Programming https://nostarch.com/ C Programming.
Daniel Zingaro (2020). Algorithmic Thinking. A Problem-Based Introduction https://nostarch.com/ Algorithm, Programming.
Matthew Justice (2020). How Computers Really Work. A Hands-On Guide to the Inner Workings of the Machine https://nostarch.com/ Computers.
Alexander Zai and Brandon Brown (2020). Deep Reinforcement Learning in Action https://www.manning.com/ Deep Reinforcement Learning, Reinforcement Learning, Machine Learning.
Mohamed Elgendy (2020). Deep Learning for Vision Systems https://www.manning.com/ Deep Learning, Machine Learning, Vision.
Miguel Morales (2020). Grokking Deep Reinforcement Learning https://www.manning.com/ Deep Reinforcement Learning, Reinforcement Learning, Machine Learning.
John T. Wolohan (2020). Mastering Large Datasets with Python. Parallelize and Distribute Your Python Code https://www.manning.com/ Parallelism, Distributed Technologies, Large Datasets, Python.
Paul Orland (2020). Math for Programmers. 3D graphics, machine learning, and simulations with Python https://www.manning.com/ Mathematics, Programming, Data Science, Machine Learning, Computer Graphics, Cryptography.
Hefin I. Rhys (2020). Machine Learning with R, the tidyverse, and mlr https://www.manning.com/ Machine Learning, R, tidyverse, mlr.
Oliver Dürr, Beate Sick, Elvis Murina (2020). Probabilistic Deep Learning. With Python, Keras and TensorFlow Probability https://www.manning.com/ Probabilistic Deep Learning, Deep Learning, Machine Learning, Python, Keras, TensorFlow.
David Kopec (2020). Classic Computer Science Problems in Java https://www.manning.com/ Computer Science, Java.
Bina Ramamurthy (2020). Blockchain in Action https://www.manning.com/ Cryptography, Blockchain.
Ken Youens-Clark (2020). Tiny Python Projects https://www.manning.com/ Python programming.
Randall Hyde (2020). Write Great Code, Volume 1, 2nd Edition. Understanding the Machine https://nostarch.com/ Programming.
Randall Hyde (2020). Write Great Code, Volume 2, 2nd Edition. Thinking Low-Level, Writing High-Level https://nostarch.com/ Programming.
Randall Hyde (2020). Write Great Code, Volume 3. Engineering Software https://nostarch.com/ Programming.
Allen B. Downey 2021 Think Bayes, Second Edition. Bayesian Statistics Made Simple https://greenteapress.com Bayesian Statistics, Python Programming.
Randall Hyde (2021).The Art of 64-Bit Assembly, Volume 1. x86-64 Machine Organization and Programming https://nostarch.com/ 64-Bit Assembly, x86-64 Machine, Programming.
Fred Hebert (2021). Racket Programming the Fun Way. From Strings to Turing Machines https://nostarch.com/ Racket Programming.
Tomaž Bratanič (2021). Graphs and Network Science: An Introduction https://www.manning.com/ Graphs, Data science.
Jesús Barrasa & Jim Webber (2021). Building Knowledge Graphs: A Practitioner’s Guide. https://neo4j.com/ Data science, Graphs, Knowledge graphs, Neo4j.
Alessandro Negro (2021). Graph-Powered Machine Learning https://www.manning.com/ Graphs, Graph Algorithms, Machine Learning, Neo4j.
Robert (Munro) Monarch (2021). Human-in-the-Loop Machine Learning. Active learning and annotation for human-centered AI https://www.manning.com/ Machine Learning, Artificial Intelligence.
David Wong (2021). Real-World Cryptography https://www.manning.com/ Cryptography.
Marcello La Rocca (2021). Advanced Algorithms and Data Structures https://www.manning.com/ Algorithms, Data Structures.
Boris Paskhaver (2021). Pandas in Action https://www.manning.com/ Data Science, Pandas, Python.
François Chollet (2021). Deep Learning with Python. Second Edition. https://www.manning.com/ Deep Learning, Machine Learning, Python,
Sarah C. Kaiser and Cassandra E. Granade (2021). Learn Quantum Computing with Python and Q#. A hands-on approach https://www.manning.com/ Quantum Computing, Python, Q#.
Matthew A. Titmus (2021). Cloud Native Go Building Reliable Services in Unreliable Environments https://www.oreilly.com/ Go programming.
Robin Nixon (2021). Learning PHP, MySQL & JavaScript. A Step-by-Step Guide to Creating Dynamic Websites. Sixth Edition. https://www.oreilly.com/ Web development, websites, dynamic website, PHP, MySQL, JavaScript, PHP8, MySQL8, React.
Patrick Viafore (2021). Robust Python. Write Clean and Maintainable Code https://www.oreilly.com/ Python programming.
Alvin Alexander (2021). Scala Cookbook. Recipes for Object-Oriented and Functional Programming. Second Edition. https://www.oreilly.com/ Scala programming, Object-Oriented Programming, Functional Programming.
Allen B. Downey (2022). Data Structures and Information Retrieval in Python https://greenteapress.com Python Programming, Data Structures, Information Retrieval.
Yuli Vasiliev (2022). Python for Data Science. A Hands-On Introduction https://nostarch.com/ Python, data science.
Lee Vaughan (2022). Python Tools for Scientists. An Introduction to Using Anaconda, JupyterLab, and Python's Scientific Libraries https://nostarch.com/ Python, data science, Anaconda, JupyterLab.
Adam Schroeder, Christian Mayer, and Ann Marie Ward (2022). The Book of Dash. Build Dashboards with Python and Plotly https://nostarch.com/ Python, Plotly, Pandas, data visualization.
Anthony DeBarros (2022). Practical SQL, 2nd Edition. A Beginner’s Guide to Storytelling with Data https://nostarch.com/ SQL
Bob Plantz (2022). Introduction to Computer Organization. An Under the Hood Look at Hardware and x86-64 Assembly https://nostarch.com/ Computers, x86-64 Assembly.
Suzanne J. Matthews, Tia Newhall, and Kevin C. Webb (2022). Dive Into Systems. A Gentle Introduction to Computer Systems https://nostarch.com/ Computers.
Klaus Iglberger (2022). C++ Software Design. Design Principles and Patterns for High-Quality Software https://www.oreilly.com/ C++ programming.
Ken Youens-Clark (2022). Command-Line Rust. A Project-Based Primer for Writing Rust CLIs https://www.oreilly.com/ Rust programming.
William Lyon (2022). Fullstack GraphQL Applications with React, Node.js, and Neo4j. https://neo4j.com/ https://www.manning.com/ GraphQL, React, Node.js, Neo4j.
Alessandro Negro with Vlastimil Kus, Giuseppe Futia and Fabio Montagna (2022). Knowledge Graphs Applied https://www.manning.com/ Graphs, Knowledge Graphs.
Stephan Raaijmakers (2022). Deep Learning for Natural Language Processing https://www.manning.com/ Deep Learning, Machine Learning, Natural Language Processing.
Bastian Gruber (2022). Rust Web Development. With warp, tokio, and reqwest https://www.manning.com/ Rust, Web Development, warp, tokio, reqwest, synchronous environment, web APIs, JSON.
Johan Vos (2022). Quantum Computing in Action https://www.manning.com/ Quantum Computing, Qubits, Quantum Gates, Superposition, Entanglement, Hybrid Computing, Quantum Algorithms.
Dane Hillard (2022). Publishing Python Packages. Test, share, and automate your projects https://www.manning.com/ Python, Python Packages, Packaging, Installing, Testing, Git, GitHub.
Yehonathan Sharvit (2022). Data-Oriented Programming. Reduce software complexity https://www.manning.com/ Programming, Data-Oriented Programming.
Ville Tuulos (2022). Effective Data Science Infrastructure. How to make data scientists productive https://www.manning.com/ Data Science, Productivity, Efficiency, Machine Learning, Cloud, Conda, Metaflow, Docker, Large Datasets, Infrastructure.
Bogumił Kamiński (2022). Julia for Data Analysis https://www.manning.com/ Julia Programming, Data Science.
Josh Goldberg (2022). Learning TypeScript. Enhance Your Web Development Skills. Using Type-Safe JavaScript https://www.oreilly.com/ Web development, TypeScript, JavaScript.
Markus Eisele and Natale Vinto (2022). Modernizing Enterprise Java. A Concise Cloud Native Guide for Developers https://www.oreilly.com/ Java programming, Enterprise Java, Cloud.
Thomas Hunter II and Bryan English (2022). Multithreaded JavaScript. Concurrency Beyond the Event Loop https://www.oreilly.com/ JavaScript programming, Multithreaded JavaScript, Concurrency.
Pierre-Olivier Laurence & Amanda Hinchman-Dominguez, with G. Blake Meike & Mike Dunn (2022). Programming Android with Kotlin. Achieving Structured Concurrency with Coroutines https://www.oreilly.com/ Kotlin programming, Android, Concurrency, Coroutines.
Ian Griffiths (2022). Programming C# 10. Build Cloud, Web, and Desktop Applications https://www.oreilly.com/ C# programming, C#10, Cloud, Web development, Desktop Application.
Kevin Kline, Regina O. Obe, and Leo S. Hsu (2022). SQL in a Nutshell. A Desktop Quick Reference. Fourth Edition https://www.oreilly.com/ C# programming, C#10, Cloud, Web development, Desktop Application.
Al Sweigart (2022). The Recursive Book of Recursion. Ace the Coding Interview with Python and JavaScript https://nostarch.com/ Python Programming, JavaScript Programming, Recursion.
Christian Mayer (2022). The Art of Clean Code https://www.oreilly.com/ Programming.
Fred Hebert (2022). Data Structures the Fun Way. An Amusing Adventure with Coffee-Filled Examples https://nostarch.com/ Programming, Data Structures.
Michael S. Horn, Melanie West, Cameron Roberts (2022). Introduction to Digital Music with Python Programming Learning Music with Code https://www.routledge.com/ Python Programming, Music.
Bertrand Russell (2023). L'impact de la science. Promesses et périls. Éditions La Baconnière [French translation of The Impact of Science on Society by William Perrenoud. Revised and edited by Normand Baillargeon & Chantal Santerre in 2023] https://www.editions-baconniere.ch/ Science, Philosophy, Religion, Politics.
Allen B. Downey (2023). Modeling and Simulation in Python https://greenteapress.com , https://nostarch.com/ Python Programming, Modeling, Simulation.
Bradford Tuckfield (2023). Dive Into Data Science. Use Python to Tackle Your Toughest Business Challenges https://nostarch.com/ Python Programming, data science.
Rick Silva (2023). MySQL Crash Course. A Hands-on Introduction to Database Development https://nostarch.com/ MySQL database.
Colleen M. Farrelly and Yaé Ulrich Gaba (2023). The Shape of Data. Geometry-Based Machine Learning and Data Analysis in R https://nostarch.com/ R programming, Machine Learning, Geometry.
Daniel Zingaro (2023). Algorithmic Thinking. A Problem-Based Introduction. Second Edition. https://nostarch.com/ Algorithm, Programming.
Keita Broadwater and Namid Stillman (2023). Graph Neural Networks in Action https://www.manning.com/ Graphs, Neural Networks, Graph Neural Network (GNN).
Doug Farrell (2023). The Well-Grounded Python Developer. How the pros use Python and FlasK https://www.manning.com/ Programming, Python, Flask.
Tomaž Bratanič (2023). Graph Algorithms for Data Science https://www.manning.com/ Graphs, Graph Algorithms, National Language Processing, Cypher, Machine Learning.
Krishnendu Chaudhury (2023). Math and Architectures of Deep Learning https://www.manning.com/ Mathematics, Deep Learning, Machine Learning.
Tiago Rodrigues Antao (2023). Fast Python. High performance techniques for large datasets https://www.manning.com/ Data Science, Python, Large Datasets, NumPy, Pandas, Cython, GPU computing.
Erik Engheim (2023). Julia as a Second Language. General purpose programming with a taste of data science https://www.manning.com/ Julia Programming, Data Science.
Joel Holmes (2023). Shipping Go. Develop, deliver, discuss, design, and go again https://www.manning.com/ Go Programming, Automated Software Delivery Pipeline.
Oleksandr Kaleniuk (2023). Geometry for Programmers https://www.manning.com/ Geometry, Programming, CAD, game engines, GIS.
Bartłomiej Płotka (2023). Efficient Go. Data-Driven Performance Optimizations https://www.oreilly.com/ Go programming.
Christopher Preschern (2023). Fluent C. Principles, Practices, and Patterns https://www.oreilly.com/ C programming.
Allen B. Downey (2023). Probably Overthinking It: How to Use Data to Answer Questions, Avoid Statistical Traps, and Make Better Decisions https://greenteapress.com https://press.uchicago.edu/ Data Science
Vadim Smolyakov (2024). Machine Learning Algorithms in Depth https://www.manning.com/ Machine learning, algorithms
Luca Antiga, Eli Stevens, Howard Huang, Thomas Viehmann (2024). Deep Learning with PyTorch, Second Edition https://www.manning.com/ Deep learning, Python, PyTorch, CNN, RNN, transformers, generative AI model.
Hobson Lane, Maria Dyshel (2024). Natural Language Processing in Action. Second Edition https://www.manning.com/ Natural Language Processing, Python.
Al Sweigart (2024). Automate the Boring Stuff with Python. Third Edition https://nostarch.com/ Python Programming.
Josh Lospinoso (2024). C++ Crash Course. A Fast-Paced Introduction. Second Edition. https://nostarch.com/ C++ Programming.
Numa Dhamani and Maggie Engler (2024). Introduction to Generative AI. An ethical, societal, and legal overview https://www.manning.com/ Generative AI, Artificial Intelligence, Ethics, Sociology, Law.
Sebastian Raschka (2025). Build a Large Language Model (From Scratch) https://www.manning.com/ Machine learning, Large Language Models (LLMs)
Allen B. Downey (2025). Elements of Data Science https://allendowney.github.io/ https://nostarch.com/ Data Science
Tim Boring. Build an Orchestrator in Go (From Scratch) https://www.manning.com/ Go Programming, Docker API, Orchestration System.
Robert Ness. Causal AI https://www.manning.com/ Artificial Intelligence, Causality, Causal Reinforcement Learning, Causal Inference, PyTorch, Pyro, Python.
Philipp Hagenlocher . Haskell Bookcamp https://www.manning.com/ Haskell Programming, Programming.
John Maiden. ML for Knowledge Graphs with Neo4j https://www.manning.com/ Graphs, Knowledge Graphs, Machine Learning, Neo4j.
Leo Porter and Daniel Zingaro. Learn AI-Assisted Python Programming. With GitHub Copilot and ChatGPT https://www.manning.com/ Python, ChatGPIT, GitHub Copilot.
Nicole Koenigstein. Transformers in Action https://www.manning.com/ Machine Learning, Large Language Models (LLMs), ChatGPT, Bard, LLAMA, Ray Tune, Optuna, HuggingFace, Reinforcement Learning.


— 11 February 2024