На мой взгляд - это продвинутая версия “Грокаем аглоритмы”. Или даже не так, эти книги пересекаются по части материалов, но отличаются реализацией. В “Грокаем” показаны задачи и примеры их решений при помощи алгоритмов, а в этой книге - фактически один и тот же базовый код переиспользуется с разными алгоритмами и под разные задачи. И это выглядит впечатляюще, по крайней мере для меня. Да, тут код получился зубодробительный и без запуска кода и временами пошагового изучения его разобраться будет сложно. Но, репозиторий легко находится, код запускается без проблем и в итоге материал впечатляет.

КДПВ

Наверное, надо предупредить, что это не классическая книга по computer science. В том смысле, что тут нет ничего о нотации “Большое О”, сортировках или структурах данных. В этой книге рассматривается уже следующий уровень. По этому, если человек хочет изучить computer science, то надо брать другую книгу, эта - разочарует, она должна быть второй.

В конце книги приведено интервью с Брайаном Гетцем, одним из архитекторов Java в Oracle и автором книги “Java Concurency на практике”, помимо всего прочего. Не знаю почему это интервью разместили в самом конце книги, так как оно прекрасно раскрывает идею автора. Как бы там ни было, хотел процитировать один из вопросов, которые были заданы Брайану и часть его ответа:

  • Вопрос: - Почему важно знать методы решения проблем из области программирования?
  • Ответ: - Стоять на плечах гигантов! Существует множество задач, которые уже были решены кем-то другим, часто с большими усилиями и затратами и с большим количеством фальстартов. Если вы не знаете, как распознать такую задачу, у вас возникнет соблазн заново изобрести ее решение - и, вероятно, вы так и не соберетесь это делать.

Другими словами, надо уметь определять задачи и находить уже существующие решения, переиспользовать код. Это очень важно и именно это демонстрирует книга. Не знаю, что еще тут можно добавить?

Как уже говорил, код в книге лучше разбирать на примерах. Например, я пошагово изучал его работу, так было проще понять. Код взял из репозиторий автора на GitHub. Это я все к тому, что какие-то навыки у читающего уже должны быть, это книга явно не для новичков. Но это единственный минус, если сложность можно считать минусом. В остальном она прекрасна. И примеры кода, и сами задачи, которые код решает, понравилось всё.

Что касается качества издания, то оно повторяет все остальные книги издательства Питер. Тут для читателя не будет ничего нового: - мягкая обложка, но достаточно “крепкая”, хорошая белая бумага, хорошая полиграфия, хороший перевод. Заметил только один момент, в интервью язык Go почему-то перевели, как игру Go, но это мелочь, по-моему, все сразу становится понятно из контекста. В остальном всё замечательно!


Автор(ы):

  • David Kopec

Год издания: 2022
Количество страниц: 285
Оценка: 5/5

Издатель: Питер
Ссылка на страницу книги на сайте издательства: https://www.piter.com/collection/yazyki-programmirovaniya/product/klassicheskie-zadachi-computer-science-na-yazyke-java

Оригинальное название: Classic Computer Science Problems in Java
Год издания оригинала: 2021