Readit News logoReadit News
Posted by u/debanjan16 4 years ago
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.
arush15june · 4 years ago
Operating Systems: Three Easy Pieces

https://pages.cs.wisc.edu/~remzi/OSTEP/

I failed the interview for an internship I really wanted in my 2nd year of engineering; I did get a shit internship that summer, but being really shaken at my incompetence, I took up this book, and quite honestly, it changed everything!

It truly sparked an interest in systems for me. The book helped me build a strong foundation in systems; Processes, memory, filesystems, networks, concurrency, synchronization and more. After reading OSTEP, it felt like an epiphany, and I charted a path for the rest of 2 years of college around distributed systems, systems research, and virtualization.

And the best part is that all this knowledge is free! Kudos to Professor Remzi and his work!

nindalf · 4 years ago
This book is probably my favourite CS book as well.

> Kudos to Professor Remzi

Please remember that Professor Andrea deserves equal recognition for her work on this book.

arkj · 4 years ago
Authors deserves respect for keeping this book free.

We were lucky to have a paperback low-cost-poorer-countries edition of The MINIX Book[1]. The code in the Minix book was an eye opener.The code clarifies the concept and sharpens the understanding.

Later on in my career as driver/firmware programmer, Computer Systems - A Programmers Perspective[2] and Unix Systems for Modern Architectures[3] helped a lot to clarify confusions and mysteries.

[1] https://www.pearson.com/us/higher-education/program/Tanenbau... [2] https://www.pearson.com/us/higher-education/program/Bryant-C... [3] https://www.pearson.com/us/higher-education/program/Schimmel...

sunny3 · 4 years ago
This book broke down a hard and mysterious topic (operating systems) for a new CS student like me into everyday analogies, which almost eradicated my fear of the subject matter. It had the appropriate amount of technical details to be usefully informative for a college class while also inspiring a more in-depth read of other material that are much more boring. The book is the reason why I love operating system so much, and I continued to take more CS classes as a math major.
mayankkaizen · 4 years ago
Although I haven't completed it fully, but it is absolutely a masterpiece. The structure and the lucid explanation is something every author should learn from this. Not too yechnifal and yet covers every fundamental aspect.

This alongwith Nand2Tetris course can make your understanding of computer and programming works almost complete.

grumpwagon · 4 years ago
I was lucky enough to take Remzi's OS course. Both he and his wife are excellent teachers, and really truly caring people. I haven't kept up with him since school, but he was the best professor I had and it wasn't close.
servercobra · 4 years ago
Remzi was my favorite teacher by far. His OS class took me from being somewhat interested in computers and CS because I knew there were good jobs on the other side, to being fully interested in computer science and learning everything I could. Truly a wonderful teacher.
jason2323 · 4 years ago
I second this
FiberBundle · 4 years ago
SICP for CS and programming. That book (and its exercises) really instilled in me the thought patterns that drastically improved my programming skills and made me realize how important fundamental CS knowledge is to being a good programmer. What I learned from that book was: becoming comfortable with recursion, realizing the importance of abstractions, functional programming concepts and it gave me insights into how interpreters and the machine work.

I studied math in university and the book that really improved me mathematically was baby rudin. I really struggled with this the first time I worked through it and had to also fall back on Abott's analysis book, but after my first analysis course I worked through Rudin again and it just clicked. The exercises are really well chosen and the text is just so on point. Every sentence in the book is extremely carefully chosen and of fundamental importance to what Rudin wants to teach you.

It's really rare that you find textbooks that almost kind of have a certain magic to them, like you are directly taught by one of the greatest minds in that field. These two books definitely meet that criteria.

ghusbands · 4 years ago
For those who don't know: "Baby Rudin" is Principles of Mathematical Analysis by Walter Rudin. I had to look it up.
freeCandy · 4 years ago
Rudin's other two books are called "Papa Rudin" and "Grandpa Rudin", seemingly named due to the increasing difficulty of their contents.
ekkeke · 4 years ago
+1 for baby Rudin, while I wouldn't say it was THE book for me, it was certainly one that gave me a proper understanding of mathematical proofs as opposed the mroe applied mathematics books I had read until then. And the exercises are excellent!
ipnon · 4 years ago
The best programmers have deep understandings of both the physical and theoretical theories of computation. Most programmers have a better understanding of the physical: Processors, memory, networking, operating systems. Functional programming is the super power that reconceptualizes the endless tape wiggling of the Turing machine into a coherent, flowing calculus.
Breza · 4 years ago
Incredibly well said!
debanjan16 · 4 years ago
Regarding SICP. The first chapter is too mathematical. At least at first glance. Is that true? When did you do SICP? How mathematically mature were you?
FiberBundle · 4 years ago
Highschool math is all that is required for it from what I remember, definitely doesn't require a lot of mathematical maturity. Even if you would somewhat struggle to completely understand the math, the ideas they try to teach you should still be accessible in my opinion.
whoisburbansky · 4 years ago
Code, by Charles Petzold. It came to me at exactly the right time, and broke through the biggest conceptual barrier I’d had until that point; how do you actually go from logic gates to general purpose computing? Having Petzold walk you up the ladder of abstraction, never missing a link, really got me over the hump of treating all that complexity as a black box. On a meta level it gave me confidence to go approach apparently impossible things with an open mind and dig deep enough that you see how the “magic” works.
defphysics · 4 years ago
The book that did this for me:

The Elements of Computing Systems: Building a Modern Computer from First Principles (Nisan and Schocken)

https://www.amazon.com/Elements-Computing-Systems-second-Pri...

lukas099 · 4 years ago
Me too.

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.

abnry · 4 years ago
This is the same answer for me. I picked it up because as a teenager I thought it was about encryption (didn't know the word at that time). It also had the effect of introducing me to the right section of books in the library.
Lamad123 · 4 years ago
That one is good too, though it can get a little obscure in some sections.. I tried reading it twice! The first time I was stuck on the memory chapter. The second time I was stalled by the clock and synchronization thing, but it's still a great book. I hope I can muster the courage to read his Annotated Turing Paper.
WickyNilliams · 4 years ago
This was going to be my suggestion. I was disparately taught all this stuff in uni, but this book joined all the dots for me. It's really well written and perfectl paced. Seconded!
seanhunter · 4 years ago
An introduction to Genetic Algorithms by Melanie Mitchell. I picked it up in a charity bookstore believe it or not and it prompted a lifetime interest in data science and the field that turned into machine learning.

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?

vermarish · 4 years ago
Are you talking about integers and floats? Or about the process of storing a bytestring? Or something else?
morelisp · 4 years ago
seanhunter · 4 years ago
All positional number systems but he really goes deep on binary number representations using lists and fancy heaps. I'm not going to post a link because you should buy the book to support the author, but since it is basically a second edition of his PhD thesis you can find that online if you dig around.
thetallstick · 4 years ago
Apostol Calculus Vol 1

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.

tpdly · 4 years ago
+1 for Apostol V1! I also read it in high school, ended up testing out of Calc 1 in Uni, having learned plenty from reading that on my own. As you say, it really is so conversational and easy to follow. Starting with integration works really well, you build lots of sums and then use a supremum/infimum as opposed to a limit. I think the mental imagery for that is a lot more manageable than limits, especially if its your first time watching infinities disappear.
tzs · 4 years ago
> My dad gave me his book he used in the 70s

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.

tlavoie · 4 years ago
"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."

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.

Breza · 4 years ago
Dover Publications has a whole catalog of old math textbooks. It's amazing how good many of them still are.
BarbaryCoast · 4 years ago
The Structure and Interpretation of Computer Programs (SICP).

About halfway through the book, they build an explicit dispatch table, and I instantly understood 1) why my C code was so crappy, and B) why C++ and OO languages miss the boat (hint: they only implement the dispatch table in one orientation)

Worth struggling through, even if you never write a line of Lisp code. It has a lot in it about nice designs, abstraction barriers, and how languages actually work.

ipnon · 4 years ago
There are few books with more eureka moments. Mine was discovering functional closures and object instances are two sides of the same coin.
reidrac · 4 years ago
I also enjoyed it, but I read it probably a bit late in my career.

I remember reading some parts and thinking "wow, if someone had explained this to me like that when I was learning". But then, I'm not completely sure what would have been my experience if SICP was my first contact with CS. I started with GWBASIC, then COBOL, then C; 1st edition already existed by then, so I could have learned with Scheme!

EzJBg4GS · 4 years ago
I'm starting to learn CS all over again at the old age of 40, and had the pleasure to rediscover mathematics thanks to:

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

jesperlang · 4 years ago
I'm also approaching 40 and dusted of some old books from uni last year. One of which was about linear algebra, it was incredibly dense and proof heavy and I remember not understanding what I was doing, mostly remembering formulas. Then I watched 3Blue1Brown video series on linear algebra and things just clicked, almost 20 years after that first algebra class :)

https://www.3blue1brown.com/topics/linear-algebra

Breza · 4 years ago
Fun fact: Knuth is a devout Lutheran and he recently led a church Bible study on the--I can't make this up--Bible book "Numbers."
orlandpm · 4 years ago
_Algebraic Topology_ by Allen Hatcher. This is quite an advanced book, but it was the first topology book I picked up and it blew my mind. Without a serious math background you may only be able to read the first parts (some of chapters 0 and chapter 1), but even so it may amaze you. It was insane to see how much mathematical machinery can be built up to understand concepts as simple as “space” and “continuity.” Then these tools can be used to quickly prove facts about mind-boggling higher dimensional objects.

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

plandis · 4 years ago
Fwiw, Griffiths QM provides an appendix with all the linear algebra you need to get through the book. People will definitely get more going in knowing about vector spaces but it’s not strictly necessary as long as you start in the appendix.