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

tweet1

Я убежденный гей не знаю сортировку пузырьком и не боюсь об этом заявлять. Эстафету подхватил всякий сброд. Каждый считает долгом похвастаться тем, что не знает нужный класс, метод или синтаксис:

tweet2

Попадаются лиды из Гугла:

tweet3

Полная подборка перлов по ссылке.

На Хабрахабре вышла скандальная статья “Программисты не могут написать алгоритмы без помощи”. Автор, начитавшись твитов, аппелирует к тому, что спрашивать алгоритмы на собеседованиях не нужно.

Парни, к сожалению, это все буллшыт. Может, кто-то начал надеяться на карьеру без трудозатрат, но я должен разочаровать. Твиты выше – позерство. Алгоритмы нужны. Без фундаментальных знаний не сделать карьеру. Работа останется тяжелой. И вообще чудес не бывает.

Теперь более подробно.

Не всегда в нашем мире бывает так, что если что-то написано, то именно это имеется в виду. В случае с DHH, создателем Рельс, очевидна вся постановка этого наглого заявления. Предположим, он действительно забыл алгорим пузырька. И решил написать твит. Для этого нужно открыть сайт или мобильное приложение, ввести текст, несколько раз опечаться, исправить и, наконец, спустить опус в сеть.

За это время можно было бы перейти с первой ссылки в Википедию и прочитать алгоритм. Он там очень ясно описан, даже гифка есть с наглядной анимацией. Но вместо этого DHH пишет твит.

Люди поступают так по простой причине. В какой-то момент им хочется показать себя со слабой стороны. Вызывать умиление и сочувствие. Это называется “быть не в порядке”. Феномен очень подробно описан у Джима Кемпа, прочтите обязательно.

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

Лид из Гугла пишет, что не знает какой-то алгоритм. Ирония в том, что он лид именно по той причине, что знает алгоритмы лучше других! Вы думаете, Гугл держит его за красивые глаза? Обычных кодеров в самом Гугле, я догадываюсь, хватает сверх нормы. В гору идут те, кто знает, как грамотно составить алгортим, чтобы показывать рекламу точнее, продавать трафика больше, управлять автопилотом безопасней.

Может, этот лид и забыл сортировку пузырьком, зато у него в голове каскадная нейронная сеть из текущего проекта и полное понимание того, в каком состоянии она пребывает в каждый момент времени.

Незнаение сортировки не поднимет вас до уровня DHH. За незнание нужного класса или метода не воьзмут в Гугл. Заявлять подобное может лишь тот, что добился успеха именно знанием методов и алгоритмов. Тем, кто пошел на поводу: вот устройтесь сначала в Гугл, а потом жмите лайки этим твитам.

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

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

Начитавшись подобных заявлений, джуниоры начнут открыто отказываться от фундаментальных знаний. Станут дерзить на собеседованиях – зачем вы это спрашиваете, разве в вашем проекте это есть?

Уважаемый DHH должен был подумать, что он – ключевая фигура в мире Руби и Рельс. И прежде чем делать столь громкие заявление, предположить, как это скажется на сообществе.

Забавно, что мысль “алгоритмы не нужны” прозвучала из уст именно Глав-Рубиста. Создателя продукта для программистов с минимальными требованиями к квалификации. Именно благодаря рельсам в индустрию ворвались люди, которые до этого овообще не имели опыта с ай-ти. Которые возомнили себя рок-звездами Кремниевой долины, раз твой стартапчик завелся после серии копипаст со Стека. Рельсы стали ПХП второго порядка.

Почему-то ни Рич Хикки, ни Гвидо ван Россум, ни Линус Торвальдс, ни Джо Армстронг подобного не заявляли. И я не нашел их высказываний в этом апофеозе бреда.

Кто здесь пишет на Руби? Ребят, вам не стыдно, что ваше первое лицо заявляет подобное?

Не знать чего-то не стыдно. Стыдно хвастаться незнанием и превращать его в фарс.

Наконец, чем же все-таки полезны алгоритмы. Хотя бы тем, что приводят в порядок мышление, учат абстрактно мыслить. Почему быстрая сортировка действительно быстрая? Почему поиск в словаре быстрее поиска в списке? Куда добавлять элемент – в голову или хвост? Каждый ответ, добытый самостоятельно из книг, повышает вашу квалификацию как специалиста. И косвенно влияет на вашу зарплату.

Я знал человека, который на собеседованиях спрашивал алгоритмы, а его коллеги – нет. Он теперь архитектор, один их нескольких на огромную фирму. Картинка с Киселевым: “совпадение? не думаю!”

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

Так что не надейтесь на расслабон. Работать и работать.