Ask HN: The book that did it for you in math and/or CS?
Do you credit any particular set of books for the advent of your expertise in math and/or computer science? The book that was of the right difficulty at the right time to ignite the intellectual curiousity that has made you go forward since.
209 comments
[ 3.7 ms ] story [ 227 ms ] thread- Kicked off learning about Big O Notation through this. The concepts completely changed the way I looked at code, especially being mostly self taught beforehand.
Numerical Analysis - Sauer
- Learned about Newton's Method from this book which blew my mind at the time and got me hooked.
Paul's Notes - https://tutorial.math.lamar.edu/classes/de/de.aspx
A Tour of the Calculus by David Berlinski
I barely scraped through with a C for Engineering Math (Differential Equations).
For me, the teacher made the difference in math.
For CS, the most influential books for me were Knuth, Sorting and Searching (although I actually bought all three books in the series, unlike most others I knew), as well as the original Kernighan & Ritchie book on the C programming language (before ANSI C was published).
The Elements of Computing Systems: Building a Modern Computer from First Principles (Nisan and Schocken)
https://www.amazon.com/Elements-Computing-Systems-second-Pri...
I'm not sure, but I think that when I looked into it, I found out that Code started from a level or two lower, but doesn't go up as many layers of abstraction as TEOCS.
- Discrete Mathematics with Applications, by Susanna Epp, or
- Discrete Mathematics and Its Applications, by Kenneth Rosen (both have the same content, choose the style that you prefer), and
- Concrete Mathematics, by our lord and savior Donald Knuth.
I don't plan on reading TAOCP anymore as I would be dead by the time I finish reading everything else, but those introductory books are very good for beginners.
https://www.3blue1brown.com/topics/linear-algebra
What did you find in it?
Books that sparked my interest in all of Mathematics (BTW, I'll be glad if you recommend any Abstract Algebra books):
- Calculus, Howard Anton.
- Calculus, Spivak
- Advanced Engineering Mathematics, Erwin Kreyszig
- Elementary Number Theory, David Burton.
Computer Science/Engineering:
- Data Structures and Algorithms, Adam Drozdek
- Digital Design, Morris Mano
- David Patterson and John Hennesey's books
- Mastering Embedded Linux Programming, Chris Simmonds.
But if I had to pick one, it’s a toss up between Unix Network Programming and TCP/IP Illustrated, Volume 2.
Those two books had a significant impact on me in terms of demystifying the network stack.
Math: - The Code Book by Simon Singh. - Chaos by James Gleick.
But rarely. Only when specifically called for by the problem at hand. A very far cry from “everything is an object.”
Computer Science: CLR Algorithms book and Skiena's Algorithm Design Manual (read both in college)
_Introduction to Quantum Mechanics_ by David Griffiths. Not CS or Math, but an amazing book because if you sit down and work through it it gives you a manageable intro to a completely non-intuitive and mysterious scientific field. Prerequisites are “only” multivariable calc and linear algebra.
_Algebra_ by Michael Artin. This was the book I decided to grind through at the right time to learn abstract algebra and get better at rigorous proofs, and it was worth it. Part of why I loved this book and subject is because it feels dry and mechanical at first, but if you work on it long enough you can see the beautiful bigger picture come together.
_Introduction to Topological Manifolds_ by John M. Lee. This was another “right book at the right time” for me. The title is a bit jargony, but it is a rigorous introduction to the foundational objects of modern geometry (namely topological spaces and manifolds in particular). Great warm-up for the first book on my list.
_Algebra: Chapter 0_ by Paulo Aluffi. Weird title, but the first few chapters are the best perspective on abstract algebra I’ve seen. He focuses early on categories in a useful and philosophically interesting way, which is unique.
_Gravitation_ by Misner, Thorne, and Wheeler. Didn’t read the whole thing, but this book taught me a tensor is just a higher-order linear function. Who knew? Most physicists give really crappy explanations of tensors. Also I love that this book, affectionately known as the “phone book”, is so heavy that one imagines spacetime curving around it.
Relearning mechanics from first principles is fun!
I read this about 2 years into my study of CS. I found the design of the internet, at times intentional and very often emergent / working around constraints, absolutely fascinating. I couldn’t help feeling that algorithms were things I could pull off the shelf but protocols were something I’d need to be able to design well throughout my career.
Purely functional data structures by Chris Okasaki. Just totally changed my perspective about all sorts of things in computer science. As well as being one of the most advanced comp-sci books I've ever read, it's truly mind-expanding in every possible way. How many comp-sci books have you read that make you question how something as basic as a number is stored?
The introduction gives a history lesson, a great description of the method of exhaustion with descriptive drawings, and some very straightforward proofs on finding the area under the curve for parabolic segments via some basic infinite sums (no limits), all in 10 pages in a conversational style. And it just gets better from there.
My dad gave me his book he used in the 70s and I read it in high school in parallel to the textbook the school issued. Everyone thought I was some genius because I thought calculus was so obvious and I could explain it so well but I was just parroting the text and proofs from this book, basically verbatum. I told the other kids to use it as well but no one did.
That would probably be the second edition, published in 1967. The first edition was in 1961.
If you have a kid and they go to a college that uses Apostol you can give them your 2nd edition without worrying that it will be too far off from the current edition because the second edition is the current edition.
Same with volume 2. The 1969 second edition is the current edition. The first edition was in 1962.
Anyone happen to know of a list somewhere that lists subjects and for each gives you information on how well it can be learned from old books?
For undergraduate calculus for example a 50 year old textbook is fine. At worst some of the example and exercises might be outdated or maybe mildly sexist by today's standards.
On the other hand, that 20 year old book on learning Java with Symmantec Visual Cafe sitting on one of my bookshelves is probably nearly completely useless.
In between would be books where parts of them are still relevant and accurate and parts of them have been superseded and would at best only be worth reading for historical purposes.
Hah. I think I learned Java with that book as well, and used Visual Cafe starting out. I think one thing I did pick up (relatively) early was that books written to have a short shelf life were probably poor investments. Some "Word 6.0 for Dummies"-type book is probably meant to get someone up to speed that had pirated the program, and not a more general mind-expander that is going to lead you to thinking about how to implement some idea in whatever you're using today.
Learning Perl was the first book I did any kind of programming with, though I didn't end up sticking with Perl.
Learning C# 3.0 made me finally get OO programming and that was when I first started writing programs that did much of anything.
Discrete Mathematics by Epp gave me a basic grounding in the math I needed to understand CS books.
The Algorithm Design Manual by Skiena and Algorims by Sedgewick and Wayne helped me start to understand the "CS" side of programming.
Tanenbaum's Operating Systems textbook taught me a fair bit about operating systems and concurrency.
I'm sure you could have used a different series but without these I wouldn't know how to program, let alone have made a job of it.
The Art of Computer Programming—NOT for the reason you expect. The series is simultaneously fantastic and terrible. Being able to articulate why the series just plain sucks even though it’s also really good at the same time. 90% of the time, if there’s something I want to look up in TAOCP, I can just go for a walk, realize whatever I’m trying to do is unnecessary work, and come back and work on actual important stuff I care about. The other 10% of the time, I get better answers from digging through the citations on Wikipedia.
Exercises for the Feynman Lectures on Physics—Yes, the exercise book, not the lecture book. I know it’s not CS or math. The way that the problems build on each other is spellbinding. For example, there’s an early problem where you calculate the mean free path of air, but you’re not given a formula for it—you’re just given a series of problems which provoke you to think about the subject in a way that you can figure out a formula for it yourself.
Just a few hours ago my copy of Mathematics: Its Content, Methods and Meaning just arrived; I bought this book as a reference of undergraduate-level math concepts based on Hacker News recommendations since I'm right now in the process of reviewing undergraduate-level math to strengthen my understanding of deep learning fundamentals. I had the opportunity to glance through this book, and I wish I had discovered this book when I was in high school or during my undergraduate years; it appears to be an excellent, more technical companion to Mathematics: From the Birth of Numbers.
Given the direction in my career (I went from focusing on systems software to deep learning and data mining), I wish I had majored in mathematics as an undergraduate instead of computer science. I'm able to pick up computer science concepts rather quickly, but mathematics requires more effort for me. A part of me almost wants to do an online second bachelor's in math, but right now I use some of my spare time studying math.
MATH & PHYS: https://minireference.com/static/conceptmaps/math_and_physic...
LINEAR ALGEBRA: https://minireference.com/static/conceptmaps/linear_algebra_...
They are extracted from my books, but can be used to support learning from any other book too. I find it helps a lot to think about the connections and parallels between concepts, and also use the concept maps as a "spec" to know when you've covered all the material.
I havy skimmed through the volumes of Feynman lectures, and can confirm this. Especially things concerning computational complexity.
Here’s a link for the curious: https://www.worldcat.org/title/texbook-describes-tex-version...