I am going to repeat what I always say when these book threads come up:
I love all the recommendations here but please say a word or two about why you recommend said books. Sell them to me, don't make me do the work. Dumb lists of titles are so uninteresting.
2 books I absolutely love and have read cover to cover several times, solved most of the 1000+ problems.
1. Inference - Rohatgi
2. Inference - Stapleton
Why I recommend them ?
The real answer is super long. But the short version is - there are thinkers & there are doers. Basically, the mathematical statistics world has these theory-building Bourbaki type guys who write a LOT, say a LOT, but never get to the fucking point (imho). The opposite view is "math is bunch of tricks. its like chess - more middlegames & endgames you know, higher chance of winning. No real point in learning who originally came up with this particular middle game variation, or why does this opening work etc etc. Just learn the trick & play the game." So that's the eastern (Indian/Chinese) school of thought, which is what I subscribe to.
The 2 inference books listed above are essentially grab-bags of tricks. Do this - it works - now try it on these problems - ok next trick...on & on. So I solved the 1000+ problems & now I know lots of these methods that just work.
eg. recently i was asked - some vc's are evaluating a startup. their valuations are $1 million, $4 M,$10M, $20M, $50M. what's your evaluation & why ?
so i'm thinking - hey isn't this just rohatgi taxicar ? so i quickly said- sum is 85, times 1/5 is 17. Whereas largest observed is 50, times 6/5 is 60, so half is 30. since 50 was max observed, another estimator is half that, ie. 25. if you want doctor's estimate, get rid of 1 and 50, then sum is 34 so times 1/3 is 11.3
so then we have 4 estimators, - the sample mean is 17 million, its the method of moments estimator, clearly unbiased but high mean square error because variance is high. the maximum likelihood estimator is 25 mil, and has smallest variance, but the mse will not be the lowest since it is not unbiased so bias square will add. the 30 mil estimate is also unbiased, but has low variance so it has the lowest mse of the lot. the doctor estimator 11 million is unbiased but high variance and mse is in between. now if you want the absolute lowest mse, i can cook up a 5th estimator which has nonzero bias but mse will be the minimum....
at this point the interviewer interrupts me - you've never seen this problem because we came up with it in our last meeting at our firm. Yet you gave me 4 very good estimators under 2 minutes & want to cook up a 5th one that's even better. And you don't even have a phd. meanwhile i just spoke to an actual phd and asked him this same question, he went on and on for 20 minutes without giving me a single concrete estimator!
so that's the thing. rohatgi, stapleton, these are about real world, down & dirty, how to do stuff. how to solve actual problems.
whereas the gelman bda, the shao, the schervish, the lehman, the bickel & doksum - these were my prescribed textbooks. imho they are absolute garbage, worse than dirt. after the exam i threw them away. such bullcrap. they go on & on without getting anywhere & have practically zero good worked examples.
so that's my 2 cents. i still have the rohatgi & stapleton on my desk. sometimes i tear up when i look at them. they have taught me so, so much!
My personal 2ct: first understand how to solve "real" problems, then move on to the abstract theory. I cannot understand the theoretical mathematics behind a concept if I don't have at least one non-trivial example in my head which I understand completely.
I 100% agree with you. I struggled with math through school. I remember wondering what the heck the point of matrices was when I was first learning about them in 10th grade. I got to grad school and I had a professor who explained everything as a problem we were trying to solve and then gave us the tools and then finally the theory. Math went from a constant fight to a fun experience. Now I run the data science department at a corporation (turns out matrices are really important).
I like how you laid this out as a tension between two worldviews. I'm curious: as a seeming master of the "bag of tricks" worldview, do you feel like having fully absorbed so many "tricks" has given you a kind of empirical insight into things?
In other words: have the tricks, when crashed against the real world over and over like you describe, oozed into something akin to a larger theoretical sense of things? Or do they remain isolated tricks that you apply when they seem to match?
(I wish I could frame this question better, but I don't know this field, sadly.)
i will unfortunately give you a half-assed response. Because the truth will take up a lot of time & space & is very inflammatory. So here's what I honestly believe - there are only isolated tricks. The ones who sit in judgement of us, like savants, and claim some sort of coalesced mastery of these tricks into some larger theoretical construct, are faking. They are good at faking, so we listen to them. They have better rhetoric, better optics. But beneath it all, it is a grab-bag of tricks. I worked with several professors. When trying to prove something they will start with their favorite trick. One guy was like - okay let me see if i can cauchy schwarz this. I'm like, why ? Why cauchy schwarz always? There are million inequality bounds. Why pester cs all the time ? He actually looked at me curiously then said I don't know I just have some favorite tricks it seems to work! Atleast he was honest. So that's the deal. If you probe deeply there are a few isolated tricks. They seem to work well. In reality we don't know why they work. But they do. Its like why do you not use spoon for spaghetti ? Why fork ? Ok you can cut lines into a spoon and call it a spork, but then you can't drink soup with the spork. So you reach for the spoon if you want to sip soup, use your fork for spaghetti. Don't try to design some universal theory of cookware. Just buy 1 spoon & 1 fork. That's basically all of mathematical statistics. Few tricks. They work. Why ? I mean who gives a fuck. Maybe bickel & doksum do but I personally don't.
What about creating/finding tricks? I wonder if there a larger theoretical sense of things involved there? What about in a weaker sense, like: "I think I'll start my trial-and-error with this"?
This is fascinating, going to pick up these books. Do you think one needs a background in formal statistics to understand them? If so, do you have any recommendations for self-learning?
> Basically, the mathematical statistics world has these theory-building Bourbaki type guys who write a LOT, say a LOT, but never get to the fucking point (imho).
I find your comment amusing considering:
1. You just wrote 5 paragraphs of anecdotes.
2. Bourbaki Elements of Mathematics is the driest book you can think about. It’s mostly formal definitions and extremely rigorous demonstrations.
Your snide costs you a lot of credibility at least as far as I’m concerned.
I don't understand your objections here. The anecdotes were the selling that was needed to explain why those books work. That is the point of that comment. It got to it almost immediately.
super interesting. that's pretty much align with brute force memorization that's emphasized in many asian countries.
What's your advice in the self-learning prerequisites knowledge/materials before being able to digest those books?
My last math course was calculus I and II back in first year uni 15 years ago as well as stats I and II on my second year (which I completely bamboozled and forgot the material as soon as I barely pass the class).
The most information-dense form of book recommendation possible is probably a “dumb” list consisting largely of books one knows and appreciates, with one or two new titles in addition. I’ll probably learn more about where a person recommending a book I haven’t read is coming from based on a list of their favorites than I will from the text of a hastily constructed review.
In any case, I wouldn’t dismiss someone out of hand for providing a “dumb” list.
In my line of work it's the Annual Book of ASTM Standards.
In particular the handful of volumes that pertain to my established laboratory & field work, as well as possible aspirational efforts.
It can really pay to keep up to date.
Also, the text/content of all the standards are the work of volunteer technical people, who come to complete consensus before the well-paid journalist professionals at the nonprofit publisher send it to press.
ASTM may contain some of the most statistically documented laboratory procedures for repeatabiliy & reproducibility compared to what you normally find.
A lot of the books people have commented on have been influential in the past and do stand on their own today.
Well even though outdated ASTM standards may have limited value, one real offsetting benefit is the past experience of using them in previous years when they were current and some standards were less fully developed.
So if you think about it, the current year's publication is a snapshot, the majority of your collection from previous years is huge by comparison, and ends up proportionally more helpful on the whole, even though somewhat outdated or even obsolete.
And these books are hefty, they weigh kilos per year and cost the big bucks.
Not really worth it either unless you're really ready to dip deeply into the unique type of bureaucracy associated with these type of efforts.
But it gets much worse, you think ASTM books are boring, how about the Federal Register?
There's another ongoing publication where the bureaucracy is so thick, someone can specialize so highly at navigating it that they can more effectively win bids without any technical qualifications compared to actual practicioners, most of whom don't stand a chance on merit alone. Not for me, but if you're aiming for Uncle Sam's pocketbook you need to up your game here.
I guess there are a lot of other books which might inspire people to take some action of their own, or even build a business around. Not always ones that are intended to be inspirational either.
Some people think Buckminster Fuller was inspirational, one of my handful of books when I had a shelf is Earth, Inc.
Title sounds almost like the name of a business or something:
I'll counter. Don't tell my why you recommend it; tell me briefly what it's about instead and I'll decide for myself whether or not I want to read it.
I like to have moments to myself without feeling like I am being sold something. I feel like I am constantly being sold things on the internet; let me do the discovery myself. Let me decide for myself whether or not it is interesting to me.
If someone says why they really like a book, you can just... skip that part. If you post a list of titles with zero context, the only people you're helping are those who just want a list of titles, which is almost certainly the minority.
How to measure anything. I think it's targeted for actuaries/insurance, though I'm not in that field. But it did change my idea of what can be analyzed and measured. The beginning is repetitive. Some of it is very unorthodox. But it was very useful in detailing how to evaluate risk.
How to talk to little kids so little kids will listen. I don't have kids and read it on a whim. I've found it's excellent for communicating with people in general during conflict (especially patients). The author is a counsellor and describes real counselling sessions with parents who want better relationships with their children. I enjoyed how the author uses the same techniques on the adults and obtains the same manner of response as when used on the kids.
Understanding Complexity is not a book but a part of the Great Courses. It's hard to say what it directly changed but it did affect how I view everyday life, from traffic to physiology.
Hui's Approach to Internal Medicine was very helpful for transitioning from knowing about medical facts to practical medical knowledge useful to everyday care. It's focus is on 'approach' rather than facts. It has a practical approach to medical issues. First distinguishing by ones in the same category of pathophysiology then practical approach to distinguishing issues within the category. It's a dense book but an excellent read and a good reference.
"Good Strategy / Bad Strategy" by Richard Rumelt - An awesome book on strategy, which explains very plainly how to construct a reasonable strategy, and see signs of bad strategy. It (among other things) dissects NVIDIA's rise in the late 2000's, and predicts (more or less) the next ten years of where the company went.
"The Effective Manager" by Mark Horstman - All the things that no one says or tells about management and communication.
"Team Topologies" by Skelton and Pais - A really good view of organizational design patterns and anti-patterns for software teams rooted in the premise of Conway's Law.
Second "The Effective Manager", that's one of the best management books I have ever read - and one of the very few totally practical ones. It also gave me a significant head start in managerial life because most of the people above me have no idea how to do any of the things clearly laid out in this book.
All of these books are extraordinary in their sheer ability to organize thousands of small details into thematic narratives of how life operates.
They also reveal how hard we humans try to narrate life into tidy, comprehensible themes.
These books are all of an era (2005-2015), and there are probably newer ones. That said, they are a great guide for non biologists into how experts think things work.
My neuroscience professors referred to Principles of Neuroscience as "the Bible" as well. I think that's testament to how good these recommendations are.
Concrete Mathematics [1], by Graham, Knuth and Patashnik. Wonderfully written (worth buying for the margin jokes alone) and approachable, but dense with information. Great overview of discrete math and algorithm analysis.
generatingfunctionology [2] by Wilf is an excellent companion book to Concrete Mathematics, going deeper into generating functions.
The only math text that has made me laugh out loud, it’s really that funny. You get more of a feeling of sitting down with the authors in office hours than being emailed a list of theorems for homework. The effect is wonderfully motivating.
That's a great description. If you have a solid understanding of high school math and are willing to put in the effort, this is a book that will reward you.
Few of these books are “great works” in their field, but all changed my understanding of their topic.
- How to Read a Book by Adler and Van Doren. I was in academia when I read this and it had a huge impact on how I read and thought about academic papers.
- Intuitive Biostatistics by Motulsky. First stats book that I enjoyed. Emphasises the practice of statistics, particularly the assumptions and mistakes people tend to make.
- World War II Map by Map, published by DK. Had never previously been interested in WW2 history, but something about this took my interest. While reading it, I finally appreciated the scale and complexity of WW2.
- Bobby Fischer Teaches Chess. Working through this one meant I actually started getting better at chess!
- Common Sense Guide to Data Structures and Algorithms by Wengrow. The book that helped me become interested in data structures and algorithms, rather than being something I “should” learn about.
>Bobby Fischer Teaches Chess
Ah, memories. Got this book as a kid soon after I started playing at 11-12. It's just a nice puzzle collection, progresses really nicely in complexity. No notation needed, so very kid friendly. The mating pattern with sacrificing a queen on f7 and forcing the king into the corner with the bishop to deliver backrank mate was my first realisation of the beauty and art of chess, and made a real impression on me. It's quite contrived though, so I've yet to get it over the board. But ever since I read it I look for it whenever it seems even remotely possible. Highly recommended for parents of young kids who have just started learning.
Here's some other chess recommendations:
Silman's 2 books on positional play and endgames: these are fantastic books. The chapters are broken up by rating, ranging from beginner level to master strength(2000 ELO).
Other than those two, puzzle collections are always helpful. And for intermediates, game collections from string players. My favourite is Tal - Botvinnik 1962, written by Tal himself. Tal in my opinion is the greatest genius chess has ever seen(held back by his terrible health), and he was a fantastic author as well. Other great collections include Kasparov's My Great Predecessors and Fischer's My 60 memorable games.
Skip opening books entirely. Pick an opening and find grandmasters who play it. Study their games, understand the ideas of the opening. Memorising theory isn't really helpful below expert level(1800 ELO).
Somehow forgot the two books that had the biggest influence on me. (And forgot for so long that I can’t edit the post.)
- The Population History of England, 1541-1871, by Wrigley and Schofield.
- English Population History from Family Reconstitution, 1580–1837, by Wrigley et al.
These books describe and analyse what was, for the time, an extraordinary amount of painstakingly pieced together historical data. Reading them changed my understanding of how history could be studied.
For the sciences that depend on higher maths, a Calculus book worth mention is "Elementary Calculus: An Infinitesimal Approach", by Jerome Keisler. One thing that makes learning Calculus harder than necessary is the clumsy epsilon and delta formalism, that became sort of the COBOL of Calculus teaching. This formalism is not the intuitive approach Newton and Leibniz used to develop Calculus, based on infinitesimals, that was shunned later because it took time until Abraham Robinson made it rigorous in the 1960s. The book by Keisler showcases nicely a way to improve higher math education, if academia had less inertia. The author made the entire book available for free online: https://people.math.wisc.edu/~keisler/calc.html See also: https://en.wikipedia.org/wiki/Nonstandard_analysis
Intro to Smooth Manifolds, Lee -- sweeping intro to geometry with minimal prereqs, great at balancing the nitty gritty details with conveying intuition
A Course In Arithmetic, Serre -- classically terse and elegant intro to algebraic and analytic number theory. Goes from quadratic forms to Dirichlet's theorem to modular forms in a mere 100 pgs!
Princeton Lectures in Analysis, Stein & Shakarchi -- 4 books covering much of classical/modern analysis, they really shine in their discussion of applications
The large scale structure of space-time, Hawking & Ellis -- The most mathematically satisfying treatment of general relativity I've found. High points include proof of singularity theorems!
Spin Geometry, Lawson & Michelson -- Deep dive into the enigmatic "spin groups" and their applications in geometry. Also the only good (book) reference I could find on the index theorem
Lee is a good book but Loring Tu's An Introduction to Manifolds is a masterpiece in clarity, conciseness, and notation. I'd heavily recommend it over Lee, which can be a bit meandering, for a first course, with a follow-up with Lee and others for material Tu leaves out. Tu's followups in differential geometry and algebraic topology also follow smoothly from it.
Its contents is what I consider the meta game of programming. Understanding types seems to be a real boost to think about architecture, implementation, etc.
It’s also surprisingly approachable, unlike most serious mathematical-logic(-adjacent) books. The three-page elementary treatment of the Knaster–Tarski fixed point theorem is worth reading even if you’re interested in cases for which it’s not sufficient (seriously infinite or order-theoretic things).
My 2c: I think the point is that types themselves are just syntax. It's all bits at the lowest level, so there's really no such thing as a 'type' on a Turing Machine tape. It can be expressed syntactically on the tape, but that's the point.
Pierce is specifically excluding dynamic typing from his definition. He goes on to address this point in the introduction to the book:
> The word "static" is sometimes added explicitly—we speak of a "statically typed programming language," for
example—to distinguish the sorts of compile-time analyses we are considering here from the dynamic or latent typing found in languages such as Scheme, where run-time type tags are used to distinguish different kinds of structures in the heap. Terms like "dynamically
typed" are arguably misnomers and should probably be replaced by "dynamically checked," but the usage is standard.
A static type system is syntactic insofar as the syntax itself is what is being analyzed, not the actual runtime behavior.
Artificial Intelligence: 1787, Immanuel Kant, Kritik der reinen Vernunft (Critique of Pure Reason)—where else to find purer reason than in a machine; unfortunately, Kant has written in Kantian using German words, fortunately, there is a recent, great Kantian to English translation in the works of 2020, Richard Evans, Kant's Cognitive Architecture, PhD Thesis [1]
Beingness: 1954, Martin Heidegger, Was heißt Denken? (What is Called Thinking?)—perhaps the machine can become intelligent following Kant, but if it is to become wise, it will follow Heidegger.
Self-reflection: 1985, Alexandre Grothendieck, Récoltes et Semailles, Réflexions et témoignage sur un passé de mathématicien (Reflections and Testimony on a Mathematician's Past)—insight into one of the most powerful, clear, and precise minds to have ever lived.
Socioeconomics: 1879, Henry George, Progress and Poverty: An Inquiry into the Cause of Industrial Depressions and of Increase of Want with Increase of Wealth: The Remedy—if the human civilization has any chance to exist and thrive beyond the 4th millenium, it's hard to imagine the implementation of that society being very far in principles from this initial specification.
The Selfish Gene should be read by everyone who studies biology or life science. Modern biological sciences are underlied by an understanding of evolution an genetics. I had heard variants of the phrase "change in allele frequency in a population over time," as a description of evolution many times starting in high school. But it wasn't until I read The Selfish Gene in college that I really understood what this meant and how it should shape our view of biology.
The author (a philosopher informed by scientific theories, writing on the subject for many decades) weaves together the grand story explaining biological evolution, evolution of minds, evolution of culture, and more (explaining how memes are a very useful concept to understand the tremendous non-biological changes over the course of the history of life).
Indeed. We are only vessels for our genes, what we do doesn't really matter as long as we pass our genes along, from the perspective of our genes.
I would also recommend other Dawkins books such as The God Delusion, it was one of the pivotal books that turned me from someone vaguely religious to an atheist. It explains simply how the various fallacies of religions are explainable and unwrappable.
> It explains simply how the various fallacies of religions are explainable and unwrappable.
It might be a very good book, but that sort of comments is divisive and does not show as understanding and hence, doss not sell the book, to me at least.
The question of God from an anthropological perspective is fascinating, as it emerged all around the world in completely disconnected populations and societies, yet to answer the same set of questions: how did we happen to be? Why? Are we accountable for anything?
It does not suggest any existence of God, of course, but it does suggest something deep that is that somehow, sentient creatures require answers to what they deem beyond them and typically, Homo Sapiens did/does invoke variations around the idea of superior beings to answer these questions.
As such, I do not understand why some so-called atheists continue to throw stones at religious people instead of showing curiosity at the larger phenomenon.
Religious institutions, though, are a well-organized scam around the beautiful anthropological and philosophical question of God.
That you are saying I didn't understand the book when presumably you didn't even read the book is true irony. I merely explained that it dissects various religious fallacies, that is not throwing stones, as it would be the same as taking a book about mathematical logic and asking why it does not ponder why P ^ ¬P in a philosophical sense; it is not the purpose of this book. It may be the purpose of another one, but not this one.
Dawkins is a priest of atheism and his book is an apologetic tex, so don't expect a more nuanced study of religion from an anthropological point then you would expect from the pope.
Well, let me recommend another book that directly addresses your interest in the anthropology of religion: Breaking the Spell: Religion as a Natural Phenomenon by Dan Dennett.
When I read The Selfish Gene that explanation was very convincing to my (layman's) mind, but I've since wondered if some sort of "multilevel selection" mightn't do a better job of explaining both individual and group behavior. (The idea of "memes" is an interesting metaphor, imo, and nothing more.)
This reminds me of a book I had hoped to read, "Darwin's Cathedral."
You might want to read up on the Extended Evolutionary Synthesis. It's a proposed extension to the modern synthesis of Dawkins' generation and includes concepts like multilevel selection and cultural evolution. It's currently a matter of debate and empirical verification in the field. But it's a lot more in line with my way of thinking about evolution as a constantly self-bootstrapping process finding new media to evolve. I subscribe to an evolutionary cosmology myself(not Sheldrake's drivel), but that's mostly just a pet theory I like to think about when I'm high :D
I enjoyed the Selfish Gene but found the God Delusion crass and superficial by comparison, a sign of an expert in one field overestimating their ability in another.
The Ancestor's Tale is an intimidatingly large book at first glance, but I found it well worth the read. I'd recommend it before The Selfish Gene just because, despite the size, to me the progression from chapter to chapter really kept my attention.
"Best Approximation in Inner Product Spaces" by Frank Deutsch.
This book is about the following problem,
"Given a point P and a set S in a vector space, find the point in S closest to P."
(The most common example of a vector space is the Cartesian Coordinate Plane which is also called R^2 because every point is of the form (x,y) where x and y are real numbers.)
This book is very simply written. All the details of the proofs are provided. Also, Professor Deutsch covers the history of many of the theorems in the book. Applications to Linear Regression, Interpolation, and Control Systems are given. The main prerequisite for reading the book is a course in mathematical analysis (Rudin or Royden) and a course in matrices or linear algebra. The book is based on the graduate level Approximation Theory course which Dr. Deutsch taught for several years.
If you're interested in the effects social media has on political and civic life, these are two great books to read. One is recent, the other is a foundational classic of social psychology:
- Zeynep Tufekci, Twitter and Tear Gas, The Power and Fragility of Networked Protest (2017).
- Erwin Goffman, The Presentation of Self in Everyday Life (1956)
Goffman uses a theatrical metaphor to talk about how our behavior and social life is affected by our perceptions of who the audience is for our actions. Zeynep writes about how the magnifying and flattening effects of social media have been both a help and hindrance to large-scale organizing. Both are wonderful books.
"Unix for Programmers and Users" by Graham Glass and King Ables. Really great book that took you through the basics of Unix, the various shells, all the way to programming with system calls, sockets etc. Even dove into filesystem design, inodes etc. All in one reasonably compact book. I love books that can explain complex stuff in few words and do it well. I got it as part of my studies and I had worked through it already by the time I got the class :)
Later he made a special edition for this newfangled "Linux" stuff :) But the one I had was for the original Unix. Linux was already around at that time but still very much beta quality. At college we mainly used HP-UX and Sequent.
Seven Languages in Seven Weeks: A Pragmatic Guide to Learning Programming Languages by Bruce Tate
Seriously, check out this book. It's delightful! It'll level you up as a software developer. Also, I've heard it heavily influenced José Valim to create Elixir.
It changed my life: I discovered Erlang, which finally got me into FP, and took me to Basho where I got a big leg up on distributed systems and databases.
The older editions of "Physics for Students of Science and Engineering" by Halliday and Resnick are great.
Over the last 60 years, this has been the most commonly used physics text book in college. It's rather well written, and there are many very good homework problems. It covers the basics of mechanics and Electromagnetism and a few other topics also. The older editions have harder problems that are more instructive. By doing the homework problems, the reader learns physics, calculus, and the ability to manipulate and derive formulas.
It is the bible of modern power system operations, and it will become more and more important as more renewable energy comes online. Understanding the concepts presented in this book is the difference between "why haven't we hit 100% renewables yet?!" and "we need market incentives for inertial ancillary services".
So unstable isn't actually a better name for renewable, because they are different dimensions. Battery research is underway to increase the availability of energy derived from renewable sources.
I'm not sure batteries are the answer on a grid scale. From the grid/market perspective, they're incredibly expensive energy time machines. They also come with their own environmental issues. Batteries make sense if you need to make small islanded systems, or need black start capabilities. If you just want to teleport energy/inertia around I think the answer is old school flywheels, pumped hydro, and synchronous condensers.
The real lowest hanging fruit is industrial demand-side response. I'm actively working on this from the grid side, implementing partial control room scada control of heavy industry for real-time grid balancing. Costs a few engineers some grey hairs, which is a lot cheaper than building grid scale batteries to provide the same end result.
"The Art of Insight in Science and Engineering: Mastering Complexity" by Sanjoy Mahajan.
It beautifully treats estimation and problem solving techniques, illustrated by examples from science and engineering. Instead of aiming for a complete, thorough and accurate treatment of problems, its goal is to teach shortcuts to sacrifice some accuracy for much reduced effort. This is a refreshing change to academia where rigor is often pursued at all cost. But in the real world rigor rarely matter, and simplifications are almost always worthwhile, especially initially since we can always refine models if required.
I first read it as an undergraduate and use the estimation and problem solving techniques from it almost daily. Though well hidden, the pdf is available for free on the website of the publisher.
("Data and Reality")[https://www.goodreads.com/book/show/1753248.Data_and_Reality] - despite its age (written before SQL was mainstream) it remains a short, accessible read that lays out how to think about modeling an information schema, particularly where the same piece of information may be used in separate parts of the organisation.
If reading Data and Reality, please read the 2nd edition [1] (the 3rd edition has a co-author who replaced half the stuff with his own "notes"). The 2nd edition is out of print but you can get a PDF here [2]
Agreed on The Discarded Image, it really is very good. I've read it together with Huizinga's The Autumn of the Middle Ages and they both provide fascinating insights into not just how people lived but more importantly what they thought. Medieval Europe is absolutely fascinating and it's great to be shown around by someone as erudite as Lewis and Huizinga.
If you liked The Discarded Image, Lewis's book on courtly love (The Allegory of Love) is also very good. Courtly love is such an inscrutable subject for moderns and I only wish more people wrote as intelligently on the subject as Lewis did, since everything from Petrarch's sonnets to the 16th century Madrigals and beyond are only intelligible if one possesses some understanding of how courtly love works. Now if only I have time to read through Gower like Lewis suggested...
Fantastic to see Bob Allen mentioned here! The research group where I worked tended to be on the opposite side of debates to Prof. Allen, but he’s a skilled and influential historian of the British Industrial Revolution.
The last 10-20 years of research into the Industrial Revolution hasn’t had much impact on popular understanding. Hopefully books like the Very Short Introduction will change that.
Wow, I never expected Nielson & Nielson to be mentioned here. It's one of my favorite books, I have referred to it in some of my past comments, and certainly the best static analysis textbook out there.
I actually took several courses from the authors some years back, and implemented most of the book for a not-so-simple imperative language, including e.g. abstract interpretation for detecting out-of-bounds array accesses.
The book is a bit advanced unless you are well seasoned in the basics of abstract algebra and interpreter / compiler construction. Most fellow students struggled a lot. Hence, the authors have written a prequel [1], which is a bit simpler and also uses Datalog to get going faster.
> certainly the best static analysis textbook out there
During my PhD I really felt stupid reading Muchnick and not getting data-flow analysis.
Nielson & Nielson literally saved my PhD and enabled the creation of the company. I'm so grateful.
Do you have any contact? It'd be cool to invite one of the authors to our weekly internal meetings.
> the authors have written a prequel
Oh crap, that's great!
Honestly, we use Chapter 2 a lot, it already provides so much value. And in fact, you could write a whole book only about that.
Compiler theory is a wide topic, here the focus is on static analysis, while the Dragon Book is more wide-spectrum.
However, I can tell you that this book is so much better than the Muchnick (Advanced Compiler Design and Implementation). The way data-flow analysis is explained in Muchnick sucks, while in POPA it's vertical but once you get over it, everything clicks and you are able to design new analyses in a sound way.
At the point in my life where I read this book, I was a recent ComSci grad, I had already started working and it was clear to me that I needed some framework to understand where I was going. Not just in terms of software, but in general, I needed some north star as far as a process and an ideal to achieve were concerned.
Reading this book gave me exactly that. A clear, understandable framework that explained the progression from understanding how to do something, to being good at doing something, to being a master. While it didn't give me a step by step guide, the lessons in this book gave me ideals by which to work out my own trajectory, whether or not I felt at any given point as though the efforts I was putting in were guiding me towards mastery, but more so than anything, this book gave me patience. I read somewhere that (maybe just in my country, I can't remember) once you've been a software developer for 5 years, you have crossed over the median age of experience in the industry. As a younger engineer, I was impatient, in a rush to do Interesting Work™ and had no appreciation for how whatever I was doing at the current moment was perhaps exactly what I needed to do to get to what was important, which is mastery. That is to say, getting past the point of good to the point of exemplary, not just being a consumer or repeater of skills but a creator of them. I read this book in Year 1 of my software career, I am now in year 5 and I know that because of this book, years 10, 15 and 20 will bring more reward and more joy in deepening skill.
Computer science: Knuth's TAOCP. And Sipser's Introduction to the Theory of Computation.
Programming: SICP, K&R, and Stroustrup. Siebel's Practical common lisp.
Artificial intelligence: AI a modern approach.
Signals and Systems: Oppenheim's book
Probability and statistics: Probability Theory: The Logic of Science by Jaynes
Managing the Professional Service Firm by David Maister.
No longer doing consulting, but found it invaluable as a tech person building a consulting team and trying to break into enterprise. Probably useful for any professional consulting through a firm (lawyers, accountants, big 4, etc.)
Someone mentioned Designing Data Intensive Applications which I’m partial to as well.
I read this one during a period of 4 years when I saw myself neck deep into consulting services managing both development projects and implementations. The book was so much aligned to the reality of things in the field that I started to check mark paragraphs so I could be counting them later.
The authors weave together a basically airtight argument for their thesis, drawing on historical, sociological, and experimental evidence to describe and explain the phenomenon called "culture of honor". It's a short book and really worth reading to see how well an argument can be made.
"Designing and Managing the Supply Chain" by Simchi-Levi. My copy is almost 20 years old but still covers all the fundamentals and most of the necessary details of how supply chains work.
"Logistics Engineering and Management" by Blanchard. The Integrated Logistics Support bible, of you go by some people. Also, the engineering and product development companion to the first book. It covers how good products are designed that can be builf, sourced, maintained and supported throughout their lifetime. Despite the title, actual logistics are not covered. A must for everyone involved in the development of non-consumer goods hardware with life times above 3 years. And also agreat resource for those consumer products. If you always wondered why defense contract are as expensive as they are and are usually signed for a couple of decades, this book gives you the theoretical basis for one part of the answer.
Brigham's book on the Fast Fourier Transform was an eye opener for me. Not so much because of the "Fast" part (which is super interesting and useful too) but it was the introduction I needed to make integral transforms and convolution click. And that helped tremendously to connect a whole bunch of other dots.
I am not a professional game designer, but I really like "The Art of Game Design: A Book of Lenses". It teaches you to look at games (and all kinds of experiences) through different viewpoints like looking at the economy of the game or looking at the love and relationships in the game. Very interesting for thinking about the complex systems within modern games.
I run a professional software-development firm, and Managing the Professional Service Firm by David Maister is the most accurate and instructive book I've read on the topic (and not for lack of other books).
Maister basically made a manual of my whole world which includes things I never thought about like "leverage formulas" and "service programs". Would highly recommend if you are a partner of a firm or thinking of starting your own.
The SICP MITOpenCourseware and associated Brian Harvey CS61 Berkeley lectures are both on YouTube - and the 2nd Edition PDF is currently free from mit.edu:
Big +1 for Code by Petzold. Just started the 2nd edition that came out last month and I'm blown away by Petzold's ability to pack in meaningful, interesting information without sacrificing readability.
Understanding Michael Porter: The Essential Guide to Competition and Strategy
This is a commonly cited book about “strategic thinking”. But despite that, it’s one of the few business books that I actually read every page (as opposed to spotting fluff and selectively skipping pages), and it had a notable impact on the way I think/write/communicate.
I have a lot, probably too many to list, but the Scientific American Library series has some of the best science writing ever, by luminaries in the respective fields like John Wheeler, P.W. Atkins, Julian Schwinger, and others.
Molecular Quantum Mechanics by PW Atkins and RS Friedman
Kind of a niche subject but this one really stands out. The prerequisites are a fairly solid understanding of linear algebra and differential and integral calculus. It's for anyone interested in spectroscopy from IR through UV, the electronic structure of molecules, approximate techniques, molecular symmetry and group theory, computational matrix-based methods, etc.
For background on computational linear algebra, this one is great:
Linear Algebra: A Modern Introduction by David Poole
I often hear Rudin is too challenging to be an introduction to analysis. You need to be very comfortable with relevant proofs already. Then what's so good about it? I'm not doubting it's great because I do hear it lauded, but it's hard to imagine. It is just a collection of mathematical obscurities for super-nerds?
I've been ever-so-slowly self teaching higher maths. Right now halfway through Hammond's book of proof and almost done with Polya 1.
Just note that the mentioned book, colloquially known as Papa Rudin, is definitely not an introduction to analysis, which is usually said to be "Principles of Mathematical Analysis", i.e. Baby Rudin. Even then, Baby Rudin is terrible as an introduction in my opinion, though it is quite good as a reference.
> I'm not doubting it's great because I do hear it lauded, but it's hard to imagine.
Everyone has their own taste, even with math textbooks; there are plenty of acclaimed textbooks I hate (looking at you CRLS).
> I've been ever-so-slowly self teaching higher maths.
I happen to be in a Discord server for people self-studying math. It's a pretty cool place; if you are interested you can contact u/CheapViolin on Reddit.
It’s true that most people will probably drown if you throw them into Rudin first thing (although I’ve known a couple who held their breath, swam the whole length, jumped out and asked for more).
The thing is, “analysis” in (English) mathematical vernacular covers a lot more than were dreamt of in Newton’s philosophy, and that in turn is a lot more than is habitually included in a course entitled “calculus”.
On the other hand, most calculus courses cover (badly and shallowly) many things that are properly from other places (commutative algera [field axioms], order theory [Dedekind completion], general topology [limits and opens], set theory [cardinals]) but just can’t be avoided when talking about the reals.
So, what do you not get in a standard first course in calculus that still goes under “analysis” (but is not a research topic)?
- Filters and/or nets (a coherent viewpoint on all the limits)
- (Multiple) derivatives as objects of (multi)linear algebra (no more horrific “Jacobians” and “Hessians”)
- Implicit / inverse function theorem (local normal form under smooth change of coordinates, cf Morse’s lemma as well)
- All of that in the infinite-dimensional setting (for a decent theory of ordinary differential equations)
- Exponential / trig functions as solutions of ODEs (all other definitions obtained from various solution approximations, requires previous point to be nice and unforced)
- Fourier-Laplace decomposition (take previous point up to eleven, solve all linear ODEs in existence at once, including every passive electric circuit)
- Distributions aka generalized functions (you can, technically, do the previous point without that, but it’s a complete mess; this instead requires a rather advanced theory of infinite-dimensional spaces)
- Differentiation and integration as continuous and smooth operators on infinite-dimensional spaces of functions, infinite-dimensional-vector-valued integrals (you can make do with the classical theory of “differentiating under the integral sign”, but it’s Lovecraftian levels of horrible, better not)
- Integration by residues (together with the previous point, makes the two most powerful methods for computing indefinite integrals when the definite one is intractable and/or inexpressible)
- Functions of a complex variable (required for the preceding to even make sense, unlike mere complex-valued functions is essentially a completely different theory closer to algebra if anything)
- Power series (don’t make sense without the preceding point even if you’re interested in the reals; why I called exponentials and trig the same thing above)
- Lebesgue integration (because Riemann integration sucks for all of the above even if you can make do)
- Stokes theorem (the theorem of multidimensional integration, like Barrow/Newton–Leibnitz is for the one-dimensional case; you did learn multilinear algebra didn’t you?)
- More?
I’m not saying Rudin covers all of that, but no one book does. I’ve also omitted (a lot of) hooks into what are usually considered other disciplines (manifolds, speed of convergence, solution in radicals, probability measures, ...).
Dijkstra’s A Discipline of Programming and its spiritual successor that he did with Scholten Predicate Calculus and Program Semantics. They changed how I think about programming.
You must surely then get his (with Feijen) book A Method of Programming. It is designed for classroom use targeted at a "introductory programming curriculum".
Here's a request: someone once recommended a text book which lays the foundations for understanding all different kinds of programming languages (and presumably their design tradeoffs). And the people who had read it commented that it made it easy to understand different programming languages quickly. Anyone got an idea of what book that might be?
Essentials of Compilation book and lecture series by IU
A big portion of most compiler books focus on parsing. This book instead focuses on implementing a lisp to assembly compiler. Lisp being easy to parse the parsing topic is skipped, instead it focuses on more interesting topics, like register allocation, garbage collection, closure conversion, dynamic typing and so on!
At the end of the book you will have a lisp to assembly compiler and be able to imagine how complicated high level constructs actually run on the machine which is exciting to say the least.
Operating System Design: The Xinu Approach, Second Edition
Unlike most operating system books, this one goes over the implementation of a simple embedded operating system ( Xinu ) and explains its mechanics by going over its code and internal data structures. It also has interesting exercises like extending the OS to support virtual memory.
If you are planning to read this book you should buy one of the supported hardware boards so that you can actually run the OS on it, modify it and load it again to see your changes in action.
How Brands Grow by Byron Sharp is the most compelling overview I have come across about how marketing works at the aggregate level. Despite its flaws, Thinking Fast and Slow is a good companion piece inasmuch as it sheds light on how decisions are made at the individual level.
Rightfully considered a classic in the field, and its third edition was highly anticipated for many years.
This book's niche is in building the intuitive understanding that is often lacking after the typically highly mathematical treatment seen in 200-level circuit theory courses. It's a great transition from "ok, I can manipulate the equations for a circuit with one or two transistors" to being able to design complete, practical electronic devices. The book is also heavily used as a cookbook and reference by practicing electronics engineers as it contains a lot of expert wisdom particularly in the area of high-precision analog circuits (the authors' background is in physics lab instrumentation design).
(Just some fun fiction to bolster one's passion for their chosen profession. Obviously TAOCP, SICP, K&R, and other books in their ranks are better answers.)
It had such a profound effect on me wrt my profession and passion — nearly as if I had grown up without a family, and then one day, the family knocks on my door, and I became whole.
the Unbanking of America - the author does a deep dive and recounts first hand experiences of lower income Americans dealing with banks. I would say this is required reading for anyone interested in Fintech/neobanks that target the lower income segment
Related: the recently released "Cloudmoney" by Brett Scott [0]. Serves as a lay-accessible and politically-neutral crash course on the modern banking system, as well as a polemic warning of the power intrinsic to centralized transaction surveillance, both from state-backed digital fiat, and the "FinTech" private sector. (The author wears his pro-cash bias on his sleeve, and does a reasonable job defending it.)
This book teaches excellent hacking techniques. Everything is build from scratch (c/assembly) so you get to understand things like buffer overflows to the core.
My field of study (what I really like to think and learn about) isn't my field of work, but I like the question so I'll spill some thoughts.
I spend a lot of time thinking about philosophical-ish stuff, so here are some books that have had the strongest residual effects (whether that's changing how I think, changing what I think about, changing my values, or simply getting the thought ball rolling faster):
Ishmael (Daniel Quinn)
1984 (George Orwell)
Brave New World (Aldous Huxley)
Godel, Escher, Bach (Douglas Hofstadter)
The Republic [imp. "the allegory of the cave"] (Plato)
The Genealogy of Morals (Friedrich Nietzsche)
The Social Construction of Reality (Peter L. Berger, Thomas Luckmann)
Tractatus Logico-Philosophicus (L. Wittgenstein)
Dissemination [imp. "The Pharmakon"] (Jacques Derrida)
The Quest for Reality (Barry Stroud)
Languages of Art (Nelson Goodman)
The Structure of Scientific Revolutions (Thomas Kuhn)
Concepts (Jerry Fodor)
The Web of Life (Fritjof Capra)
Foucault's Pendulum (Umberto Eco)
Naming and Necessity (Saul Kripke)
Zen and the Art of Motorcycle Maintenance (Robert Pirsig)
There are others, and a lot of essays (by thinkers like Bertrand Russell, Carl Hempel, Hilary Putnam, WVO Quine, Karl Popper, Alfred Tarski, Gottlob Frege, David Chalmers, Daniel Dennett, Michel Foucault, Jean Baudrillard, Mikhail Bakunin, CS Peirce, and David Hume, among many others), but these seem apropos as they most readily came to mind.
The Planiverse: Computer contact with a two-dimensional world - by A.K. Dewdney
> A mind-bending, paradigm shifting visit with Yedred, a denizen of the 2 dimensional Universe. It is written so that the physics comes through very easily for those without science training. A university student discovers that this being Yendred is communicating with him through his computer. There begins a lively dialog as both the 2D Yendred and the 3D author struggle to explain and understand each others worlds.
> The Glass Bead Game takes place at an unspecified date centuries in the future. Hesse suggested that he imagined the book's narrator writing around the start of the 25th century.
> The setting is a fictional province of central Europe called Castalia, which was reserved by political decision for the life of the mind.. Castalia is home to an austere order of intellectuals with a twofold mission: to run boarding schools, and to cultivate and play the Glass Bead Game, whose exact nature remains elusive and whose devotees occupy a special school in Castalia known as Waldzell.
> The rules of the game are only alluded to — they are so sophisticated that they are not easy to imagine. Playing the game well requires years of hard study of music, mathematics, and cultural history. The game is essentially an abstract synthesis of all arts and sciences.
The World as Will and Representation - by Arthur Schopenhauer
> The phrase "Tat Tvam Asi" ('thou art that'), one of the Mahāvākyas of the Upanishads, displayed on an Indian temple. Schopenhauer uses this Sanskrit phrase to express a foundational tenet of his ethics: 'the will is the in-itself of every appearance, and as such is itself free from the form of appearance, and thus from all multiplicity'.
The Shape of Ancient Thought: Comparative Studies in Greek and Indian Philosophies - by Thomas McEvilley
> Spanning thirty years of intensive research, this book proves what many scholars could not explain: that today’s Western world must be considered the product of both Greek and Indian thought — Western and Eastern philosophies.
> Thomas McEvilley explores how trade, imperialism, and migration currents allowed cultural philosophies to intermingle freely throughout India, Egypt, Greece, and the ancient Near East. This groundbreaking reference will stir relentless debate among philosophers, art historians, and students.
---
Temporary Autonomous Zone - by Hakim Bey
1. Pirate Utopias
2. Waiting for the Revolution
3. The Psychotopology of Everyday Life
4. The Net and the Web
5. Gone to Croatan
6. Music as an Organizational Principle
7. The Will To Power as Disappearance
8. Ratholes in the Babylon of Information
> How can we capture the unpredictable evolutionary and emergent properties of nature in software? How can understanding the mathematical principles behind our physical world help us to create digital worlds?
> This book focuses on a range of programming strategies and techniques behind computer simulations of natural systems, from elementary concepts in mathematics and physics to more advanced algorithms that enable sophisticated visual results.
> Readers will progress from building a basic physics engine to creating intelligent moving objects and complex systems, setting the foundation for further experiments in generative design. Subjects covered include forces, trigonometry, fractals, cellular automata, self-organization, and genetic algorithms.
I read Magister Ludi or The Glass Bead Game several times in my younger days. I was a Hermann Hesse fan. I echo the recommendation but would add what I found most appealing about it is the idea that all knowledge is related. Once players study for years, they realize mathematics and music theory are related. Architecture and geometry are related. By analogy all knowledge is related and one can glide from one concept to another (in a Glass Bead Game) and tell interesting stories. Very influential to me on universality of learning and knowledge.
"The Art of Computer System Performance Analysis: Techniques for Experimental Design, Measurement, Simulation and Modeling"
I have seen so many errors on computer science benchmarks and experimentation that I think this book is a must read when it comes to "how to compare things" in computer science. It goes from the basics to advanced scenarios. I have really great memories of studying quantitative methods during my Master's Degree and reading this book. It is really an underrated book. The confidence it gives when you base your experimentation/benchmark on the theories this book gives is amazing, whatever your audience is you can step in and present the results feeling that what you present is really what it is.
High Performance Browser Networking by Ilya Grigorik you mean.
+1 for the recommendation. I always found it hard to learn about networking from the traditional textbooks and this answered a lot of the questions that I always wondered about.
Wow, never expected The Jazz Theory Book or Effortless Mastery to show up on HN. I'll add The Jazz Piano Book by Mark Levine and Jamey Abersold vol. 1 How To Play Jazz and Improvise
Caveat: MTW stalled me for the longest time by omitting two points:
- Tensors (as well as exterior and symmetric powers) have very little to do with differential geometry (and a fortiori physics) as such except for motivation—go study multilinear algebra first if the fanciful pictures of egg crates don’t help. Learn the coordinate-free definition of the determinant and rederive Cramer’s rule while you’re at it.
- Nobody can satisfactorily explain what the Riemann tensor is as a whole, though you can learn to work with it and understand some of the direct summands. (“A little monster of (multi)linear algebra”, as Gromov’s refreshingly frank book[1] puts it.) This is one of the rare cases where the worse meaning of von Neumann’s oft-abused quote is in force.
If you like the geometric viewpoint proselytized in the earlier parts of MTW before it gets to GR proper, try also Modern Classical Physics by Thorne and Blandford, which is that in doorstopper form (an early version[2] is available online though not advertised).
Probabilistic Robotics. Great overview of fusion and perception techniques for robots with various sensor types, reads like a world class lecture series instead of being a dry textbook.
“Deep Learning for Coders with Fastai and PyTorch: AI Applications Without a PhD” will allow you to design and implement deep learning models with only good programming skill. Basic maths, no algorithms, no proofs. Howard’s paper on ULMFiT was state of the art 5 years ago, and it was originally just a part of this book. My claim is that this will be considered a classic in due time. It turns deep learning from an academic discipline into programming problems.
I recently finished _An Introduction to Linguistic Typology_, by Viveka Velupillai. It does a great job of summarizing areas of linguistics at the beginning of each chapter, giving readers a good refresh of basic linguistics, followed by extensive examples of the variety of strategies employed by languages across the world. The examples are taken from a truly wide variety of languages, many of which I had never heard of, and there's also extensive discussion of statistical tendencies seen in surveys of a wide swath of languages. The different tendencies found in pidgins/creoles are also treated extensively, and each chapter even has a section on sign languages, which are unfortunately still massively understudied.
Overall it felt like an intro to linguistics course book but on steroids. It was really great for widening my exposure beyond the economically powerful languages that are usually the focus of analysis.
I second this choice. Be sure to get the second edition and to read the various fascicles for Knuth's Volume 4 of Art of Computer Programming. Volume 2 has some useful content as well.
“Rich Dad Poor Dad”. Not my field of study (finance) but it can be argued that it is relevant to anybody who cares about their long term financial health. It completely changed how I spend money and build for the future. It is a small book and easy to read.
I loved the grade-school math textbook series by Harold Jacobs:
- Mathematics: A Human Endeavor
- Elementary Algebra
They are peppered with cartoons (especially B.C.) and have lots of real-world motivation. I definitely recommend them for your kids if you have the choice.
This book made me feel like a shit developer, but also made me change the way I think about software. I think it made me a much better developer in how I approach a problem and how I solve it for the customer.
AI and ML: Simon J.D. Prince; Computer Vision: Models, Learning, and Inference. Thorough book with unorthodox explanations and great figures. The book is very pleasant to read. I'm eagerly awaiting new book on Deep Learning from the same author.
It should be mandatory reading for anyone leading a team of any size. The book is from 1987 and the insights into building efficient teams and team spaces is still perfectly valid - like we haven't learned anything during the last 3 to 4 decades.
I also just finished Thinking in Systems and really liked it. I think Feedback Control for Computer Systems[0] is a bit more on the side of a working software engineer (python2 though). Probabilistic Robotics[1] is also an technical approach on control and feedback.
Not my field per se, but in a college course they had us read "All I Need to Know About Manufacturing I Learned in Joe's Garage"
The entire book was a short, simple allegory about Lean manufacturing that walks you through exactly why Lean is so powerful, in a direct comparison to traditional methods. The book was written to be handed out to dumb auto executives.
I still think about the book a lot today even in the software world.
I've been programming since I was 10, earned a C.S. degree in '96, and have been a successful generalist working as a sysadmin, programmer, network engineer, devops, open-source contributor, etc at everywhere from a small ISP in a college town where I was the only tech person to startups to companies as large as H.P. working on enterprise software. Really a bit of everything. I guess you'd call it dev-ops, but even if I were just a programmer, my curiosity about how things work would drive me to understand my tools better. And at the same time, even if I were just a sys admin, my impatience for repetitive tasks would drive me to automate my tasks.
These are the books that really helped fill out my knowledge and helped me in my day-to-day work. In no particular order:
Code by Charles Petzold. I read this around 2010 for the first time. There isn't really anything in it I didn't know, but the material is just so amazingly well presented that it helped me realize there were things I could only explain in a very hand-wavy sort of way or that I'd forgotten. Just an amazing book. I re-read it every so often. I just got the 2nd edition and look forward to reading it soon.
Higher Order Perl by Mark Jason Dominus. Even though I'd mostly moved on from Perl when I read this, this book really helped me better understand C.S. concepts that I should have learned better getting my degree. This is secretly a book about Lisp for people who are allergic to parenthesis. After reading this book, I was able to back to The Little Schemer and The Seasoned Schemer and get a lot more out of them.
All of the Stevens books, but probably UNIX Network Programming to start. I had the TCP/IP state diagram (from TCP/IP Illustrated) taped on my on cubicle wall for a decade or more.
Mastering Regular Expressions by Jeffrey E. F. Friedl. You get what's on the tin with this one. I've used RE's to great effect throughout my career and I mostly have this book to thank for it.
Programming Pearls by Jon Bentley. A humbling book. I read it and think "that's really clever, I would not have thought of that."
These are the ones that spring to mind. I'd have to peruse my bookshelf to see if I'm missing any other obvious entries. I've used a lot of the O'Reilly books over the years too, e.g. sed and awk. I'm also intentionally leaving out text books that would be part of any C.S. degree.
As an addendum: Man pages. All of them. The Linux man pages, maybe not so much. SunOS was my introduction Unix, and I was spoiled by their quality and comprehensiveness. I recall one day discovering "man intro" and then spending a week doing nothing but reading man pages. http://software.cfht.hawaii.edu/man/solaris/Intro(1)
I would also mention "The Linux Programming Interface"
Book by Michael Kerrisk, for being a comprehensive single volume reference for most of Linux userspace API. If you have it by your side, it will save you lots of googling.
The Principles of Product Development Flow: Second Generation Lean Product Development by Donald Reinertsen
its neither a manifesto (like agile) not a specific architecture (like scrum or safe or XP or kanban, etc). instead it's collecting the underlying _principles_ of collaborative software engineering flow and it's motivating why they work.
“A Genetic Switch” is one of the best books in my field. The entire book is about a single genetic switch in a bacterial virus, starting off high level before going down into the nitty gritty, all for this single switch. Highly recommend for a deep dive into how genetics can actually be controlled, down to the physics level.
Having gone through the graduate physics curriculum, I wouldn't call Jackson a gem. Necessary hazing for physicists? Sure. Quantum Mechanics by Cohen-Tannoudji is a real gem imo
Many ways of thinking about the color white. Its meaning. Its place in the world. Its purity (and yet seldom pure). How it can be something and nothing at the same time. Great design-thinking fuel.
From the lens of a Product Manager working in ML / Large Language Models...
The Alignment Problem
By Brian Christian
How do we tell the computer to do all the things we want it to do, all the things we don't want it to do, and all the things we didn't realize we want it to do or not do? How do we capture the rich implied and inferred nature of humanness? That's the Alignment Problem. The book dives into this broadly – but also gives an excellent non-technical survey of the evolution of machine learning.
—
Understanding Comics: The Invisible Art
By Scott McCloud
This is magnitudes more than a dive into the perhaps easy to dismiss artform. This book is about storytelling and why great stories resonate. It's one of the best pieces of media, on media, period.
—
An Elegant Puzzle: Systems of Engineering Management
By Will Larsen
When I my company was acquired by a very-big-Giant, my personal antibodies reacted negatively to the how the big G's way of thinking and doing – I was harmfully autoimmune. To some extent I had to accept things, to another extent I needed a different perspective. This book helped me transition and it's one I push on all of our leads. While we as PMs don't manage people directly we architect the whole system – and this book is an insightful (I buy it for all the team's leads) lens on how big teams where personal alignment and corporate alignment problems need to be negotiated.
—
Exhalation Stories
By Ted Chiang (also recommend Stories of Your Life)
The author has an absolute magic way of taking a kernel of an idea and spinning not only a whole world, but a whole new way of looking at the world – all in the span of a short story. You can't get any closer to home than "The Lifecycle of Software Objects" where the protagonist rears an artificial intelligence from "pet" to a human-like mind.
—
The Pragmatic Programmer
By David Thomas and Andrew Hunt
PMs need to get things done. Even if we don't code, we need to think deeply on how it's built to ensure it achieves our goals now, and what we project them to be in the future. As the title suggests, a pragmatic take on building code-driven systems.
—
Design of Everyday Things
By Don Norman
The OG design-thinking before IDEO corporatized it.
—
Principles
By Ray Dalio
"Principles are ways of successfully dealing with reality to get what you want out of life." This book influenced me to distill how we take action and prioritize and how we decide as a team. I'll admit some of the set up of the book irked me, but the distilled world view that form the Principles in the second half of the book generally resonates; the world works a certain way, find those patterns, use it to your advantage (and for good).
—
The Visual Display of Quantitative Information
By Edward Tufte
You could jump into any of Tufte's books, on any page, and come away with new ways of looking/thinking/telling stories about data. ML problems are data problems – let's think well beyond raw dumps and tables.
Principles is a thought provoking book in that it gets one to think of running a business like running a machine. Invest in computers and programming to perform checklist tests constantly so you can ensure your business is operating in the manner you expect. This will require you to think hard about how you expect your business to work. It will also allow you to identify what activities really require your attention.
The Visual Display of Quantitative Data is great as it gets you thinking about different ways to present ideas effectively. The map of Napoleons march to and from Russia is exquisite.
Nice list. I looked at "An Elegant Puzzle: Systems of Engineering Management" and think i found my next read so Thanks.
+1 for Principles (disclaimer - I'm a former BW employee).
Having worked at several large banks it is clear to see how they would benefit from basic rules like "no water cooler talk" and a clearly documented culture.
I love all the recommendations here but please say a word or two about why you recommend said books. Sell them to me, don't make me do the work. Dumb lists of titles are so uninteresting.