Алгоритмы — это всего лишь пошаговые алгоритмы решения задач, и большинство таких задач уже были кем-то решены, протестированы и проверены. Можно, конечно, погрузиться в глубокую философию гениального Кнута, изучить многостраничные фолианты с доказательствами и обоснованиями, но хотите ли вы тратить на это свое время? Откройте великолепно иллюстрированную книгу «Грокаем алгоритмы. Иллюстрированное пособие для программистов и любопытствующих» и вы сразу поймете, что алгоритмы — это просто. А грокать алгоритмы — это веселое и увлекательное занятие.
Абсолютно непонятное и страшное название. К тому же, каждого начинающего программиста кидало в дрожь от одного слова — «алгоритмы». И эта книга тоже должна вызывать ужас. Но уже одна обложка расслабляет ваш мозг. Эти мышки — просто любовь.
Изучение алгоритмов — это важный этап в становлении программиста. Можно сколь угодно хорошо разбираться в синтаксисе, но зная только его не получится выполнять задачи с высокой степенью эффективности. Как и в любой учёбе, важную роль играет литература.
Вполне возможно, что ядреным прогерам, прожженным жизнью и кодом эта книга может не зайти. Слишком уж она яркая, наглядная, с жизненными примерами, сложные темы объясняются простыми словами, гора прикольных картинок. Я переживала, что будет тяжело, но меня очень затянуло. Я листала книгу страничку за страничкой, открывала для себя новые неизведанные темы и кайфовала.
Среди тем, рассмотренных в этой книге — бинарный поиск, понятие О-большое, сортировка выбором и быстрая сортировка, различные структуры данных (такие как массивы, связанные списки и хеш-таблицы), графы, алгоритм Дейкстры и многое другое. Меня очень пугало такое содержание, но на деле все оказалось более, чем понятно расписано даже для гуманитария. Во всех примерах используется Python2.7
Более того, в книге еще есть множество упражнений (с ответами), на которых можно закрепить пройденный материал и проверить, насколько он реально был усвоен.
ПРИМЕР ЗАДАЧИ В примере с Netflix сходство между двумя пользователями оценивалось по формуле расстояния. Но не все пользователи оценивают фильмы одинаково. Допустим, есть два пользователя, Йоги и Пинки, вкусы которых совпадают. Но Йоги ставит 5 баллов любому фильму, который ему понравился, а Пинки более разборчива и ставит «пятерки» только самым лучшим фильмам. Вроде бы вкусы одинаковые, но по метрике расстояния они не являются соседями. Как учесть различия в стратегиях выставления оценок?
Плюс ко всему, автор дает советы, где можно получить более полные и широкие знания по конкретным темам.
Обязательно рекомендую к прочтению начинающим программистам и всем интересующимся.
Читайте лучшие книги по программированию: «Грокаем алгоритмы» — одна 18 книг по разработке (и не только), которые мы советуем прочитать всем начинающим программистам.