Slashdot Mirror


Best Computer Books For The Smart

You'll remember last week, I asked for recommendations of the Best Websites for developers. This was a -great- thread and in the story, I mentioned that I was planning on doing the same regarding books this week. So here it is. What do you, the slashdot reader consider seminal works? What would you consider great introductions to technical topics? If you are interested, check it out... As part of this I'm looking for books on C, C++, Perl, Python, PHP , System Administration, anything...you name. As before I have opinions on great books, but I want to see what you think. Also, what do people think is a great introductory book for people new to linux.

12 of 514 comments (clear)

  1. For applied C++ by djm2cmu · · Score: 3, Interesting

    Effective C++ and More Effective C++, by Scott Meyers

    1. Re:For applied C++ by Henry+V+.009 · · Score: 3, Interesting

      Don't forget Effective STL. And along with that, Josuttis' The C++ Standard Library.

  2. Object-Oriented Perl by Damian Conway by dustin999 · · Score: 2, Interesting

    Gets my vote. And any of the Oreilly books on Perl..

  3. http://www.canonicaltomes.org/ by Clover_Kicker · · Score: 5, Interesting

    Check out http://www.canonicaltomes.org/, people have entered and voted on the "best" books in a variety of categories.

  4. Re:My only source by Karma+Farmer · · Score: 2, Interesting
    If you want money for free, you can just print some up on a color copier. It isn't immoral, because you haven't deprived anyone else of their money.

    Also, I happen to know that most of the rockstar authors, like Knuth, Stevens, and Kernighan, have far more money than they would ever know what to do with. And, those bozos at Prentice Hall and O'Reilly are all a bunch of thiefs anyhow. I understand that they've recently lobbied congress for the right to burn down libraries to prevent the spread of information among poor people who can't afford to buy books of their own.

  5. For operating systems by DCowern · · Score: 2, Interesting

    I see Tannenbaum's book mentioned several times but so far I haven't seen even one mention of The Dinosaur Book.

  6. Where's "The C Programming Language" by K&R? by js7a · · Score: 2, Interesting
    "Anything with Knuth's name on it" includes a bunch of theist judeochristian superstition as well as some useless stuff.

    In addition to Kernigan & Ritchie's 2nd edition, The C Programming Lanugage with ANSI C, which should be on any programmer's workbench, be they Perl, Matlab, Maple, TCL, or even elisp programmers, here are some others:

    The Algorithm Design Manual by Steve Skiena. Excellent.

    The Nuts and Bolts of Proofs -- the heart of correct math is showing your work, and this book shows you how.

    The Data Game -- Controverses in Social Science Statistics -- this really puts you in touch with the kinds of numbers you hear bandied about on the news, and what those numbers mean.

    The Maple V Learning Guide -- this comes with Maple (and presumably Matlab if you get it with Maple) and teaches more than a typical undergraduate mathematics program in about 270 pages. Actually, you have to delve into the hypertext documentation of Maple to get at all the calculus, linear algebra, statistics, etc., but it's all in there.

    Studies in Inductive Logic and Probability -- actually there were two volumes published in 1980, and one or both might have gone out of print.

    What If there were No Significance Tests -- this overpriced volume (which you should be able to get for much less from the publisher's site, www.erlbaum.com that doesn't seem to be working right now) explains exactly what soft scientists (e.g., psychologists) mean when they say something is true.

    100 Statistical Tests -- this reasonably priced but somewhat advanced, applied book will tell you how to tell whether something is true, even if you have to use indirect or partially correlated measurements. The author has provided tools with what you can quickly find the appropriate test(s) for most situations I can imagine.

    All I Ever Needed to Know I Learned From My Golf-Playing Cats. Here's hoping for the +1 Funny moderation for Ruben Bolling, whom I believe to be perhaps the finest editorial cartoonist, up there with Ted Rall, Tom Tomorrow, Tom Toles, and Gary Treadeau. Fantastic!

  7. The Elements of Programming Style by toby · · Score: 2, Interesting
    This under-appreciated text (Kernighan & Plauger) taught me more about writing comprehensible (and minimally buggy) code than any other work I can name. (Thanks, Peter, for lending me your copy. Thanks, bibliofind, for furnishing my very own.)

    Moderation doesn't seem to work very well for lists like this. Maybe each poster should have equal weight, votes for specific texts are added together, and the highest scoring texts bubble to the top. Moderation seems to be a bit orthogonal to this, in that whole "groups" of recommendations are rated. Tough job for a moderator!

    And I think it's HIGH TIME for the allowed HTML to be reviewed in line with recent W3C standards. For instance, most semantic/accessible markup is disallowed (<CITE>, please?) This is wrong (IMHO).

    --
    you had me at #!
  8. Re:Knuth's "The Art of Computer Programming" by Anonymous Coward · · Score: 0, Interesting

    While Knuth's work is very good, I feel it is somewhat overrated. Its thoroughness impacts on its readability, and there are topics I feel are almost entirely useless for most readers (such as a dozen or so statistical checks for PRNGs and fast multiplication using FFT), which would probably be better served by reading papers. The description of algorithms in terms of CISC assembly is also very disappointing.

    Having said that, I do like Knuth, but if someone's asking "What algorithms book should I buy?", it's almost certainly not the answer. TAOCP is probably the third algorithms book I'd recommend, after Sedgewick's Algorithms in blah and Cormen, Leiserson and Rivest's Introduction to Algorithms.

    I was surprised that Sedgewick's book hasn't had much recommendation, so I'll praise it a bit here. It's very readable (but not "dumbed down"), and covers a lot of practical and commonly used algorithms and data structures. It strikes a nice balance between theory and practice. And you can read it cover-to-cover in a sensible timescale.

    Oh, and if you're really into this stuff, go read papers. There's a whole bunch of stuff beyond what's in the current books, much of it pretty accessible.

  9. For Understanding Ultimate Reality... by Anonymous Coward · · Score: 1, Interesting

    "The Moment", Kierkegaard (sometimes known as "Attack Upon Christendom")
    "The Banquet", Kierkegaard (found in "Stages on Life's Way")
    Kierkegaard's Journals & Papers
    "Thus Spake Zarathustra", Nietzsche
    The Lectures and Talks of Hakuin
    The Zen Teachings of Huang Po
    The Anecdotes of Diogenes
    Chuang Tzu
    The Gospel of Ramakrishna
    The Dhammapada
    The Diamond Sutra
    "Poison for the Heart", Kevin Solway
    "The Hidden Teaching Beyond Yoga", Paul Brunton (A good analysis of the way mind creates reality)
    "The Way of Zen", Alan Watts (A good introduction to Buddhism)

  10. Language agnosticism and using the web by Anonymous+Brave+Guy · · Score: 3, Interesting
    Since the advent of the web, though, I've come of the opinion that language agnostic books are the important ones.

    I think that was always true beyond a certain point. Most developers follow the same path: they start out with specifics (their first language, a particular I/O library) and as they learn more specifics, they start to see the generalities (procedural/OO/functional/etc. approaches, "pseudocode" for algorithms, concepts like controls/widgets and event-driven code in GUIs). There is always a need for good information on any given tool, be it a programming language, a library or whatever, but the distilled knowledge that transcends any specific tool will always be more useful for longer.

    Books on particular languages ("Learn Foo in 21 days", "Practical Programming in BarBaz") or technologies date way too quickly. The web is the best source for information like this.

    That I have to disagree with, though. The web is a great source of information for a few languages, particularly the less popular ones. It's a lousy source of information on good programming technique in many (C, C++, Java, etc), because most of what's there is written by enthusiastic but ill-informed authors, and they simply spread their poor style or incorrect knowledge.

    Most languages do not change so fast that a good book will date too quickly to be useful. In various places I've programmed, there have been plenty of books on the shelf covering C, C++, Java, Python, Perl, FORTRAN and other languages, many dating from several years ago but still just as relevant today. Sure, there come certain cut-off points; books with only the Java 1.0 library in them or dating from before the C++ standard have limited use, now. But those cut-off points are relatively rare. Reading a good book takes only a few days, and even if the benefits last for a year or two, that's still a very sound investment.

    The web can be good for keeping up with rapidly changing libraries (Java's, for example). Then again, if your library is changing so fast that books on it are obsolete before they're useful, perhaps you should slow down. This problem is usually caused by adding too much to a library too fast, and the consequent continual efforts to clean up the mess.

    --
    If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
  11. Douglas Hofstader by gwernol · · Score: 4, Interesting

    I'm surprised this hasn't been mentioned yet. Godel, Escher and Basch by Douglas Hofstader. This is profound investigation into the fundamental theories that underly computer science. After reading this book everything else is just work. If you can understand Hofstader you have all the theoretical and philosophical underpinnings you need to really understand software.

    The real joy is this book is not just meaningful it is also enormous fun. Hofstader covers some complex mathemetical ground (Turing machines, Cantorization, Godel's incompleteness theory) wrapped up in erudite and thought-provoking tales of the relationship of computer science, language, art and music.

    Truly one of the great works of our field.

    --
    Sailing over the event horizon