Out of ~15 CS books read, my top pick would be “Learn You A Haskell For Great Good”.
Admittedly most of the CS books I have read are these instructional, O’reilly style books (often teaching a specific language) as opposed to academic texts. But regardless…
It’s a well written book. It introduces Haskell in a comfortable way, at a good pace. And I do like the humor. Or at least, I did when I read it years ago.
It’s also one of the few language specific books that I felt generally broadened me as a programmer. Worth a read regardless of whether you intend to actually use Haskell.
https://www.goodreads.com/en/book/show/39996759-a-philosophy...
and: _Literate Programming_ Donald Ervin Knuth
https://www-cs-faculty.stanford.edu/~knuth/lp.html
Mostly because I view them as two sides of the same coin --- one shows how to design software, the other shows how to document and write the software which one has formally designed.
Walking around my house I found 95 books at first counting --- but I maintain two lists of directly focused on programming books (obviously incompleat):
https://www.goodreads.com/review/list/21394355-william-adams... --- fair number of these I have not yet read, and because they touch on programs I'm not likely to be working with, probably won't, but are listed because I really believe in Literate Programming and want to foster/advocate for it where possible.
https://www.goodreads.com/review/list/21394355-william-adams... --- most of these are read, and as noted, this is badly incompleat (but may be affected by some of the books I counted being on other shelves such as "Typography")
I love Knuth but have not yet added Literate Programming to my library. Have been hoping to find it used somewhere (along with Concrete Mathematics) but hasn't turned up yet.
http://literateprogramming.com/
and finding a suitable tool for your language of choice and doing a small project --- tangle/weave is such a basic concept that it's notorious for folks rolling their own --- heck, I was able to do it (w/ a bit of help: https://tex.stackexchange.com/questions/722886/how-to-write-... )
That said, I bought a second copy as a gift from Thriftbooks.com and it was a reasonable price.
Here’s some of my favourites, cover to cover:
- Steven’s TCP/IP Illustrated
- Maxwell’s Linux Core Kernel
- Tanenbaum’s MINIX book
- Petersen’s Mastering EMacs
- Grune’s Parsing Techniques
- Raymond’s TAOUP
- Schneier’s Applied Cryptography
- “The” Rust book (same as post)
It also gives me a good indication of how fast I am reading (do I work to live?) and how my taste changes over time.
(interested can see my profile on HN for link)
Isn't it likely that this article is the result of the authors findings in multiple similar experiments?
For instance, having not read TAoCP personally, I can still reccomend it based on the fact that just about everyone reccomends it and critical words against Knuth I've ever heard were "I wish he'd adopt a modern writing pipeline so he could finish the books faster".
Am I supposed to believe the author of this rec list has read all 30 of these, cover-to-cover?
If so, how many additional books have they read which didn't make the list?
Because I would ideally like their "recommended books" list to be, say, the top 10% of the books they've read. So this list would be most credible if the author has read ~300 books, then recommended the top ~30 to us.
Somehow I doubt that.
Experiment: If you have a favorite CS book, please reply to this comment stating your favorite CS book, and the estimated total number of CS books you've read. I'll bet such a thread would be more valuable/higher-signal than OP.