My recent favourites:
Bayesian Data Analysis, 3rd ed, by Gelman et al
Designing Data-Intensive Applications, by Martin Kleppmann
The Art of Electronics, by Horowitz & Hill
I was originally a Physics major and lately I've been on a kick of filling in the mathematics that was used in my Physics classes but that I feel like was never really gone into in much depth.
My current reading list is:
- "Analysis I" (and II) by Terence Tao (I finished the first volume and am now on the second, but I consider them really one book)
- "Understanding Analysis" by Stephen Abbott
- "Topology Through Inquiry" by Starbird and Su
- "Introduction To Topology And Modern Analysis" by George F. Simmons
The Terence Tao books are amazing so far. Extremely readable introduction to Real Analysis. Abbott also came highly recommended and from reading the first couple chapters I can see why as it also seems to be very readable. I don't know if it would be a better introduction than Tao, but it covers mostly the same material and I think having two different perspectives will really help solidify things for me.
Once I finish those, I'll see whether I want to go deeper into Topology or move to Complex Analysis or Differential Geometry.
I also have a copy of Emily Riehl's Category Theory in Context. I've read some Category Theory before and have a basic grasp, but after reading a few pages of her book, I put it aside until I feel like I'm much more well versed in Topology (the content looks amazing and I really want to read it, but it relies on Algegraic Topology more heavily than other Category Theory material I've seen). So I'll see where I'm at after getting through those Topology books.
[1] https://isthisit.nz/posts/2019/domain-modeling-made-function...
Martin Kleppmann's Designing Data-Intensive Applications. Based on the frequent praise it receives here, haven't gotten far yet. I have some project ideas (for personal and professional projects) that could benefit from reading through it.
Martin Fowler's 2018 update to Refactoring. I read the original one a long time ago. In context, we have a work lunch & learn series and I'm interested in doing some presentations on the topic of refactoring (why, how, and when in particular) so it seemed appropriate to refresh my memory on some specific terminology from the book as well as to see if it's an appropriate book to recommend to colleagues. My recollection of the first edition is that I'd recommend it to colleagues, but it's been so long I'd rather read it once more before actually recommending it.
I reread Robert C. Martin's Clean Code based on some recent discussion here where it was rather strongly dismissed by a fair number of people. I didn't recall it being bad, my reread confirmed it is not, in fact, bad. Java-heavy, which is now an unpopular style of OOP, but otherwise a very good book. I'd still recommend it to junior colleagues paired with some caveats about avoiding seeing the world in black & white. There is no singular Way of Programming, but learn various ways and find what works for you and your team.
There are some more, but it's almost 5am and I haven't been able to sleep so I don't recall everything that's in the book stack or ebook queue. These are the ones I'm most interested in at present.
La technique ou l’Enjeu du siècle (The Societal Society) - Jacques Ellul [0]
A New Critique of Theoretical Thought - Herman Dooyeweerd [1]
Surveillance After September 11 - David Lyon [2]
The C programming Language - Brian W. Kernighan and Dennis M. Ritchie [3]
[0] https://www.jacques-ellul.org/les-grands-themes/la-technique
[1] https://herman-dooyeweerd.blogspot.com/2018/12/dooyeweerds-c...
[2] https://www.sscqueens.org/publications/surveillance-after-se...
[3] needs no intro here on hackernews
1. 'Write a Interpreter in Go' by Thorsten Ball
2. 'Write a Compiler in Go' by Thorsten Ball
3. 'Crafting Interpreters' by Bob Nystrom
4. 'Ruby under a Microscope' by Pat Shaughnessy
- Structure and Interpretation of Computer Programs (SICP). A classic.
- Crafting Interpreters. Intro to compilers for me.
- Deep Learning for Coders with Fastai and PyTorch.
There's some other books in there too, but I'd be really happy if I finished these. I don't have a degree in CS, and most of what I know is self taught. My goal here is to fill in gaps in my knowledge as best I can.
- Theory of Point Estimation Casella/Lehmann
- Bayesian Data Analysis 3rd ed.
- Convex Optimization - Boyd
- Econometrics - Hayashi
- New Introduction to Multiple Time Series Analysis
- Elements of Statistical Learning
- Machine Learning: A probabilistic perspective
There's a fair amount of overlap between these books, so it's not quite as much as it seems. But i'm hoping to make it through at least a chapter a week this year, which should get me most of the way through them. We'll see how it goes.
I'm already reading Kleppman's book right now. Tons of very useful knowledge, although quite detailed, and a lot of details around distributed computing, consensus algorithms etc (Part II), which I'm not sure I will need and which make the book rather long. Still, surely worth pressing through.
Some titles I would like to dive into in the summer:
- "The Art of Immutable Architecture" by Michael Perry. Possibly also:
- "Machine Learning Design Patterns" by by Valliappa Lakshmanan et al.
- "Building Secure and Reliable Systems" by by Heather Adkins et al.
And perhaps something lighter, more inspirational for the day to day work:
- "Coders at work" by Peter Seibel
Not so technical but it's interesting and engaging.
- "Speech and Language Processing (3rd ed. draft)" - Really good intro to natural language processing.
- Kar by Orhan Pamuk - not a technical book just an intriguing fiction book in turkish I want to read to work on my Turkish;.
If you are into Clojure, you will probably enjoy Elements of Clojure by Zachary Tellman. It is not a tutorial, it's more like an attempt to bring tacit knowledge of idiomatic programming practices into light.
- High Performance Browser Networking by Ilya Grigorik
- Refactoring: Improving the Design of Existing Code by Martin Fowler
- Designing Data-Intensive Applications by Martin Kleppmann
How did you find the latter? I'm a FE developer, so quite keen to get my hands on in data.
- "Extremal Combinatorics" by Staysys Jukna
- "Convex Optimization" by Boyd and Vandenberghe
- "Delay Insensitive Circuits" [1]
- "An Introduction to Mathematical Cryptography" by Hoffstein, Pipher, and Silverman
- "Quantum Computing since Democritus" by Scott AAronson
[1] https://www.delayinsensitive.com
disclosure: I'm the author.
And for fiction: - The Master and Margarita
Might re-read peopleware again as well.
Did not finish Clean Code yet but enjoying it so far too.
- Kubernetes Up and Running
- The Joy of Kotlin
-Incident response in the age of cloud
-Warning Intelligence Handbook
See: https://quran.com/ (With Translations) https://tafsir.app/ (ARABIC)