This is part seven of my 100 favorite programming, mathematics, physics and science books.
Quick intro for anyone joining: I've been collecting interesting books for more than 15 years. I'm interested only in books that push thinking and challenge what I already know. I also like fun books that teach you something new in a unique way. And I like books that focus deeply on one and only one topic. I hate average books and would never recommend such books. My recommendations have no affiliate links or garbage. Just awesome books that I truly enjoy.
This time I'm sharing my favorite books about math, number theory, cryptography, programming, and visual proofs.
Here are the next five books.
31. Reciprocity Laws: From Euler to Eisenstein
Holy crap! Another amazing book that rarely anyone knows. This book covers one specific topic, just the way I like it. This book is all about history and development of reciprocity laws in terms of algebraic number theory. It covers it all. Quadratic, cubic, quartic, sextic, octic rational and Eistenstein's reciprocity laws, their proofs, extensions and applications. I understand maybe 10% of what's in this book as number theory isn't my specialty but I'd love to give it a 100% and just work through it. I really like books that focus on a single subject and take wild journeys into unknown.
Chapter on Gauss's Last Entry caught my attention. It's the last entry in Gauss's diary. The author uses Gauss's last entry to show connection between biquadratic reciprocity, elliptic curves, zeta functions and Weil conjectures. Super advanced stuff and I only know some of these words.
This book stops with Eistenstein's reciprocity law. The author also says there will be the 2nd volume that will start with Artin's reciprocity law and cover latest developments that have happened in the last 20 years. I'm waiting eagerly.
Author: Franz Lemmermeyer.
32. The Design and Evolution of C++
In mid 2000s I was super obsessed with C and C++ programming languages. At one point I decided to become a C++ language lawyer. That's a person who knows ins and outs of the standard and also the history of the language. I spent half a year reading this book. A chapter or two every month until I finished it. I took many pages of notes, memorized every single most important detail. This is how my notes look. I can now quickly review the entire book in half an hour.
But then I decided that being a language lawyer would be too boring and didn't fit my mindset and lifestyle and I dropped the whole idea of becoming a C++ language lawyer.
Overall this is a great book by Bjarne Stroustroup, the creator of C++ language. He tells the history of C++ since day one. Get this book if you want to know why C++ is the way it is, how it's historically connected with C, and how it's made.
Author: Bjarne Stroustrup.
33. The Practice of Programming
Another classic book for beginners and journeymen. Very similar to Bentley's Programming Pearls (and More Programming Pearls) that I covered in part one. This book teaches you how to write good code. There are two ways to write good code, read this book in a few days, and write good code, or spend 10 years writing random code and coming up with these same principles - simplicity, clarity, generality and automation.
And to be honest, I love this book because I've special feelings for Kernighan (and other Unix giants.) Kernighan? Add to cart and checkout!
Kernighan also recently wrote The Go Programming Language book. I'm not going to read it but guess what he used for typesetting?
troff! I can also say that I'll buy any and all books written today that are typeset in troff. Without knowing the author. Anyone who uses troff knows what they're doing. I'll actually write one of my own next books in troff.
Author: Brian Kernighan, Rob Pike.
34. Algebraic Aspects of Cryptography
In part four I recommended Neil's A Course in Number Theory and Cryptography. I said "I love two of his books. This is one of them. I'll keep the other book secret until the next part of the series." Well here it is.
Koblitz is my favorite author. He's not only a badass and inventor of elliptic curve cryptography but also a great writer. As I said early in the series, I hate textbooks. But not Koblitz's textbooks. His textbooks are not really textbooks. Koblitz knows exactly what to explain and how to explain and always gives good and relevant examples. This book gives brief refresher to algebra and then introduces hidden monomial cryptosystems, combinatorial-algebraic cryptosystems, and hyperelliptic cryptosystems (as well as elliptic-cruve systems). I hadn't heard about these systems before and that's what also made me excited about this book. It's not like some other boring stupid cryptography books that derive RSA for the 5000th time.
This book is also written mostly in definition-theorem-proof-example-exercise-answer style, which is one of the quickest ways to learn something.
Author: Neal I. Koblitz.
35. Proofs Without Words III
I love this series! In part four I recommended Proofs Without Words I and Proofs Without Words II. Roger Nelsen, the author, just published the third book in this series. The third book contains another 100+ elegant proofs. There is almost no text in the book, just proofs that will make you think hard. Proofs in this book are divided in several categories: geometry, algebra, trigonometry, calculus, analytic geometry, inequalities, integers, integer sums, infinite series, and other proofs.
I've only figured out about a dozen proofs and this is still one of my favorite hobbies as I love visual proofs so much. I even started an article series on catonmat called Visual Math Friday where I was explaining visual proofs but I didn't get too far as I realized I was just duplicating these books and wasn't creating much value.
Author: Roger B. Nelsen.
See you next time!
Let me know in the comments what your favorite books are and what you like about them. If you like this series, you can follow my posts you can subscribe to my blog and/or follow me on twitter and/or do nothing.