Время прочтения: 3 мин.

Адитья Бхаргава – программист, работающий в одном из популярнейших интернет-сервисов ETSY, который позволяет огромному количеству производителей авторских работ продавать свои товары по всему миру.

Любой начинающий программист, или человек хоть как-то связанный с обработкой любых данных, рано или поздно приходит к тому, что задачи не решаются простыми методами в «лоб», и начинает искать информацию по алгоритмам, которая не всегда доступна, а иной раз может быть настолько запутанна, что может напрочь отбить желание разбираться в такой важной теме, как алгоритмизация.

С точки зрения автора книги, любой алгоритм уже кем-то решен, опробован где-либо, и получены достоверные результаты. Но зачем тратить огромное количество времени на разбор строгих доказательств и обоснований того или иного алгоритма, когда все можно объяснить простыми словами, а также подкрепить ненавязчивой практикой.

В книге приводится множество примеров. Основная их цель – максимальное упрощение всех концепций алгоритмизации. Конечно же каждая глава не содержит доскональное описание каждого существующего алгоритма, для этого есть множество других источников, где любой интересующийся найдет нужную информацию. Все описанные алгоритмы имеют ценность, многие из них автор использует в повседневной работе. Так же они дают отличную основу для дальнейшего изучения этой темы.

Рассмотрим банальный пример, с которым сталкивается не только программист, но и любой человек, который что-либо ищет в справочнике или книге. В повседневной жизни мы не задумываемся, каким образом реализован поиск, но так или иначе мы используем алгоритм бинарного поиска, который в разы ускоряет выборку нужных данных из отсортированного списка.

Как автор объясняет это простыми словами: «Предположим, вы ищете фамилию человека в телефонной книге (какая древняя технология!). Она начинается с буквы «К». Конечно, можно начать с самого начала и перелистывать страницы, пока вы не доберетесь до буквы «К». Но скорее всего для ускорения поиска лучше раскрыть книгу на середине: ведь буква «К» должна находиться где-то ближе к середине телефонной книги. Или предположим, что вы ищете слово в словаре, и оно начинается с буквы «О». И снова лучше начать с середины».

Также в последних главах рассмотрены простейшие алгоритмы машинного обучения моделей. В связи с огромной популяризацией обучаемых моделей, которые внедряются всюду, базовые знания, которые можно подчерпнуть, отлично помогут начинающему программисту построить систему рекомендаций, механизм оптического распознавания текста, систему прогнозирования курсов валюты — словом, всего, что требует прогнозирования значений.

Адитья Бхаргава учит нас тому, что чаще всего любая сложная информация, будь то алгоритмизация, математическая статистика или теория вероятностей, может быть разложена на простые составляющие и подана в таком виде, что даже человек, который никогда профессионально не занимался подобным, легко мог изучить и применить все полученные знания.

Кому будет полезна эта книга? Любом человеку, так или иначе начинающему или уже работающему в области программирования или обработки больших данных. Как минимум она даст вам базовые представления о логике и алгоритмизации, как максимум станет для вас драйвером в дальнейшем изучении более сложных и нужных тем.