Preliminary research has suggested Spivak is best for Calculus. SICP is another famous one I've heard of. What about Physics, Biology, Chemistry, Anatomy, History?
Any contributions to this list are much appreciated.
It has informal and approachable style and even has a companion study book full of experiments. [1]
One of my favourites from my university days was also Introduction to Heat and Mass Transfer. [2]
Universe is a great introduction to Astronomy [3]
Wind Energy Handbook is also a comprehensive introduction to... well I think you can guess. [4]
[1] https://learningtheartofelectronics.com/
[2] https://www.abebooks.co.uk/9780471457282/Fundamentals-Heat-M...
[3] https://www.goodreads.com/book/show/705558.Universe
[4] https://onlinelibrary.wiley.com/doi/book/10.1002/97811199927...
For me, books for self-studying should have a slightly informal tone and ramble a little. The book is your teacher, and I'd like my teacher to speak to me as a student, not a theorem prover, as least when I'm starting. Spivak, Pugh and Axler are some good examples, while I could only grok Rudin after learning all the basic.
Not a lot of experience with physics but I like Symon's Classical Mechanics and Purcell for the same reason. Kleppner's mechanics book has very good exercises too.
- Algorithms - Papadimitrou and Vazirani: I had a professor who described this as a poetry book about algorithms. Alternative is Sipser
- An Introduction to Statistical Learning: This is like a diet form of Elements of Statistical Learning which is much more approachable and pragmatic.
- Janeway's Immunobiology - De facto standard of immunology. Great.
- SICP: duh
- Principles of Data Integration: This is more because the subject matter is so important and nobody really has studied fundamentals. Did you know general data integration is AI-complete? If 99% of work in AI was spent on data integration, the field would move so much faster.
Ron Chernov: Alexander Hamilton. An excellent introduction to the birth of US. As a european US history is not that well covered in our school. There's also the musical version by Lin Manuel Miranda which alone is worth a few books of education alone.
On the birth of modern india: Herman: Gandhi & Churchill: The Epic Rivalry that Destroyed an Empire and Forged Our Age
On the roman world: Julius Caesar: Gallic wars. This is a surprisingly readable book given that it's a propaganda piece written two thousands years ago. Highly recommended as it gives insight to just how organized-yet-cruel the ancient world was.
General history:
Acemoglu: Why nations fail. This is a must read. It attempts to explain (with great success) how institutions have molded the modern states into the way they are now, and what exactly seems to be at the root of inequality and prosperity.
If I had to recommend two books, "Why nations fail" would always be one on that list.
Why suggest these books that seem just about graphic design, to an audience of mainly software developers? Well, aside from the stylistic points about graphical plots and figures, it is more deeply about being able to communicate effectively, with intention.
I find that all too commonly, many junior people who code are unable (or maybe more charitably, unpracticed) at formulating arguments or explanations for why something exists in the form it does, or how it ought to be designed, in a way that they can coherently explain to someone not deep in their code. It usually means that they have not spent time thinking about it deeply, and are stuck in the "show me lines of code to explain what something is" mode of thinking. Or that they can only explain the approach in terms of the specific lines they are writing -- they have not moved beyond that level of understanding.
I won't say it to the person generally, but I really have to bite my tongue when working with someone who has no way of explaining something (at an overall approach level) other than showing me lines of code. Stepping out of that realm into graphical communication is one way.
Being able to think graphically in a coherent way as a software developer means you start to think about how to explain your work to others as more than lines of code -- and in explaining to others, improving your own understanding of what you're writing. Btw, it also probably means that you're more likely move beyond the role of just a plain old software developer and become someone responsible for the design of systems, the direction of work.
Completely with you about Spivak, as far as calculus goes.
Physics: recently picked up Walter Lewin's "For the Love of Physics" and it's a masterpiece. Didn't get the chance to finish it because of the pandemic and it got locked in the office but it appears he's managed to cram in an entire university course in one book.
Biology and anatomy - "The Selfish Gene" by Richard Dawkins is brilliant entry point for people with limited knowledge on the subject.
Chemistry - no idea, that's the one subject which I hated with a passion since I was a child. Very paradoxical, given that physics was arguably my favorite subject ¯\_(ツ)_/¯...
History - Yuval Noah Harari's books, though somewhat anecdotal as far as history is concerned. I'd say there are way too many to list here and there is way too much to read about all major events in history to fit in just a few books.
If R isn't your bag then there are many translations of the code examples to other languages available online.
Will take you from undergrad to bits of grad school. Encompassing and clear.
It was a bit harder to find as good a bible for inorganic chemistry.
Softley' Atomic Spectra and Keeler's Why Chemical Reactions Happen are phenomenal primers too but are a bit smaller in scope than the aforementioned two.
The same Atkins from above also wrote Molecular Quantum Mechanics which is also a solid text
I remember there being a question where after implementing a tree where the leaf nodes are represented as a list, they then pose the question - how much of your code needs to change if you needed to reimplement them as a pair?
The point being a pithy lesson in indirection/abstraction - had the student set up named accessors, there would be very little code to change.
- "The Third Reich Trilogy" from Richard J. Evans about Germany during WWII is the best thing I read about WWII.
Now I am reading "The rebellious life of Mrs Rosa Park", pretty good too, although the topic is super specific.
Also, I would also recommend to have a look at "Lectures in History" podcast from c-span. They are are lectures from universities about American History. The lectures also contain book recommendations, so if you are interested in this or that topic, they are good source of books.
On related notes, for the past few weeks I've spent countless hours searching and compiling good to excellent textbooks in the field of engineering and computer science. Perhaps I can share the information in the near future.
He also has a huge multi-volume textbook on differential geometry per se but I never read it. Probably brilliant as well.
It covers three main topics: - Automata theory - Computability - Computational Complexity
What I especially liked about the book was how he approached proofs. When introducing a proof, there is first a short "proof idea" paragraph that emphasizes the main approach behind the proof informally. He then gives out the full, formal proof. For self-study, those proofs can sometimes be intimidating, and not strictly necessary depending on your goals, but understanding the ideas was important to understand the topic.
Intro to Statistical Learning by Hastie, Tibshirani, James and Witten: https://www.amazon.com/Introduction-Statistical-Learning-App...
Fantastic breakdown of micro into understandable and memorable concepts, helped me get through intense classes while making it interesting via funny if cheesy mnemonics and artwork: https://www.amazon.com/Clinical-Microbiology-Made-Ridiculous...
All of the "Made Ridiculously Simple" texts from that publisher are fantastic, but imo the Clinical Microbiology is the best of the best.
Siegel's free (and source available IIRC) textbook on quantum field and string theory (can't comment on treatment of the latter) is a nice, if completely impenetrable by virtue of being enormous, book.
I recommend "Advanced Tire Mechanics" to anyone looking for a proper, modern, book on the subject - Pacejka's writing is messy and dull.
I asked on /r/askhistorians for book suggestions on the history of China.
>The History of Imperial China series edited by Timothy Brook consists of six roughly 200-page long volumes, each of which covers one or two dynastic periods.
I read the first volume and enjoyed it. And I feel safe in recommending the set given the endorsement from a scholar on the topic.
A fascinating multidisciplinary approach to explain what happens behind our most consequential behaviours.
K&R indeed and K&Pike's 'The Practice of Programming'.
Vince's 'Mathematics for computer graphics' (haven't read his calculus book but it's on the wishlist).
Petzold's 'Code'.
Leventhal's Z80 and MC68000 books back in the day.
- Mechanical Engineering Design, Shigley
- Mechanism and Mechanical Devices Sourcebook, Sclater
- Foundations of Mechanical Accuracy, Moore
- Machinery's Handbook
- Structure and Interpretation of... Classical Mechanics, Sussman
And just for fun:
- 507 Mechanical Movements, Brown
- Handbook of Compliant Mechanisms, Howell
Sapira's Art and Science of Bedside Diagnosis
It has some good recipes in it, but the instruction it provides on baking and pastry making has really helped me improve my technique over the years.
Campbell's Biology
Synthetic biology: A Primer
An introduction to systems biology by Uri Alon (get the 2020 edition)
O'Reilly: Biobuilder
It's used in the Nand2Tetris course[1].
It guides you through building a computer and writing an assembler and compiler.
It's not so much a textbook you read as a textbook you do.
Morris Mano
At the end of the book, you are able to design the entire computer architecture from humble logic gates.
This book shows the systematic intervention in undermining and uprooting hinduism in south india.
History/Anthropology: Seeing Like A State
Microelectronic circuits by Adel Sedra and Kenneth C. Smith
Introduction to Linear Algebra by Gilbert Strang
Gray and Reuter on transaction processing.
History, short form: Orwell, "Animal Farm"
(One of these 20th century works is an extended treatment of a bunch of animal bad apples who lie, cheat, and steal to maintain power over their fellow animals. The other is fiction)
- Albert's Molecular Biology of the cell - https://www.amazon.com/dp/0815344325/ref=dp-kindle-redirect?... - It introduces basic Biochemistry, a lot of Genetics and Gene-regulation and Developmental biology. The book also touches other areas (but very vaguely) like Immunology... I think if you read this book you will be able to understand modern Molecular Biology papers.
- Biochem: Legninger's Principles of Biochemistry https://www.amazon.com/dp/B01K0PYUYQ/ref=dp-kindle-redirect?... - Our prof taught us from this, it has great visuals and covers a lot of areas.
- Developmental biology: Gilbert's - https://www.amazon.com/Developmental-Biology-Tenth-Scott-Gil... - it introduces more genetic regulation and development for all walks of life
- Human developmental biology: Bruce M. Carlson - Human Embryology and Developmental biology - https://www.amazon.com/Human-Embryology-Developmental-Biolog... - Again it's the choice of my prof, but I loved it, great images and visual explanations.
- Anatomy: I'd definitely go for anything by Netter -> https://www.amazon.com/Atlas-Human-Anatomy-Netter-Science/dp...
- Cancer: Robert A. Weinberg - The biology of cancer - https://www.amazon.com/Biology-Cancer-2nd-Robert-Weinberg/dp...
- Plant biochem: Biochemistry and Molecular Biology of Plants - https://www.amazon.com/Biochemistry-Molecular-Biology-Plants... - A very good book with great illustrations.
For electronics and Embedded:
- Art of Electronics by Paul Horovitz - https://www.amazon.com/Art-Electronics-Paul-Horowitz-ebook/d... - I saw that others also suggested it, great book
- Paul Scherz - Practical Electronics for inventors - https://www.amazon.com/Practical-Electronics-Inventors-Fourt... - I was introduced to electronics via this book. Not really a textbook but it's I think it's a great book to get started, it covers almost the same topics as the Art of Electronics but not as deep and with better visual explanations.
- Embedded systems - Michael Barr - Programming Embedded Systems in C and C++ - I was introduced to embedded software development by this book, when I was working for an IoT company and only had experience with systems and web programming.
Programming (my cherry picked favourites):
- Hacking: The Art of Exploitation - I love this book. I've read it after I had a few years of professional programming experience with C#. It introduces programming via C, also every example program is disassembled with GDB. It gives the reader an intuition of how C code compiled and what happens on the register level.
- C in a Nutshell: The Definitive Reference - Usually when you search for good books to learn C from, you get titles like The C programming language, Deep C Secret. But I think C in a Nutshell beats all other C books. (Especially when you read it together with C related chapters from The Art of Exploitation).
- Functional Programming in Scala - https://www.manning.com/books/functional-programming-in-scal... - I saw that other people suggested SICP, and I agree with that, it does a great job introducing to some parts of functional programming. But FPIS also introduces a strictly typed aspect of FP, functional parallelism, functional designs patterns... It's a great book.
- Concurrency in Go: Tools and Techniques for Developers - https://www.amazon.com/Concurrency-Go-Tools-Techniques-Devel... - I love the Go language and how it handles concurrency. This book does a great job of describing how the go runtime works, and does a great job explaining concurrency in general. Also there are a lot of good design patters in it.
- Professor Frisby's Mostly Adequate Guide to Functional Programming - https://github.com/MostlyAdequate/mostly-adequate-guide - It's not a textbook. This is the book that introduced me to FP. I love it, great book.
- Computer Systems: A Programmer's Perspective - https://www.amazon.com/dp/9332573905/ref=dp-kindle-redirect?... - This was the suggested textbook for https://courses.cs.washington.edu/courses/cse351/ that was also available on Coursera. Great book.
Flipping through the Smalltalk books was an eye-opener back in the day.
There's an amazing but little-known book in the same printing style as K&R about systems software from the MCC consortium, with tons of C source code.