An incomplete list of learning resource books that I have fully or partially read.
⭐ means that I highly recommend this book.
- ⭐ Programming in Lua, Fourth Edition; Roberto Ierusalimschy
Lua, my G.O.A.T. The exercises in this book are really good.
- ⭐ The Rust Programming Language; Steve Klabnik, Carol Nichols, Chris Krycho, with contributions from the Rust Community
Freely available online. Including rustlings and the brown book.
- ⭐ Programming in Haskell, Second Edition; Graham Hutton
This book is split int otwo parts: first covering basic concepts in pure programming then more advanced topics in impure programming. Each chapter is followed by further readings and exercises. It also includes a bibliography with additional resources. Videos, lecture slides, code examples, and an errata are available on the book's website.
- ⭐ Introduction to Linear Algebra, Sixth Edition; Gilbert Strang
Used for a class. I had the opportunity to teach a linear algebra class once for a single day, and it was fun. The chapters are short so it's really easy to take one or two passes then solidify everything you learned with the great exercises that follow.
- ⭐ Longman Student Grammar of Spoken and Written English; Douglas Biber, Susan Conrad, Geoffrey Leech
Used for a class. I have an insane number of sticky notes in this book. It's comical even. Great book for a linguist interested in the English language.
- ⭐ Buddhism: A Very Short Introduction, First Edition; Damien Keown
Part of the "Very Short Introductions" series (148 pages). I bought this from a chic bookstore while reading Houseki no Kuni. In it, Damien Keown explores the creation and evolution of Buddhism, its variations, central teachings, and its dissemination throughout Asia and the West. There exists a new and updated second edition.
- ⭐ Confucianism: A Very Short Introduction; Daniel K. Gardner
Part of the "Very Short Introductions" series (124 pages). I bought this while reading Kingdom, where the comparison of Legalism and Confucianism is an existing theme. In it, Daniel K. Gardner explores classical Confucianism, Mencius and Xunzi schools of Confuciansim, and Neo Confucianism, ending with Confucianism in practice leading into the 20th and 21st centuries.
- Introduction to Mathematical Analysis I; B. Lafferiere, G. Lafferiere, Nguyen Mau Nam
Used for a class. G. Lafferiere and Nguyen Mau Nam were two of my professors whom I deeply respect.
- The Book of Shaders; Patricio Gonzalez Vivo, Jen Lowe
Freely available online. This book is incomplete.
- HTML and CSS; Jon Duckett
MDN Web Docs tends to be a better reference, but this book can provide helpful visuals, although a bit dated.
- Engineering Software Products; Ian Sommerville
Used for a class. Introduction to different software architectures and Agile methodologies.
- ⭐ Physically Based Rendering: From Theory to Implementation, Fourth Edition; Matt Pharr, Wenzel Jakob, Greg Humphreys
Freely available online.
- ⭐ Deep Learning; Ian Goodfellow and Yoshua Bengio and Aaron Courville
Freely available online.
- ⭐ Riichi Book I; Daina Chiba
Freely available online. Riichi Mahjong Strategy Guide.
- ⭐ The Go Programming Language; Alan A. A. Donovan, Brian W. Kernighan
A little dated and does not include items like generics, but otherwise a quality book in its depth with good exercises. A good supplement for the missing material would be "Go by Example", by Mark McGranaghan and Eli Bendersky. Code examples and an errata are available on the book's website.
- ⭐ Ray Tracing in One Weekend Series; Peter Shirley, Trevor David Black, Steve Hollasch
Freely available online.
- The C Programming Language, 2nd Edition; Brian Kernighan, Dennis Ritchie
Freely available online.
- The Modern JavaScript Tutorial; Ilya Kantor, with contributions from the JavaScript Community
Freely available online.
- Analysis with an Introduction to Proof (Pearson+), Fifth Edition; Steven R. Lay
Used for a class. Partially supplemented by the other analysis book on this list.
- Learn OpenGL; Joey de Vries
Freely available online.
- Elements (Green Lion Press Edition); Euclid
- Introduction To Topology, Third Edition; Bert Mendelson 1975
Published by Dover.
- ⭐ Introduction To Graph Theory; Richard J. Trudeau 1976
Published by Dover. This book uses graph theory as an introduction to pure mathematics.
- Making Embedded Systems, Second Edition; Elecia White
- Differential Equations, 4th Edition; Paul Blanchard, Robert L. Devaney, and Glen R. Hall
Used for a class.
- Pro Git, 2nd Edition; Scott Chacon and Ben Straub
Freely available online. Worth reading chapters 1-3; then optionally, 5, 7, and 8.
- Category Theory for Programmers; Bartosz Milewski
- Display of the earth taking into account atmospheric scattering; Nishita et al. 1993
The classic paper on atmospheric scattering.
- An Improved Illumination Model for Shaded Display; Turner Whitted 1980
The classic paper on ray-tracing.
- Calculating the Singular Values and Pseudo-Inverse of a Matrix; G. Golub and W. Kahan 1965
Σ=𝑈*𝐴𝑉
- A Logical Calculus of the Ideas Immanent in Nervous Activity; McCulloch and Pitts 1943
Introduces the neural network.
- The Perceptron: A Probabilistic Model For Information Storage and Organization in the Brain; F. Rosenblatt 1958
Introduces the perceptron.
- Illumination for computer generated pictures; Bui Tuong Phong 1975
Introduces the Phong reflection model.
- Models of light reflection for computer synthesized pictures; James F. Blinn 1977
Introduces the Blinn–Phong reflection model.
- A Pixel Is Not A Little Square; Alvy Ray Smith 1995
Famous technical memo on sampling.
- Data types à la carte; W. Swierstra 2008
Injecting an arbitrary number of algebras into a free monad without recompiling existing code.