Thinking in Java - Eckel, Bruce (2006)
Keywords: Software Engineering -- Computer Science