This article is part of the article series "My Top 100 Programming, Computer and Science Books."
<- previous article next article ->

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.

Previous parts: part one, part two, part three, part four, part five, and part six.

This time I'm sharing my favorite books about math, number theory, cryptography, programming, and visual proofs.

If you're interested in this article series, you can subscribe to rss feed of my blog and follow me on twitter for updates.


Part of my bookshelf.

Here are the next five books.

31. Reciprocity Laws: From Euler to Eisenstein


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 100% and just work through it. I really like books that focus on a single subject and take wild journeys into unknown.

Most interesting part of the book seems to be the chapter on Gauss's Last Entry. 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.


Gauss's last entry (in Latin; mouse over for English.)

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.

This book is very similar to another amazing book called Primes of the Form x²+ny² that I recommended in the previous post.

Author: Franz Lemmermeyer.

32. The Design and Evolution of C++


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.


My Design and Evolution of C++ notes.

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


The Practice of Programming.

Another classic book for beginners and journeyman. 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 express same day before noon delivery!

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


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


Proofs Without Words III.

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


Reciprocal Pythagorean Theorem.

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.

This article is part of the article series "My Top 100 Programming, Computer and Science Books."
<- previous article next article ->

Comments

veky Permalink
August 12, 2017, 03:40

> I can also say that I'll buy any and all books written today that are typeset in troff. Without knowing the author.

Seriously? Many typesetting experts today agree that troff has been mostly superseded by TeX.

And if you feel the same about TeX, then I think you'll have to spend _a lot_ of money. :-P

I know troff, but I wouldn't consider writing a book using it (that is, until I read your announcement above... it might give me a few easy bucks:). There are better tools today. Seriously.

Dan Permalink
August 12, 2017, 14:47

Just yesterday I read your interview (Coder Intros), and thought, "Wow, I sure hope Peter publishes his next 5 books soon, I love those posts".

I've purchased 4 books so far from your recommendations. I either own, or had already read, at least 15 others, so in a sense our interests and preferences are somewhat aligned.

Keep them coming!

August 15, 2017, 11:57

Hi Peter,
I am following you on the books you suggest. In India we have Let Us C. I wanted to learn c and then C++. I am not from a technical background. I have been dwelling on different decision to which language I should begin with. Its never late and your never old to learn stuff. Kindly shed some light and guide me Peter.
Thanking you in anticipation!
Regards,
Kundan

Leave a new comment

(why do I need your e-mail?)

(Your twitter handle, if you have one.)

Type the word "coding_533": (just to make sure you're a human)

Please preview the comment before submitting to make sure it's OK.

Advertisements