Ask HN: Best value computer science book?
I have a book gift card for a 100€, on Amazon. Looking for inspiration?
Circle of interest : Programming languages, [Symbolic] Logic, algorithms in general sense
Circle of non-interest : AI & machine learning, video games programming
49 comments
[ 3.4 ms ] story [ 132 ms ] threadThriftBooks Atlanta storefront: https://www.amazon.com/s?i=merchant-items&me=A1QJ4UH6FW3UH1
ThriftBooks Chicago storefront: https://www.amazon.com/s?i=merchant-items&me=A365C2XG0O7B0H
Might also be possible to purchase a Visa gift card for a little extra, and then try the official Thriftbooks site:
https://www.thriftbooks.com
With the converted gift card, Humble Bundle (ebooks):
https://www.humblebundle.com/books
Math and CS concepts rarely expire.
Compared to tsundoku¹, finishing one book is leagues ahead of one who has never started a hundred books.
¹ https://en.m.wikipedia.org/wiki/Tsundoku
Checking orders, there was a switch from BWB to ThriftBooks. I don't know how the switch happened, but you'd think I would notice when receipts stopped having anthropomorphized messages.
So, I'm not able to link IA with ThriftBooks, unless OpenLibrary linked them and I happened to stick with them after the first real delivery.
(Or, maybe ThriftBooks happened to have better inventory at the time.)
> advertising
With the above as context--well, it worked for me. Classics one or two orders of magnitude cheaper is a good deal.
That brings us to
> recommending books
Hard to say¹ without more context. First, I'll add a constraint: don't get only one book priced at 100 euro, especially since many books in this thread are inarguably valuable for much less. Then really, what OP can afford is a collection of books. Then, there is no "one best" book.
For the sheer number of exercises, can't go wrong with Deitel & Deitel How to Program series: Java, C, C++, or Python. I know folks will scream, but without much more to go on, there's enough material to get solid on fundamentals.
It's not the best book on CS, but it's one of the best to get started.
The way OP mentions "circle of interest" makes me assume they have some knowledge of things, so let's skip Data Structures & Algorithms, and head straight to electives: operating systems, databases, advanced algorithms, functional programming, software engineering, networking, assembly, etc.
The solution here is to buy multiple books from the suggested ones in this thread, where the books
Along with the consideration for book bundles from Humble Bundle, where past publishers have included Pragmatic Programmer, Manning, Mercury, O'Reilly, Packt, Apress, Wiley, and No Starch Press.But that would only likely be available after converting from Amazon to a generic gift card.
¹ https://news.ycombinator.com/item?id=36566229
https://www.amazon.com/Structure-Interpretation-Computer-Pro...
https://web.mit.edu/6.001/6.037/sicp.pdf (Second edition)
https://sicp.sourceacademy.org/sicpjs.pdf (JavaScript edition)
Most accessible compilers book out there.
* Introduction to Algorithms (Cormen, Leiserson, Rivest, Stein)
* Compilers: Principles, Techniques, and Tools (Aho, Lam, Sethi, Ullman)
Knuth is also great to have as a reference - I've only needed to consult it professionally two or three times, but it's saved a _lot_ of time when I have.
Operating Systems: Three Easy Pieces, by Remzi H. Arpaci-Dusseau and Andrea C. Arpaci-Dusseau
I have both, and they are good.
In one of them, Bentley shows some advanced uses of awk, involving its associative arrays, in a short awk program to do some sort of processing, and says that an equivalent C program would be a few hundred lines, IIRC.
It's got to be a good value!
Textbooks I still have:
- Operating Systems, Tannenbaum
- MINIX, Tannenbaum
- Computer Networks, Tannenbaum
Not schoolbooks:
- UNIX & Linux System Administrator Handbook
- The Linux Programming Interface
- Time Management for System Administrators, Limoncelli
- The Practice of System and Network Management, Limocelli et al.
NonCS:
- Statistics, Freedman
- MLA Handbook
- Technical Communication, Markel
One thing I learned is that the idea of a computational neural network predates actual working general purpose computers by a few years, and is actually cited in the construction of computers as an inspiration.
https://direct.mit.edu/books/edited-volume/5003/Ideas-That-C...
- Grokking Algorithms: Simple and to the point explanations of common algorithms with pictorial representations.
- Let Over Lambda: A Guide to making the most of macros in Common Lisp.
- Starting Forth: Never used or hear of Forth? No problem, this book teaches this very unique language in terms that are easy to grasp. Forth is perhaps my favorite way to program microcontrollers.
https://www.amazon.com/Literate-Programming-Lecture-Notes-Do...
You could check out:
http://literateprogramming.com/
to see if it's a good fit. Hopefully it will get reprinted soon, but there are still copies available at fairly reasonable prices.
- Designing Data-Intensive Applications by Kleppmann - not in your circle of interest necessarily but not in your circle of non-interest either.
- Introduction to the Design & Analysis of Algorithms by Levitin - not very popular but a great book. Interestingly, it groups algorithms around design techniques e.g. decrease-and-conquer, divide-and-conquer, greedy, DP.
- Algorithms by Sedgewick and Wayne - great algorithms book if your main programming language is Java, I keep coming back to it.