Back to the bookshelf

Typographic jacket · original cover not fetched

FROM THE SHARED SHELF · 2006–2026 SAMPLE

Modern Operating Systems

Andrew S. Tanenbaum

6 readers recommend it across 5 discussions

Topics are model-inferred labels.

Keep it on your reading list

THE WORD OF MOUTH

What made it worth passing on?

Original Hacker News comments, in the readers’ own words.

guiraldelli
I don't think there is a definitive answer for your question because computer science is a relative new area of knowledge and “fundamental books” are still being published. If I had to say one text that is the fundamental one, I would go with a paper: “On Computable Numbers, with an Application to the Entscheidungsproblem” [1], by Alan Turing. --- But if you just started your course in Computer Science, then I will give you some “bookshelf advice" based on my experience. I had the pleasure to study all the books I am going to recommend you, and most of them I was able to read cover-to-cover during the university years. And they are also in my bookshelf for reference. The book order does not represent rank of importance. * “Introduction to the Theory of Computation”, by Michael Sipser. * I also recommend the “Elements of the Theory of Computation”, by Christos Papadimitriou. * Another good complement is “Introduction to Automata Theory, Languages and Computation”, by Hopcroft and Ullman. (Thanks, @reacweb, for the reminder.) * “Graph Theory”, by Reinhard Diestel.…
jfaucett
what programming languages do you teach? I ask because, I remember now back to when I first really started trying to program, and I think it would have been great to get introduced to interesting code bases back then. So guess, I'm just looking back now and will recommend what I wish I had had, maybe some of it help:) As a teen, I fumbled around for a while before discovering linux and open source and that good feeling you get when you download the src and start perusing and firing up your debugger. Having said that if you teach js, I'd highly recommend dojo, underscore, I guess most c /c++ might be too advanced but if not Webkit, Redis, and glib are clean fun code bases and dissecting Lisp / Emacs was a blast. As far as answering you actual question goes, I really liked Gödel, Escher, Bach back then, also thinking recursively by Roberts. The only "technical" book I enjoyed reading was Modern Operating Systems by Tanenbaum ( don't know what current editions are like, the roughly 2000-2001 version was great though). Its was simple, very clear, humorous, and a gives a great overview of how the os works.
rshepherd
This response is late that I doubt will even be read by the poster, but I will throw this out there anyway. I was (am?) a self-taught programmer, I guess I am transitioning away of that label. I am a bit less than halfway through the MSCS program at the moment. I really cannot recommend it enough. I think I was a pretty good software engineer prior to getting some formal education, but I cannot tell you how often in class the light from heaven just shines right down.. "oh so that's why x is y". If you enjoy the work, its a real pleasure (albeit a painful amount of work at times). So finally I get to the point. I can see that you have already received a lot of good recommendations. I think most of them are quite good. However, I have a couple of observations about specific books. Intro to Algorithms - Cormen etc.…

Also recommended in this reply

T-R
It really depends on what you feel you're missing and what you're hoping to do (definitions of "daily work" vary widely). If you're looking to get up on theory by doing your own program of sorts, you could do worse than start with these (in roughly this order): Structure and Interpretation of Computer Programs - Abelson, Sussman, and Sussman Introduction to Algorithms - Cormen, Leiserson, Rivest, and Stein The Art of Assembly Language - Hyde a digital logic book (not sure which is most recommended), and an architecture book (see reply by tftfmacedo) Modern Operating Systems - Tanenbaum Introduction to the Theory of Computation - Sipser Compilers: Principles, Techniques, and Tools - Aho, Lam, Sethi, and Ullman (a.k.a. "Dragon Book") Programming Language Pragmatics - Scott…