Can you name a few books of that type that really were of such high value in your field of work or study?
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.
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.
Molecular Biology of The Cell by Alberts et al
Janeway’s Immunobiology
Robbin’s Pathologic Basis of Disease
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.
generatingfunctionology [2] by Wilf is an excellent companion book to Concrete Mathematics, going deeper into generating functions.
Doubly so if you're actually working on a system like that.
Nicely threads a line between too dense and too watery.
- 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.
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
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.
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.
[1] https://www.doc.ic.ac.uk/~re14/Evans-R-2020-PhD-Thesis.pdf
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.
- 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.
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.
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.
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".
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.
Robert C. Allen - The Industrial Revolution: A very short introduction (don't be fooled by the book series, every sentence carries its weight).
C.S. Lewis - The Discarded Image (we get so many things wrong about what people before us thought and why).
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.
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.
"Flexible pattern matching in strings" by Gonzalo Navarro and Mathieu Raffinot.
A rare book that marries the theoretical and practical. It has good worked examples.
https://www.cambridge.org/core/books/flexible-pattern-matchi...
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.
Culture of Honor: The Psychology of Violence in the South by Richard E. Nisbett & Dov Cohen
https://www.amazon.com/Culture-Honor-Psychology-Violence-Dir...
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.
Advanced Programming in the Unix Environment by W. Richard Stevens
"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.
Books that stand out to me are:
- Database Internals, Alex Petrov
- Database Design & Implementation, Edward Sciore
- How Query Engines Work, Andy Grove
These have been much more useful than IE the Cow book or "DB Systems The Complete Book" to me.
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.
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.
It really changed how I view software (or any product) as just a tool to help people.
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.
https://www.thriftbooks.com/series/scientific-american-libra...
I'm slowly collecting all of them, as they can be had in great condition for cheap.
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
Because it covers most, if not all, the maths required to do PBR right. If you are interested in graphics, this book MUST be on your shelf.
- 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
Maths: Rudin's Real and Complex analysis.
Software engineering: The Mythical Man-Month.
Computer science: Knuth's TAOCP.
Subtitle "Energy, Security, and the Remaking of the Modern World"
Is THE book for understanding the structure of the energy industry. Whether you're in it or just a curious person it's a phenomenal read.
He has a sequel out that I haven't picked up yet but I'd recommend The Quest to absolutely everyone.
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.
The book is accompanied with optional lectures.
https://iucompilercourse.github.io/IU-P423-P523-E313-E513-Fa...
------
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.
Snow Crash
Blindsight
(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.
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.
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.
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.
The relevance for any marketer is incredible. Much of what I read from “gurus” is essentially just rewording this book.
High Performance Browser Networking - edit: Ilya Grigorik
Effortless Mastery - Kenny werner
Gravitation - Misner, Wheeler, Thorne
Already mentioned: (it's a goody)
Linear Representations of Finite Groups - Serre
It is such a low effort - high reward endeavor to get up to speed quickly in DevOps and for communicating product strategy
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.
Was a great source of design patterns when I first began to design business applications on top of relational databases.
https://zjnu2017.github.io/OOAD/reading/Object.Oriented.Anal...
Don't get distracted by the name, it's about binary mathematics. Bit twiddling at its finest.
Automated Theorem Proving, David Plaisted https://wires.onlinelibrary.wiley.com/doi/abs/10.1002/wcs.12...
Real-Time Rendering is probably my most used book when I started
It is more of a breadth than depth book though
It's mostly a bunch of functional programming stories, where you learn in a broad scene what's FP is about.
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.
- 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.
I love “the inmates are running the asylum”
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.
https://www.amazon.com/Showstopper-Breakneck-Windows-Generat...
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.
The best book on consulting is by the same guy: Secrets of Consulting.
Wind Energy Handbook by Tony Burton, Nick Jenkins, David Sharpe, Ervin Bossanyi
The Art of Electronics by Horowitz and Hill
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.
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)
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.
Signals and Systems by Alan V. Oppenheim and Alan S. Willsky
The Elements of Style, Strunk and White
The Hardest (working) Man in Showbiz, Ron Jeremy
Numerical Recipes By William H. Press et al
Quantum Theory of Materials By Kaxiras
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.
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.
Operating Systems in Three Easy Pieces.
I think it should be read by all software engineers not just data engineers.
Heuristics by Judea Pearl
The Art of Doing Science and Engineering by Richard Hamming