Ask HN: Examples of good writing in computer science?
6 comments
Not strictly computer science - but the one textbook that I really liked from my computer engineering degree was "Computer Organization and Design: The Hardware/Software Interface" (http://www.amazon.com/Computer-Organization-Design-Fourth-Ed...). It was surprisingly readable and easy to follow. It covers the design of a MIPS processor from the ground up (ALU, caches, memory, pipelining, etc) and also is self-aware enough to not pretend that x86/ARM don't exist.
I suppose it depends on your approach - my two cents - is your book . . .
a. geared toward programming / learning a language? I've been surprised, given the sparsity, the efficacy of a "showing-by-example" style of writing seen in the Apache Thrift documentation. K&R (to me) is decent for language acquisition, but even more useful as a quick "how did they do that again" refresher. I've found "Linux Kernel Development" (Love) as a very nice book blending concepts with programmatic examples. So the above is maybe a spectrum within this style of writing that I've found helpful.
b. a more "textbook" / algorithmic approach? I remember thinking "Computer Networking: A Top-Down Approach" (Kurose, Ross) was one of the lighter texts that didn't necessarily feel "textbook." "Introduction to Information Retrieval" (Manning, Raghavan, Schutze) also comes to mind, but more academic.
a. geared toward programming / learning a language? I've been surprised, given the sparsity, the efficacy of a "showing-by-example" style of writing seen in the Apache Thrift documentation. K&R (to me) is decent for language acquisition, but even more useful as a quick "how did they do that again" refresher. I've found "Linux Kernel Development" (Love) as a very nice book blending concepts with programmatic examples. So the above is maybe a spectrum within this style of writing that I've found helpful.
b. a more "textbook" / algorithmic approach? I remember thinking "Computer Networking: A Top-Down Approach" (Kurose, Ross) was one of the lighter texts that didn't necessarily feel "textbook." "Introduction to Information Retrieval" (Manning, Raghavan, Schutze) also comes to mind, but more academic.
I don't think I am ever qualified to write text book material. Bits of the book I suspect will be "How I got to this point in the code".
There will be a lot of show-by-example. I've written half a chapter so far and it does really feel like I'm just annotating my code, which isn't a good thing.
There will be a lot of show-by-example. I've written half a chapter so far and it does really feel like I'm just annotating my code, which isn't a good thing.
I hear that - skim through Love's Linux Kernel Development and see what you think. It sounds like you're going for something much lighter, so maybe something along the lines of the "Little Book on Coffeescript?"
Didn't even have to think about this one: Eloquent Javascript, by Marijn Haverbeke. He's an amazing writer and a brilliant all-around guy. Technically it's geared toward new programmers, but it's worth a read at pretty much any level.
You can find it free online here: https://eloquentjavascript.net/ or buy a print version here: http://nostarch.com/ejs.
(Full disclosure: I'm listed as the editor on the print version, though in this case my job basically consisted of nodding as chapters came in and saying, "Yup, that's a damn good book.")
You can find it free online here: https://eloquentjavascript.net/ or buy a print version here: http://nostarch.com/ejs.
(Full disclosure: I'm listed as the editor on the print version, though in this case my job basically consisted of nodding as chapters came in and saying, "Yup, that's a damn good book.")
Programming Pearls: http://netlib.bell-labs.com/cm/cs/pearls/
Best Software Writing: http://www.joelonsoftware.com/articles/BestSoftwareWriting.h...
Last resort: Bring a sleeping pill and sleep through the flight.
Best Software Writing: http://www.joelonsoftware.com/articles/BestSoftwareWriting.h...
Last resort: Bring a sleeping pill and sleep through the flight.
I'm about to go off for a holiday and I'd have many hours to kill on the plane and I'd like to spend some time reading. I've started work on writing a book on virtual machines and ECMAScript, and I would like some examples of good writing for computer science for inspiration.
An example I liked is K&R C. It's clear, and to the point. It is however, also a little dry. TAoCP is also very dry and it takes a lot of work to read it. PRML is a good read but can be intimidating at certain points. I also found On Lisp to be a good read if a little meandering.
What are your favourite compsci books that are well written; easy to understand and follow; and caters to multiple reading levels, from newbies to advanced readers?
What to you, makes good writing?