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