All the books that I think are related to this are listed under the antbook tag at
LibraryThing. Feel free to add your own!
- (Brandt 1995) How Buildings Learn: What Happens After They're Built, Stewart Brandt. Buildings learn by being flexible, or they get torn down and replaced.
- (Bray 200x) The annotated XML Specification, Tim Bray.
- (Burke 2006) Enterprise JavaBeans 3.0 (5th Edition), Bill Burke and Richard Monson-Haefel. This book has three limitations. It skips the problem of building and testing, it focuses on entity beans and persistence, not the broader problem of designing enterprise Java apps with Java EE. But it does have good Entity bean coverage.
- (Doar 2005) Practical Development Environments, Matthew Doar, 2005.
- (Eckel 2000) Thinking in Java, Bruce Eckel.
- (Fowler 1999) Refactoring, Martin Fowler, 1999. Seminal.
- (Goetz 2006) Java Concurrency in Practice, Goetz B., Addison-Wesley, 2006
- (Harold 2004) XML in a Nutshell, Elliotte Rusty Harold, 2004. A one stop guide and reference to all that is XML.
- (Harold 2003) Effective XML, Elliotte Rusty Harold, 2003. If you go near XSD, take this book with you.
- (Humphrey 2005) Why big software projects fail Humphrey W., 2005. An interesting read. The only way to ship something big is through stability of specification; only then can you plan. But the OSS model goes the other way: uncontrolled chaos, which is guaranteed to ship something, just not necessarily what you want.
- (Massol 2003) JUnit in Action, Vincent Massol and Ted Husted, 2003.
- (Mazzola 2004) Comprehensive Mathematics for Computer Scientists, Guerino Mazzola. Go to the online course with Java applets to learn all about hard CS.
- (McConnell 1996) Rapid Development, Steve McConnell. The most readable of all the software development books. Its core weakness is that readers are sometimes left with the optimistic illusion that they can manage software projects after reading it.
- (Tremper 2001) Staying Alive in Avalanche Terrain. Software projects, Alpine mountaineering: it's all about risk management.