Live data from Hacker News

Ask HN: I'm looking for a good book on the fundamentals of CS

news.ycombinator.com

161–170 of 190 posts

Re: Ask HN: I'm looking for a good book on the fundamentals of CS

#161

Earlier quoted context omitted.

I'm a big fan of Sedgewick's books myself. I like how he has parallel series of his books, for different programming languages. So you get "Algorithms in Java" or "Algorithms in C++" or whatever, depending on your preference. I think he has at least C, C++, and Java versions. https://www.cs.princeton.edu/~rs/

Do you know if there's much difference between these beyond the language used? It seems like he's only updating the Java version these days, and that's what is used in the Coursera course. From what I can tell he's collapsed it down to just a java version entitled "Algorithms" that hit 4th edition in 2011. I'd rather have the exercises / examples in C but not if it means swimming upstream.

It's funny, I have each book of all three of the respective original series: Java, C, and C++. But I have never sat down and done a "side by side" comparison. And I've mostly worked through the Java version. I guess I had assumed that the contents were largely the same modulo language oriented variations, but I can't swear that that is the case.

From what I can tell he's collapsed it down to just a java version entitled "Algorithms" that hit 4th edition in 2011.

I never got around to picking that one up, so I don't really know anything about it.

Re: Ask HN: I'm looking for a good book on the fundamentals of CS

#162

Algorithmics by David Harel is not much mentioned anymore, but it's really good if you can find it. An easy and inviting read, it was written as a popular book not a textbook but nevertheless covers many topics with very thorough and clear explanations, and also touches on history and culture. I recall there were several versions with different titles - Algorithmics: The Soul of Computing was, I think, a cut-down ver…

The Harel book is "Algorithmics: The Spirit of Computing", not "The Soul of Computing".

The book was actually originally just called "The Science of Computing" and published in 1987. The second edition in 1992 had the name changed to "Algorithmics: The Spirit of Computing". The third edition in 2004 kept that name and had Yishai Feldman added as coauthor. There was a 2012 reprinting of that which had a new preface written for it that talked about Turing (2012 was his centennial year).

I have the original 1987 edition. Comparing its contents to the third edition's via preview on Amazon, it looks like the first four parts are mostly the same topics.

The chapter on "Algorithms and Intelligence" had moved from the fourth section to a new fifth section and been renamed to "Algorithmics and Intelligence", and a new chapter, "Cryptography and Reliable Interaction" has been added to the fourth section.

Other new chapters, all in the fifth section are "Software Engineering" and "Reactive Systems".

The second edition, according to the preface in the 2012 printing, had little change from the first as far as the chapter content but added exercises and solutions.

From second to third chapter 3 changed from "Programming Languages" to "Programming Languages and Paradigms" and dropped APL and Snobol and added C, C++, and Java. Chapter 10 changed from "Parallelism and Concurrency" to "Parallelism, Concurrency, and Alternative Models" and added quantum computing and molecular computing.

Re: Ask HN: I'm looking for a good book on the fundamentals of CS

#163
post #129
post #25

I haven't used it myself but have heard good things about the resources here - https://teachyourselfcs.com

This website is blocked in India with the message. "The website has been blocked as per order of Ministry of Electronics and Information Technology under IT Act, 2000." https://imgur.com/a/NuRxjFl

That’s weird. Try this archive - http://archive.today/IDB10

Re: Ask HN: I'm looking for a good book on the fundamentals of CS

#164

Earlier quoted context omitted.

> I'm currently going through TAOCP[1]. When someone without a formal CS career is asking for a CS fundamentals book and you're dropping TAOCP I'm not sure if this is a humble brag or an attempt at trolling.

I don't have a formal CS career either. In one of the other comments someone wrote they read it being a high school dropout. Different people like different things. Note also that submission author studied chemistry, so they did get their fair share of training in mathematics.

And we are all very impressed. However, it's obvious how this set of books would intimidate mainstream non-exceptional folks (unlike yourself and the other person on this thread) from pursuing CS. I mean sure, different people like different things, but this piece of scientific literature is both very talked about and very little read as opposed to other, more distilled and popular sources of education. Sources which, due to solely their popularity, would have a lot more people around to help you when you're having trouble making progress.

Not saying these are bad books, they're actually brilliant (even with a couple of errors in the exercises). But with my (teeny tiny very little) teaching background, it's probably at the bottom of the list of things to recommend to someone just starting to look at CS fundamentals. Skiena's book would probably be my first choice.

Re: Ask HN: I'm looking for a good book on the fundamentals of CS

#165
I would suggest to read beginning part of SICP, with out actually diving into reading chapters, why SICP matters ? => (https://people.eecs.berkeley.edu/~bh/sicp.html).

Take a look at Norvig's essay (https://norvig.com/21-days.html) and suggestions from teachyourselfcs.com.

https://github.com/ossu/computer-science is also a good one.

If want more, https://ocw.mit.edu/courses/electrical-engineering-and-compu...

Re: Ask HN: I'm looking for a good book on the fundamentals of CS

#167
post #83

A lot of recommendations here, so I would like to ask for some (hope that's allowed). - Operating Systems. I had a course on OS (I'm a student), but I felt it was kind of lacking, and would like to explore more. - Compilers? Seems very interesting Also I've started with a bit of haskell to learn functional programming, would love some pointers from the more experienced people here :D (Also networking?? So much to lea…

If you already know the basics of what an OS does, it's best to just get into some more detail of how it does it. "The Design and Implementation of the FreeBSD operating system" is a great book for the structure of a *nix system. If you understand the design of one of these systems, none of the others is hard to figure out. Beyond that, if you want a more academic read it's good to read up on some other architectures…

Thank you! :)

Re: Ask HN: I'm looking for a good book on the fundamentals of CS

#168
post #64

I highly recommend "An Introduction to General Systems Thinking, by Gerald Weinberg. An orthogonal piece of advice that I got from a different book of Gerald Weinbergs' is to learn 3 or 4 Very Different languages simultaneously, to grasp the enormous difference between them all. In 2021 I'd recommend C (lowest level other than assembler: 1st caveat, I haven't looked at Rust) and then at least one Lisp-family language…

First, I want to support any mention of any Gerald Weinberg book. Every one is gold. IMO, Intro to GST is great for developing a scientific mindset, something broader than computer science itself. I would suggest a grain of salt to go with the three-four languages at a time recommendation. I'd have to dig up a stored book to find the reference, but Weinberg typically suggests learning two different languages, at leas…

I agree, 3 or 4 at a time is probably too much, I may have misremembered (I can't find the recommendation in any Weinberg book at my fingertips). But six months of solid work on 2, then six months of work on another two is an idea.

Re: Ask HN: I'm looking for a good book on the fundamentals of CS

#169
post #109
post #64

I highly recommend "An Introduction to General Systems Thinking, by Gerald Weinberg. An orthogonal piece of advice that I got from a different book of Gerald Weinbergs' is to learn 3 or 4 Very Different languages simultaneously, to grasp the enormous difference between them all. In 2021 I'd recommend C (lowest level other than assembler: 1st caveat, I haven't looked at Rust) and then at least one Lisp-family language…

I would personally de-recommend Python. It essentially has no unique paradigm or even one that it does really well. I'd replace the Python suggestion with an ML-dialect such as F# or Ocaml. I agree with you though. I think everyone needs a bit of experience with a Lisp/Scheme, an ML dialect, a Smalltalk, Elixir/Erlang, Prolog, and Forth. And I think it's better to think in paradigms rather than languages in that you…

The main thing I was thinking (I don't use Python myself) was that it's super-popular right now, and fits in the realm of 'a scripting language'. I'm loathe to recommend bash for what I hope are obvious reasons, and I have worked in and detested Perl. I prefer Ruby for small bits of scripting this and that, but chose Python because of it's popularity.

Re: Ask HN: I'm looking for a good book on the fundamentals of CS

#170
post #37

* The elements of computer systems * The little schemer * The c programming language (k&r)

Seconding the recommendation of The Little Schemer, especially as a beginner book. Very accessible and low time investment, but even as an intermediate programmer when I read it, I got a lot out of it.
Post reply on HN