Алгоритмы
В интернете новый мем: оказывается, алгоритмы не нужны. Все началось с того, что некий DHH, создатель Рельс, выступил с каминг-аутом:
Я убежденный гей не знаю сортировку пузырьком и не боюсь об этом
заявлять. Эстафету подхватил всякий сброд. Каждый считает долгом похвастаться
тем, что не знает нужный класс, метод или синтаксис:
Попадаются лиды из Гугла:
Полная подборка перлов по ссылке.
На Хабрахабре вышла скандальная статья “Программисты не могут написать алгоритмы без помощи”. Автор, начитавшись твитов, аппелирует к тому, что спрашивать алгоритмы на собеседованиях не нужно.
Парни, к сожалению, это все буллшыт. Может, кто-то начал надеяться на карьеру без трудозатрат, но я должен разочаровать. Твиты выше – позерство. Алгоритмы нужны. Без фундаментальных знаний не сделать карьеру. Работа останется тяжелой. И вообще чудес не бывает.
Теперь более подробно.
Не всегда в нашем мире бывает так, что если что-то написано, то именно это имеется в виду. В случае с DHH, создателем Рельс, очевидна вся постановка этого наглого заявления. Предположим, он действительно забыл алгорим пузырька. И решил написать твит. Для этого нужно открыть сайт или мобильное приложение, ввести текст, несколько раз опечаться, исправить и, наконец, спустить опус в сеть.
За это время можно было бы перейти с первой ссылки в Википедию и прочитать алгоритм. Он там очень ясно описан, даже гифка есть с наглядной анимацией. Но вместо этого DHH пишет твит.
Люди поступают так по простой причине. В какой-то момент им хочется показать себя со слабой стороны. Вызывать умиление и сочувствие. Это называется “быть не в порядке”. Феномен очень подробно описан у Джима Кемпа, прочтите обязательно.
Идея в том, что человек, признавшийся в собстенном несовершенсве, вероятней всего снискает расположение окружающих, потому что никто не любит непогрешимых и идеальных. Этим можно и злоупотреблять – пожаловаться, вместо того чтобы лишний раз напрячься. Или привлечь внимание.
Лид из Гугла пишет, что не знает какой-то алгоритм. Ирония в том, что он лид именно по той причине, что знает алгоритмы лучше других! Вы думаете, Гугл держит его за красивые глаза? Обычных кодеров в самом Гугле, я догадываюсь, хватает сверх нормы. В гору идут те, кто знает, как грамотно составить алгортим, чтобы показывать рекламу точнее, продавать трафика больше, управлять автопилотом безопасней.
Может, этот лид и забыл сортировку пузырьком, зато у него в голове каскадная нейронная сеть из текущего проекта и полное понимание того, в каком состоянии она пребывает в каждый момент времени.
Незнаение сортировки не поднимет вас до уровня DHH. За незнание нужного класса или метода не воьзмут в Гугл. Заявлять подобное может лишь тот, что добился успеха именно знанием методов и алгоритмов. Тем, кто пошел на поводу: вот устройтесь сначала в Гугл, а потом жмите лайки этим твитам.
Коллеги, я боюсь, что подобные заявления очень навредят индустрии в самое ближайшее время. Если регулярно вбрасывать идеи, что алгоритмы и банальная память не нужны (все можно нагуглить), то в какой-то момент мы банально столкнемся с дефицитом сознательных людей, способных хоть как-то шевелить мозгами.
Уже сегодня бывает, что разработчики пасуют перед задачами, где нужно проявить смекалку. Все, что не входит в стандартную поставку фреймфорка, становится рокет-сайнс. Или программист впадает в транс, выдумывая немыслимые решения вместо простых и очевидных, давно описанных в академических книгах.
Начитавшись подобных заявлений, джуниоры начнут открыто отказываться от фундаментальных знаний. Станут дерзить на собеседованиях – зачем вы это спрашиваете, разве в вашем проекте это есть?
Уважаемый DHH должен был подумать, что он – ключевая фигура в мире Руби и Рельс. И прежде чем делать столь громкие заявление, предположить, как это скажется на сообществе.
Забавно, что мысль “алгоритмы не нужны” прозвучала из уст именно Глав-Рубиста. Создателя продукта для программистов с минимальными требованиями к квалификации. Именно благодаря рельсам в индустрию ворвались люди, которые до этого овообще не имели опыта с ай-ти. Которые возомнили себя рок-звездами Кремниевой долины, раз твой стартапчик завелся после серии копипаст со Стека. Рельсы стали ПХП второго порядка.
Почему-то ни Рич Хикки, ни Гвидо ван Россум, ни Линус Торвальдс, ни Джо Армстронг подобного не заявляли. И я не нашел их высказываний в этом апофеозе бреда.
Кто здесь пишет на Руби? Ребят, вам не стыдно, что ваше первое лицо заявляет подобное?
Не знать чего-то не стыдно. Стыдно хвастаться незнанием и превращать его в фарс.
Наконец, чем же все-таки полезны алгоритмы. Хотя бы тем, что приводят в порядок мышление, учат абстрактно мыслить. Почему быстрая сортировка действительно быстрая? Почему поиск в словаре быстрее поиска в списке? Куда добавлять элемент – в голову или хвост? Каждый ответ, добытый самостоятельно из книг, повышает вашу квалификацию как специалиста. И косвенно влияет на вашу зарплату.
Я знал человека, который на собеседованиях спрашивал алгоритмы, а его коллеги – нет. Он теперь архитектор, один их нескольких на огромную фирму. Картинка с Киселевым: “совпадение? не думаю!”
Я всегда спрашиваю на собеседованиях основы алгоритмов. Это не решающий фактор, главное, чтобы человек знал ту область, на которую претендует. Нужно джейсоны в базу перекладывать – кто лучше знает, того и возьмем. Но при прочих равных из двух кандидатов я выберу того, что ответит про О-большое, хеш-таблицы и остальное, описанное выше.
Так что не надейтесь на расслабон. Работать и работать.
Нашли ошибку? Выделите мышкой и нажмите Ctrl/⌘+Enter
tankist, 5th Mar 2017, link
Во всяких там Гуглах алгоритмы, может и не нужны, а вот на американской границе - очень даже.
26 февраля африканский инженер-программист Целестин Омин (Celestine Omin) по работе отправился из Нигерии в Нью-Йорк, однако после прибытия в аэропорт столкнулся с неожиданной проблемой. Сотрудники таможенной и пограничной службы США не поверили, что он указал свою настоящую профессию, и предложили ему решить несколько заданий в качестве доказательства своей компетенции.
Таможенная и пограничная служба США составила для Омина два вопроса: «Расскажите, как проверить, является ли двоичное дерево поиска сбалансированным» и «Что такое абстрактный класс, и зачем он нужен?».
PS: Термин "Глав-Рубист" является отсылкой к фильму "Беспредел" или так показалось? :)
Ivan Grishaev, 5th Mar 2017, link , parent
Новость слышал. Фильм не смотрел.
Artem, 6th Mar 2017, link
Знатно DHH набросил
Cyril, 7th Mar 2017, link
Дэвид хотел обратить внимание на то что знание алгоритмов это не самый релевантный критерий оценки разработчиков.
Дальше пошёл какой-то странный флешмоб. Ну ладно.
Пост похож на попытку выговориться, потому что повод обсуждения изложен искажённо, а аргументы слабые.