by “Uncle Bob” Martin
I am sure half of this book is just common sense, but every time I read it, I find myself nodding in agreement. Yes, some of the examples may go too far, and you may not agree with every point. But every chapter is something you should be thinking about, if you want to write readable, maintainable robust code.
by Joshua Bloch
You may understand all the Java syntax in the world, but this book is a practical guide on how to write good Java. It gives concrete advice to refer to when making design decisions, rather than relying on a vague feeling of what would be best. Every project involving a team would benefit from a set of standards so that all programmers follow the same approach and know what to expect from others code. This is that book.