Книга по Java, но это неважно. Автор говорит, что многие не понимают, что такое ООП, и пишут в процедурном стиле. В книге приводятся примеры плохого кода с пояснениями, почему он плохой и как его исправить. Книга построена по блогу, от страниц которого у многих Java-разработчиков бомбит. Если не хотите покупать, то читайте блог. После прочтения книги у меня немного изменился взгляд на код, который я пишу, что я считаю хорошим результатом (хотя ничего нового или сакрального я в ней не обнаружил). Кстати, уже есть Volume 2, но с ним я ещё не знаком.