Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: Best value computer science book?
60 points by dgan on July 2, 2023 | hide | past | favorite | 49 comments
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




Structure and Interpretation of Computer Programs. If you can only buy one book about Computer Science in your life, that's the one to get. It's not dirt cheap (even used), but it's an incredible value nonetheless:

https://www.amazon.com/Structure-Interpretation-Computer-Pro...


It is also available to read online for free.

https://web.mit.edu/6.001/6.037/sicp.pdf (Second edition)

https://sicp.sourceacademy.org/sicpjs.pdf (JavaScript edition)


I have this book, it's very... lispy.


The second edition uses Python rather the the first edition which uses the Lisp dialect Scheme.


The second edition of SICP uses Scheme (there were two editions with Scheme). The new edition uses Javascript.


The second edition uses JavaScript I thought? Unless there’s also a python edition


There’s an unofficial Python version floating around, but you’re better off with one of the Scheme versions.


I like the Scheme version :) haven’t worked through the newer one. I do understand their impetus for it though (even if I personally don’t agree with it).


Here's a free algorithms book: https://jeffe.cs.illinois.edu/teaching/algorithms/book/Algor...

It's got to be a good value!


Jeff was also my favorite CS instructor at UIUC. He really knew how to help you learn how to think and solve problems.


Best teacher I've ever had, hardest exams I've ever taken :( :(


That’s what made his classes brilliant. IIRC, the exams were not questions you could memorize the answers to. Instead they were problems you had to solve in real time. You had to exercise the problem solving and algorithm building you learned throughout the course and discover the solution. I never felt so smart, even now, than when I figured out the solution to a difficult problem on those exams.


It is so difficult to write challenging exams that only top-tier (“devoted”) professors do.


If you're interested in implementing programming languages: Crafting Interpreters, by Robert Nystrom https://craftinginterpreters.com/

Most accessible compilers book out there.


Do you already have the standard undergraduate books?

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


CLR is a fantastic book. (I haven’t read the updated editions, but I would assume the latest holds up.)


Latest edition is remarkably good. It's my recommendation for anyone wanting to start diving into algorithms.


Wow, CLR is 239€. I do have a paid job, but dear lord


That seems unusually high? ISBN 978-0262046305 is the latest edition, which I see on Amazon.de for 116€ (and you can get older/used editions for less).


My mistake. I actually meant the other book "Compilers: Principles, Techniques, and Tools (Aho, Lam, Sethi, Ullman)"


Really hard to make a recommendation without knowing what you know, where you’re at in your computer science education, what you’ve already read and liked, etc.


Hard to beat the scope of "The Elements of Computing Systems: Building a Modern Computer from First Principles": https://www.amazon.com/Elements-Computing-Systems-Building-P... The website is here: https://www.nand2tetris.org/


My favorite is The Turtle Book "Computer Science" by Aho & Ullman. I also liked the books "Computer Algorithms" (by Baase et al), The Wizard Book, The Dragon Book, The Tiger Book (about compiler) and "The Comet Book" (about os)


Program = Proof, Samuel Mimram: https://www.lix.polytechnique.fr/Labo/Samuel.Mimram/teaching.... Also available as hardcopy in Amazon.


It would be nice if people could add why their suggestion is the best value computer science book, now it's just a bunch of suggestions without any context.


Yes, and also whether they themselves read it, or are just going by others' opinions.


and if they themselves read it, is that because they used it in a course 30 years ago, and haven't looked at the alternatives since? :)


A few that I really like.

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


There is also Thinking Forth, by the same author, Leo Brodie, IIRC.


Used textbooks can get pretty cheap when you don't need the exact edition for the problem sets.

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


Oh, and one book I rather enjoyed was Ideas That Created the Future, which is not exactly a textbook (but is probably used by the author as such) so much as a survey on the history of computer science via primary sources. Each source has a 1-2 page summary providing context, but the meat is reading the original papers on computer design, Complexity Theory, various papers on logic and proofs and proofs of software properties, theorem provers, NP completeness, neural networks, etc.

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


ThriftBooks is on Amazon:

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


But which book then?


Most--if not nearly all--of the books suggested in this thread are worthy of space on the shelf (or hard drive).

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


You still appear to be advertising a specific book selling website instead of recommending books like OP asked for.


Mm, okay. ThriftBooks is my go-to for used books, because I first discovered them through Internet Archive. However, IA's partnership is with Better World Books, (BWB) which is a completely different site.

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

  * are not already available for free
  * are used 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


There's a few solid free books on algorithms, but I'm not aware of anything comparable to "Concepts, techniques, and models of computer programming" by Peter Van Roy and Seif Haridi available for free, (besides SICP and HtDP) so my advice is to check it out and then buy it.


I'm biased towards more practical books but here you go

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


If you're not familiar w/ TeX, and if _The Art of Computer Programming_ seems tough sledding (but interesting), may I suggest:

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.


Sipser’s Introduction to the Theory of Computing is fantastic.


I can second that, but back when I took my course on computational theory, it was prohibitively expensive (~200 Euros) for a poor student.


Symbolic Logic and The Game of Logic, by Lewis Carroll

Operating Systems: Three Easy Pieces, by Remzi H. Arpaci-Dusseau and Andrea C. Arpaci-Dusseau


Is there a shortage of good, free CS material?


anything not available on http://libgen.rs


or annas-archive.org


The most valuable book in terms of increased income to me is _Exploring Requirements_ by Gauss and Weinberg


Modern Operating Systems 4th Edition, Andrew Tanenbaum, ISBN 9780133591620


programming pearls is quite cheap i think


There is also a sequel, More Programming Pearls.

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.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: