A GreatBooksList (See BookList). Also see GreatBooksAboutSoftware [which should be merged with this page]. This is more like a list of books about C++ and OOP.
- Compilers Sethi, Aho, Ullman
- IntroductionToAlgorithms, Cormen, Leiserson, Rivest
- HowToWriteParallelPrograms?, Gelernter, Carriero
- StructureAndInterpretationOfComputerPrograms, Abelson, Sussman
- ProgrammingPearls, JonBentley
- Design Patterns Gamma et al
- MasteringRegularExpressions Friedl
- RefactoringImprovingTheDesignOfExistingCode, MartinFowler
- ParadigmsOfArtificialIntelligenceProgramming, PeterNorvig
- UNIX Network Programming, Stevens
- C++ FAQs, Marshal P. Cline and Greg A. Lomow, Addison-Wesley. 1995. ISBN 0-201-58958-3 (also the second edition of C++ FAQS is ISBN 0-201-30983-1
- Design Patterns: Elements of Reusable Object-Oriented Design (DesignPatternsBook), ErichGamma, RichardHelm, RalphJohnson and JohnVlissides, Addison-Wesley. 1995. ISBN 0-201-63361-2
- Designing Object-Oriented C++ Applications: Using the Booch Method, RobertCecilMartin, PrenticeHall. 1995. ISBN 0-132-03837-4
- Object-Oriented Software Engineering: A Use Case Driven Approach, IvarJacobson, Addison-Wesley. 1992. ISBN 0-201-54435-0
- LargeScaleCppSoftwareDesign, John S. Lakos, Addison-Wesley. 1996. ISBN 0-201-63362-0
From Steve Roth (email@example.com):
- CORBA Design Patterns - T. Mowbray/R. Malveau
From Steve Albin (firstname.lastname@example.org):
- ObjectOrientedAnalysisAndDesign with Applications, 2ed., GradyBooch, Menlo Park CA: Addison-Wesley, 1994.
- Taligent's Guide To Designing Programs, Reading MA: Addison-Wesley, 1994.
- DeclineAndFallOfTheAmericanProgrammer, EdwardYourdon, Englewood Cliffs NJ: Yourdon Press, 1992.
- The MythicalManMonth, FredBrooks, Reading, MA: Addison Wesley, 1975
- The Practical Guide to Enterprise Architecture, JamesMcGovern, et al. PrenticeHall, 2003.
- Pattern-Oriented Software Architecture, FrankBuschmann, et al. Wiley, 1996.
(and of course...)
- A PatternLanguage, ChristopherAlexander, et. al., Oxford
- TheTimelessWayOfBuilding, " "
- TheOregonExperiment, " "
- HowBuildingsLearn, StewartBrand, Penguin
- TheSelfishGene, RichardDawkins, Oxford
- Smalltalk-80 (Blue Book), Goldberg and Robson, AW
- ArtOfComputerProgramming, DonKnuth (I-III), AW
- TheArtOfTheMetaObjectProtocol, GregorKiczales, des Rivieres, Bobrow
- Principles of Compiler Construction, Aho & Ullman, AW
From Christoph Koegl (email@example.com):
From Ger Hartnett (firstname.lastname@example.org):
- DesigningAndWritingOnlineDocumentation?, WilliamHorton?
From Thomas Patzke (Thomas.Patzke@kvwl.de):
- Inside the Object Model, D.M. Papurt, SIGS Books
- Analysis Patterns, MartinFowler, AW
- Taming C++, JiriSoukup, AW
- The Architecture of Concurrent Programs, Per Brinch Hansen. This book kept me up all night back in 1977, and when I finished it, I understood operating systems.
- Fundamental Algorithms, DonKnuth
- Software Tools, BrianKernighan and PjPlauger
- Surviving Object-Oriented Projects: A Manager's Guide, Addison-Wesley Object Technology Series, AlistairCockburn. Addison-Wesley. 1997. ISBN 0-201-49834-0 I've been using Alistair's V-W metaphor for incremental development for years. It's really helped me to educate managers and developers (not to mention myself), and contributed to several large project successes.
- Beyond Programming in the Large, MaryShaw -- In 1986, I saw her present this paper at the Austin chapter of the IEEE Computer Society. This paper is a notch above the current SEI party line.
- Effective Java Programming Language Guide, JoshuaBloch ISBN 0201310058 - Clear thinking, clear writing, good advice applicable to all languages.
- The Little Schemer, DanielFriedman and MathhiasFelleison?, ISBN 0262560992 - A gentle introduction to computability and recursion theory. Food!
- The C Programming Language, BrianKernighan and DennisRitchie, ISBN 0131103628 - You have it already, but it's good to be reminded.
- Expert C Programming, PeterVanDerLinden?, ISBN 0131774298 - You probably don't have it, but you should. Why? It's very funny, and extremely technically absorbing.
- The Practice of Programming, BrianKernighan and RobertPike?, ISBN 020161586X - If I were the kind of guy to put marginal notes in my books, and I'm not, I would have written "Yes!", "Exactly!", and "Jennifer 212-547-2199" in this one.
Here's my top-eight list, alphabetical by author, from glancing at my bookcase:
- StructureAndInterpretationOfComputerPrograms, Abelson & Sussman
- Writing Efficient Programs, Bentley (what a crime this is out of print)
- Introduction to Algorithms, Cormen, Leiserson, & Rivest
- Design Patterns (DesignPatternsBook), Gamma, Helm, Johnson, & Vlissides
- The Art of Computer Programming, DonKnuth
- TexTheProgram, DonKnuth
- Effective C++, ScottMeyers
- Algorithms in XXX, Sedgewick
According to the page at Addison-Wesley (http://www.awl.com/cseng/20thcentbookwinners.shtml
In December 2000, Pearson PTR, Slashdot.org, Netscape's DevEdge Online and Doctor Dobb's Journal asked readers to nominate those books [each person chose three books] that have made the biggest impact in computer technologies to date. Books that stand dog-eared next to computers - ready to tackle the next challenge. Books that have stood the test of time, and whose value extends into the next century.
I agree that some of the books on the list, such as TAOCP and MMM, are with no doubt worth their place there, but cannot believe that InsideDistributedCom? took the first rank. IMHO, the vote seems to have been somewhat biased toward specific techniques. (For instance, can we say, without any hesitation, both the two PerlLanguage books, ProgrammingPerl and LearningPerl should take their place in the top 30 list for the 20th century computer books? What about HTML 4 for the World Wide Web?)
What do you think about it? (Has anyone participated in or, at least, heard of the vote?) -- JuneKim
I want to know about HolubOnPatterns.
- ThePsychologyOfMilitaryIncompetence? by Norman F Dixon (excellent on ritualistic, non-goal oriented bahviour)
- Programming Pearls by Jon Bentley
- Any book of essays by George Orwell for examples on how to think and write clearly (and hence program well).
See also http://www.angelikalanger.com/BookList.html