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.

4 of 514 comments (clear)

  1. Just a few that come to mind.... by BMazurek · · Score: 5, Informative

    Introduction to Algorithms - Cormen, Leiserson and Rivest
    - Great book, little bit of everything.

    Code Complete - Steve McConnell
    - Must read for anyone serious about programming. Read it.

    Advanced Programming in the UNIX Environment - Richard Stevens
    - Still one of the best UNIX programming books I've seen.

    Since the advent of the web, though, I've come of the opinion that language agnostic books are the important ones. 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.

    I think we're thankfully seeing more books like "Pragmatic Programmer", the "Extreme Programming" series, "Design Patterns", "Refactoring", "Death March" and other books that transcend particular languages and technologies.

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

  3. A brief list by moebius_4d · · Score: 5, Informative

    Aho, et. al. "Compilers"
    Alexandrescu, "Modern C++ Design"
    Bentley, "Programming Pearls", 2nd ed.
    Brown, et. al. "Antipatterns"
    Cooper, "About Face: The Essentials of User Interface Design"
    Fowler, "Refactoring"
    Gamma, et. al. "Design Patterns"
    Hanson, "C Interfaces and Implementations"
    Johns & Lins, "Garbage Collection"
    Josuttis, "The C++ Standard Library"
    Kernighan & Pike, "The Practice of Programming"
    Kernighan & Ritchie, "The C Programming Language" 2nd ed.
    Knuth, "The Art of Computer Programming" vol 1-3
    Meyers, "Effective C++"
    Meyers, "More Effective C++"
    Meyers, "Effective STL"
    McConnell, "Code Complete"
    McConnell, "Rapid Development"
    Plauger, "The Standard C Library"
    Stroustrup, "The C++ Programming Language"
    Stroustrup, "The Design and Evolution of C++"

    For specific topics:
    Foley, et. al. "Computer Graphics"
    Kernighan & Pike, "The Unix Programming Environment"
    Schneier, "Applied Cryptography"
    Stevens, "Unix Network Programming"
    Stevens, "Advanced Programming in the Unix Environment"
    Also the Graphics Gems and Game Programming Gems series are superb. Maybe my list makes me old-school, but I like to understand what is happening from the use case all the way down to the register allocation algorithm. Of course, I can't always do that.

    I don't mention any Java books because they get outdated so fast. The language hasn't changed much since 96, but the class library api is in constant flux.

  4. Structure and Interpretation of Computer Programs by Chuan-kai+Lin · · Score: 5, Insightful

    This is the introductory computer programming textbook used at MIT, and had been featured on slashdot here. However it is very different from what you would expect from such kind of books, with Scheme as the implementation language, it really does not teach readers how to code in a specific programming language, but how to program computers in a large variety of paradigms, what are the trade-offs in program design, how to manage complexity, and how the basics of computing works, by stretching the flexibility of the Lisp family of languages to the maximum. I first read it four years ago as a freshman, and it was a real eye opener. And it never ceased to amaze me through all these years, as I continue to discover new insights in the passages.

    You can almost find a full undergrad CS program concentrated in this book, with topics including language design and computing paradigms (object-oriented, functional, imperative, non-deterministic and logic programming, as well as lazy evaluation), operating systems (issues of concurrency), architecture (the design of a register machine), and compiler construction (the reader is asked to build a Scheme compiler in the end). Instead of being filled with buzzwords, here you are shown how the basics of everything works, in ways that you can really understand. Working through this book will teach you concepts that many people with a CS degree had never heard of.

    Hell, if I could only save one CS book when the world comes to an end, this would be the one. And the best part is: you can get the full-text online here at MIT Press. Definitely a must read.