Have a personal budget to spend mainly on programming books and was wondering what are some of the better ones recently? Question is deliberately open ended with no particular focus on specific domains, nevertheless a small summary why a given book is great value would be appreciated.
We may not want to regard Knuth's latest volume, V 4B, in the The Art of Computer Programming series as a book authored only over the last couple of years, but, yeah, it has just gone into print [0]; HN reaction here [1].
"Nobody ever taught me about a B tree. I had heard of it. When I went to write my own B tree, on the bookshelf behind me, I’ve got Don Knuth’s The Art of Computer Programming, so I just pulled that down, I flipped to the chapter on searching and looked up B trees and he described the algorithm. That’s what I did.
"Funny thing, Don gives us details on the algorithm for searching a B tree and for inserting into a B tree. He does not provide an algorithm for deleting from the B tree. That’s an exercise at the end of the chapter, so before I wrote my own B tree I had to solve the exercise at the end. Thanks, Don. I really appreciate it.
"Adam: That’s awesome. Did you pull anything else from that book?
"Richard: Well, it’s an amazing volume. I can’t give you a specific example, but from my era, everybody has to have read or at least skimmed through, at least browsed through The Art of Computer Programming, and know that algorithms that are there, maybe not Don’s exact implementation. I mean, I never took the time to learn MIX, which is his assembly language, but it’s useful to flip through and look at all the algorithms he talks about. I think that just a year or two ago I needed a pseudorandom number generator, and I was, “Let’s see what Don recommends.” You pull it off. You see what he does."
Hard disagree - I'd consider it the encyclopedia of Computer Science. Yes, might not be great to read in entirety but found very useful exploring some search algorithms recently - KMP and Boyer-Moore both explored in the excruciating detail I needed
I haven't read it yet, but I've skimmed over a couple parts, but I think System-Design Interview insiders Second Edition is a modern book around lots of concepts talked about on HN over the last 5-10 years.
Agreed. Someone borrowed this book from me and then he liked it so much to pay the full price for it. Actually the 1st edition is not published recently but the 2nd edition was published a few years back.
Just recommended to a mentee of mine yesterday referring to it as "one of the best software books in the past few years". Weird coincidence. It really is good, but not super actionable by a lot of engineers since they aren't in a position where they need distributed data or message queues or other interesting tech.
It's very helpful for understanding the software many of us use on a daily basis though, which is extremely important. That sort of knowledge helps you evaluate when different solutions are appropriate, what their shortcomings and strengths are, and to understand why those shortcomings and strengths are there in the first place.
A lot of it is things that could be explained individually, but there's really something to be said for holistic views on a topic.
[0] https://www-cs-faculty.stanford.edu/~knuth/news.html#v4b
[1] https://news.ycombinator.com/item?id=33082128