When I was an undergrad (enrolled in 2011) I decided to screw my professors book recommendations and lookup what the internet seemed to think was the best book in each subject and read that instead. Most of them were fairly old. Some examples that I remember off the top of my head:
Intro to CS: SICP (1979)
Algorithms/data structures: CLRS (1989)
Theory of computation: Sipser (1996)
Compilers: Dragon book (1986)
Calculus: Spivak (1967)
Linear Algebra: Dover's by Shilov (1971)
The given year is for the first publication, some of them are still being updated and I probably read a newer edition.
Claude Shannon's original 1948 paper "A Mathematical Theory of Communication" launched the entire field of information theory. It's 50 pages, highly readable, and pedagogical. The source of its magic is that Shannon introduces and concretely grounds an essentially new ontological concept of vast applicability. And it has 100,000 citations.
This could have easily been 3-4 landmark papers, but instead its packed into one cogent idea.
That common interview question about query autocomplete/sentence completion? Shannon solved it and demonstrates it in this paper, almost a decade before FORTRAN existed. New grads still struggle with that problem. PhD's still struggle with that problem.
Pretty much every machine learning classifier is using a loss function described in that paper.
I always thought it'd be a really cool start-up idea to have a service that prints, binds, etc.. and mails you within a few days a printed paper like this.
I probably have 10 papers floating around, loose pages. Annoying. I print them when I want to read them but of course rarely can immediately.
Chandrasekhar's "Newton's Principia for the common reader" is a reading of Newton's book in modern mathematical notation and with commentary on the methods Newton was using.
Not sure you’re looking for philosophy, but I keep a translation of the Tao Te Ching nearby at all times. It’s helped me stay centered and humble.
Just to go meta: whatever book you learned something from originally/in college you should keep. It might not always be the best, but keeping the context of your original understanding can really help and speed up recollection when needed. (This probably applies most to textbooks used for whole classes as opposed to minor topic references.)
Good idea! I am a complete sucker for tracking down CS textbooks from my courses 20 plus years ago. And I like the hard copy versions. My outlook is, an engineer is known by the books he keeps.
"The Art of Electronics" Paul Horowitz, Winfield Hill. Electronics for people who want to do stuff.
I loved this book as a teenager and recently got reacquainted with this after years by the almighty AvE on youtube when he took apart this an old Helicopter Radio/Telephone here: https://www.youtube.com/watch?v=6eoBj5W7Vdc
World of Mathematics - An amazing compendium of accessible content straight from the masters - Poincare, Jonathan Swift, Neumann, Bishop Berkeley, Cayley etc https://www.amazon.com/World-Mathematics-James-Newman-Hardco... I believe it is available on archive.org
What Is Mathematics? by Richard Courant and Herbert Robbins published in 1941. One of the most beginner friendly yet rigorous books out there for a survey of many areas in mathematics.
Code: The Hidden Language of Computer Hardware and Software by Charles Pretzold
Reading the book is the most beautiful and simple way that a person can really understand what a computer and come to the realization that it is not black magic.
I worked with an ex-ecology professor on some 'data science' projects at work, who suggested this older book I enjoyed called "The Ecological Detective: Confronting Models with Data." Good read imho for ideas about generating hypotheses, exploring data, and comparing models to explain the data, and not just in ecology (though that is the context obviously).
"The Design of the UNIX operating system" by Bach holds up well. Feynman's lectures on physics (3 volume set). Electrodynamics by Jackson is also up there.
Modern Higher Algebra by A. Adrian Albert (1937, Dover/Cambridge). It covers both abstract algebra and linear algebra.
Most modern textbooks tend to approach linear algebra from geometric perspectives. Albert's text is one of the few that introduce the subject in a purely algebraic approach. With a solid algebraic foundation, the author was able to produce some elegant proofs or results that you don't often see in modern texts.
E.g. Albert's proof of Cayley-Hamilton theorem is essentially a one-liner. Some modern textbooks (such as Jim Hefferon's Linear Algebra) try to reproduce the same proof, but without setting up the proper algebraic framework, their proofs become much longer and much harder to understand. Readers of these modern textbooks may not realize that the theorem is simply a direct consequence of Factor Theorem for polynomials over non-commutative rings.
With only about 300 pages, the book's coverage is amazingly wide. When I first read the table of content, I was surprised to see that it not only covers undergraduate topics such as group, ring, field and Galois theory, but also advanced topics such as p-adic numbers. I haven't read the part on abstract algebra in details. However, if you want to re-learn linear algebra, this book may be an excellent choice.
This is the piece I love about HN. A comment refers to an accomplished person and he/she happens to be right there. And either supplying a correction or taking the feedback positively.
For those who are reading this, let me stress that it is not that Prof. Hefferon's proof of Cayley-Hamilton theorem is bad (it is actually better than some really horrible proofs that appear in some well-received textbooks), but that Albert's treatment is superb --- it is far better than the treatments of the theorem in most modern textbooks, including Prof. Hefferon's. Also, I was certainly not commenting on the overall quality of Prof. Hefferon's book, and I thank him for offering his textbook for free.
Oh, forgive me, no offense taken. I should have put a smiley. I read your post with interest and shall check out the book.
(As you no doubt know, different books have different audiences. Before I wrote my Linear book, when I looked at the available textbooks I thought that there were low-level computational books that suited people with weak backgrounds, and high-level beautiful books that show the power of big, exciting, ideas. I had a room with students who were not ready for high. I wrote the book hoping that it could form part of an undergraduate program that deliberately worked at bringing students along to where they would be ready for such things. Naturally, with that mindset I read your post as meaning that the audience for the book you described is just different. Anyway, thanks again for the pointer.)
86 comments
[ 3.1 ms ] story [ 163 ms ] threadIntro to CS: SICP (1979)
Algorithms/data structures: CLRS (1989)
Theory of computation: Sipser (1996)
Compilers: Dragon book (1986)
Calculus: Spivak (1967)
Linear Algebra: Dover's by Shilov (1971)
The given year is for the first publication, some of them are still being updated and I probably read a newer edition.
There's a couple of follow-ups too, such as "Why Johnny Still Can't Encrypt" [2], and "Why Johnny Still, Still Can't Encrypt" [3].
[1] https://people.eecs.berkeley.edu/~tygar/papers/Why_Johnny_Ca...
[2] https://cups.cs.cmu.edu/soups/2006/posters/sheng-poster_abst...
[3] https://arxiv.org/abs/1510.08555
http://math.harvard.edu/~ctm/home/text/others/shannon/entrop...
That common interview question about query autocomplete/sentence completion? Shannon solved it and demonstrates it in this paper, almost a decade before FORTRAN existed. New grads still struggle with that problem. PhD's still struggle with that problem.
Pretty much every machine learning classifier is using a loss function described in that paper.
I probably have 10 papers floating around, loose pages. Annoying. I print them when I want to read them but of course rarely can immediately.
Just to go meta: whatever book you learned something from originally/in college you should keep. It might not always be the best, but keeping the context of your original understanding can really help and speed up recollection when needed. (This probably applies most to textbooks used for whole classes as opposed to minor topic references.)
I loved this book as a teenager and recently got reacquainted with this after years by the almighty AvE on youtube when he took apart this an old Helicopter Radio/Telephone here: https://www.youtube.com/watch?v=6eoBj5W7Vdc
1: https://github.com/papers-we-love/papers-we-love
What Is Mathematics? by Richard Courant and Herbert Robbins published in 1941. One of the most beginner friendly yet rigorous books out there for a survey of many areas in mathematics.
You can find hundreds of gems here from erstwhile Soviet Union - https://mirtitles.org/
Reading the book is the most beautiful and simple way that a person can really understand what a computer and come to the realization that it is not black magic.
https://www.amazon.com/Code-Language-Computer-Developer-Prac...
https://press.princeton.edu/titles/5987.html
Zen and the Art of Motorcycle Maintenance (Philosophy).
anytime worth reading, simply tells you how everything in a computer work like memory and processor.
Most modern textbooks tend to approach linear algebra from geometric perspectives. Albert's text is one of the few that introduce the subject in a purely algebraic approach. With a solid algebraic foundation, the author was able to produce some elegant proofs or results that you don't often see in modern texts.
E.g. Albert's proof of Cayley-Hamilton theorem is essentially a one-liner. Some modern textbooks (such as Jim Hefferon's Linear Algebra) try to reproduce the same proof, but without setting up the proper algebraic framework, their proofs become much longer and much harder to understand. Readers of these modern textbooks may not realize that the theorem is simply a direct consequence of Factor Theorem for polynomials over non-commutative rings.
With only about 300 pages, the book's coverage is amazingly wide. When I first read the table of content, I was surprised to see that it not only covers undergraduate topics such as group, ring, field and Galois theory, but also advanced topics such as p-adic numbers. I haven't read the part on abstract algebra in details. However, if you want to re-learn linear algebra, this book may be an excellent choice.
(As you no doubt know, different books have different audiences. Before I wrote my Linear book, when I looked at the available textbooks I thought that there were low-level computational books that suited people with weak backgrounds, and high-level beautiful books that show the power of big, exciting, ideas. I had a room with students who were not ready for high. I wrote the book hoping that it could form part of an undergraduate program that deliberately worked at bringing students along to where they would be ready for such things. Naturally, with that mindset I read your post as meaning that the audience for the book you described is just different. Anyway, thanks again for the pointer.)