Філософія Java (Thinking in Java в оригіналі) є гарною книгою для початківців як у програмуванні на Java (Junior), так і для більш досвідчених програмістів (Middle), які намагаються досконало вивчити об'єктноорієнтоване програмування (ООП), пов'язані з ним терміни (композицію, агрегацію, делегацію) та патерни проєктування. У підручнику, окрім розгляду плюсів та мінусів ОО мови з усіх боків, різних написаних автором ідіом та корисних практичних рішень, ви знайдете багато застосувань та згадувань наступних патернів: Singleton, Factory Method, Adapter, Decorator, Facade, Proxy, Command, State, Strategy, Template Method. Рекомендую мати при собі Design Patterns від "Gang of 4" або Head First Design Patterns заради теоретичних основ, хоча б заради зручних графіків патернів.
Треба відмітити, що російська версія є стисненою версією оригіналу, в якій є понад 1000 сторінок. Ця версія дає достатні знання, коли англійська версія зупиняється на надто примітивних речах, як на главі String, або навпаки йде занадто глибоко в оповіданні, як у главі Containers in Depth. Однак, в оригіналі є окремі згадування цікавих речей, наприклад застосування патерну Visitor, та є дещо схоже на задачі в кінці параграфів.