Алгоритмы для разработчика — Блог программиста

Алгоритмы для разработчика

29.04.2019алгоритмы

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

Но нужны ли они для самой работы? — Ведь есть куча готовых библиотек, а остальное можно найти на stackoverflow… Мой любимый пример из жизни: одному моему коллеге поручили реализовать поиск кратчайших путей на карте в нашем городе. Он, конечно же, нашел что-то типа алгоритма Дейкстры и начал реализовывать, потом оптимизировать. Сдался он через 2 недели. Не знал он что такое асимптотическая сложность алгоритма, потому что в ВУЗе учился не на программиста и никаких обучающих курсов тоже не проходил.

Дак вот, завтра начинается очень хороший учебный курс по алгоритмам на OTUS. Рекомендую. Записаться на курс могут не все, вам сначала надо пройти вступительное тестирование (по ссылке), заниматься с вами будут только если у вас уже есть база.

Алгоритмы для разработчика — Блог программиста

Кстати, история с поиском путей кончилась прикручиванием OpenStreetMap, т.е. тоже готового решения. Однако, соль в том, что по соответствующим запросам в поисковике вы получите скорее всего несколько страниц алгоритмов с трудоемкостью O(V*E), но а оценить его работу на большом графе человек без специальных знаний не может.

Кое-чему можно научиться бесплатно. Есть множество книг и статей по алгоритмам, однако, сильно сомневаюсь, что хотя бы 5% программистов самостоятельно смогли осилить хоть одну книгу по программированию (читать их обычно ооочень сложно). Что касается статей, то их часто пишут абсолютно некомпетентные люди (причем, на хабре тоже):

Статья на хабре по алгоритмам: https://habrahabr.ru/post/310038/. Автор статьи, …, был глубоко удивлен глупостями, которые писали с умным видом на хабре про оценку алгоритмов еще в августе (две статьи — https://habrahabr.ru/post/309394/ и https://habrahabr.ru/post/308818/). Автор указывает на то, что (как оказалось) не понимает значительная часть хабрасообщества (а значит и программистов, вообще). …

(Источник)

Если вам повезло учиться в ВУЗе по соответствующему профилю — очень рекомендую не упустить возможность и задавать побольше вопросов преподавателю. Опять же, если вам повезло с преподавателем. Что касается курса OTUS — его содержание значительно шире и глубже чем подавляющее большинство аналогичных курсов в ВУЗах. В частности, вы узнаете как работает сборщик мусора в популярных языках программирования. В рамках курса каждый учащийся выполняется проект под руководством ментора. Этим курс серьезно отличается от бесплатных.

Некоторые материалы курса были неплохо оформлены в виде статей на хабрахабре:

Реализация словаря в Python и Универсальное и идеальное хеширование.

Курс ведут 3 компетентных преподавателя, в частности, из лаборатории Касперского, вам дадут:

— Понимание принципов работы разнообразных алгоритмов, структур данных;

— Умение использовать готовые алгоритмы и структуры данных и создавать свои под поставленную задачу;

— Владение техникой вычисления сложности алгоритмов;

— Освоение продвинутых структур данных: хэш-таблиц, графов, деревьев поиска и многих других;

— Умение решать алгебраические задачи и задачи динамического программирования.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *