Ask HN: Which books do you consider real gems in your field of work/study?

438 points by curious16 ↗ HN
Well written books can serve as eye openers and warp your understanding of a topic when read at the correct time in your life.

Can you name a few books of that type that really were of such high value in your field of work or study?

269 comments

[ 4.5 ms ] story [ 610 ms ] thread
Physics: Feynman's lectures on physics.

Maths: Rudin's Real and Complex analysis.

Software engineering: The Mythical Man-Month.

Computer science: Knuth's TAOCP.

TAOCP, you have worked through the whole thing? At what point in life?
I did it in toilet sessions but only the first volume (do not have other volumes in paper).
Six Easy Pieces was one of my favorite books as a kid.
> Maths: Rudin's Real and Complex analysis.

Yes!! Rudin kills it, but you need a year or two to get through this gem. A course in university will go too fast for sure.

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.

(comment deleted)
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, ...).

thank you for effort-posting. The map of mathematics in my head is a bit broader now.
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.

Which book do you mean when you say "Polya 1"?
# Pure Mathematics / Geometry

- Harshorne - Algebraic Geometry

- Bott, Tu - Differential Forms in Algebraic Topology

- Milnor, Stasheff - Characteristic Classes

- Milnor - Morse Theory

- Serre - Linear Representations of Finite Groups

- Fulton - Intersection Theory

Differential Forms in Algebraic Topology might be one of the best math books ever written.

I’ll add Milnor’s Topology from the Differential Viewpoint and/or Differential Topology by Guillemin and Pollack.

Another chime for Differential Topology. It's incredibly readable and accessible (given the subject).
Milnor is a wonderful writer, in his books as well as his papers.
Designing Data Intensive Applications.

Operating Systems in Three Easy Pieces.

Computer Architecture: A Quantitative Approach by John L. Hennessy the creator of MIPS and David Patterson the creator of Berkeley RISC (later SPARC)

Advanced Programming in the Unix Environment by W. Richard Stevens

You could add MIPS, later RISC-V ; and RISC later ARM :)
What's the benefit of studying computer architecture if you are a web developer
The Cuckoo’s Egg by Clifford Stoll. In my humble opinion, it should be a foundational text to read for all technology students.
Cliff Stoll! I'll have whatever he's having
An excellent book. It's a terrific example of how to think about problem solving.
Thinking in Systems by Meadows
Currently reading this and loving it so far. Any recs for more technical introductions?
Modern Control Engineering, by Katsuhiko Ogata, I guess.
Electromagnatic Compatibility Engineering, Henry Ott

The Elements of Style, Strunk and White

The Hardest (working) Man in Showbiz, Ron Jeremy

I'm intrigued by those choices and can't tell if you are making a subtle joke about life itself (building, writing, fucking?).
maybe they build set and write script for movies ?
Map Projections: A Reference Manual - John P. Snyder

Gravitation - Misner, Wheeler, Thorne

Already mentioned: (it's a goody)

Linear Representations of Finite Groups - Serre

A course in Arithmetic by Serre is for me THE book to get into Number Theory
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).

[1] https://www.ihes.fr/~gromov/expository/34/

[2] http://www.pmaweb.caltech.edu/Courses/ph136/yr2012/

Classical Electrodynamics By Jackson

Numerical Recipes By William H. Press et al

Quantum Theory of Materials By Kaxiras

> Classical Electrodynamics By Jackson

I'm so sorry. You have my sympathy.

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
all of Tanenbaum's books, especially Structured Computer Organization
>especially Structured Computer Organization

+1.

One of the best books explaining the abstractions and layering involved in Computer Systems. For some reason not many people know about this.

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.

Leading Firms, David C. Kuhlman.

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.

Design of Everyday Things applies to almost any design or engineering discipline. You'll never look at a door the same way.
The Jazz Theory book - Mark Levine

High Performance Browser Networking - edit: Ilya Grigorik

Effortless Mastery - Kenny werner

High Performance Browser Networking (https://hpbn.co) is a fantastic book. It was written by Ilya Grigorik though.
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
Do you think non-musicians could benefit from Effortless Mastery?
I think so but perhaps more general mindfulness resources may be better places to start
Code by Charlse Petzold.

Structure and Interpretation of Computer Programs aka. SICP.

Designing Data-Intensive Applications by Martin Klepmaan.

The C Programming Language by K&R.

Distributed Systems by Tannebaum.

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:

https://web.mit.edu/6.001/6.037/sicp.pdf

Together they’re an amazing introduction to (or refresher for) Computer Science.

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.
Not a technical book but A Theory of Fun for Game Design by Raph Koster had a few perspectives I’d never considered.
For compiler theory, "Principles of Program Analysis" (by Nielson, Nielson, Hankin).

It is so foundational to what we do at rev.ng, that we gift a physical copy of the book to every interviewee, even if they don't pass.

Hi, how does the book compares to the dragon book?
They are different. This book is about static analysis which is not discussed in-depth in the dragon book.
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.

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.

[1] https://arxiv.org/pdf/2012.10086.pdf

> 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.

Here's our C++ implementation of MFP:

    https://github.com/revng/revng/blob/develop/include/revng/MFP/MFP.h#L66
Having infinite time, it'd be nice to rewrite some LLVM analyses using it.

We joke saying that we'll open a new company when we start using Chapter 3 effectively. :)

Btw, if you're in a CEST-friendly time zone and are interested in what we do, drop us an e-mail :)

I have sent you their contact details to your corporate email.
Signals and Systems by Oppenheim, Willsky and Nawab is a foundational text.
("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.
“The Ecological Approach to Visual Perception” by James J. Gibson completely changed how I think about vision and moving images.
The Art of Electronics, Horowitz and Hill
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).

Ihe e-myth book by michael gerber. It hits you right in the face when you're a.. what he calls the Technician masquerading as an Entrepreneur.

It's truly an eye opening book and really helps you see the systems in everything from a bakery to the hotel chains as soon as you've read it.

Have to disagree on this one. I thought it was one paragraph (maybe even one sentence) spun out into a really dull book. zzzzzz