На Хабре появилась просто омерзительная по содержанию статья Суровая правда о разработчиках и разработке (https://habr.com/ru/articles/790754/), где автор обвиняет всех программистов, проходящих через их систему собеседований в некомпетентности и утверждает, что "из ста кандидатов мы не взяли никого". Давайте почитаем эту гнусную писанину от очередного полудурка с набором проблем с башкой:
В настоящий момент наша компания ищет синьора дотнетчика на бэк, с зарплатой до 350 тысяч на руки + премии. Я лично просмотрел и прособеседовал по разным этапам больше сотни человек с возрастом от 25 до 48 лет (Это к вопросу не берут людей под 50). Чем мы столкнулись по другую сторону баррикад?
Возраст не значит ничего. Тупили люди и в 25, уверенно писали код и в 48.
Опыт не значит ничего. Люди с 15 годами «опыта» и ВМК МГУ не смогли распарсить строчку с арифметической формулой «Это же в универе было», «Я привык решать бизнес‑задачи!»
Вилка зарплаты имеет значение только нижним значением. При желательной зп до 250 в основном были маргинальные кандидаты, однако 15 лет опыта и желаемая ЗП в 350 не отсекает кандидатов, которые ничего не знают.
Почему из ста кандидатов мы не взяли никого? У нас десяток скринингов? Нет, у нас ровно 2 интервью, разговорное про опыт и** техническое — кодинг сессия**. Мы спрашиваем сложные вещи? Ну если написать SQL где для каждой даты выбирается значение с максимальной версией это сложно, то что тогда просто?** Если распарсить (не посчитать) выражение вида 1.2x(5*y-2)/z это сложно, то что вообще может сделать кандидат?** За спринт поле в json добавить?
Далее воняющая спермой задротина делает выводы:
На рынке огромное количество некомпетентных специалистов, не важно джуны, мидлы или синьоры. Айти был лакомым кусочком где долго деньги давали просто так. Давать перестали, а временной лаг присутствует.
В то же время, на рынке есть огромная потребность в настоящих специалистах, который рынок удовлетворить не может. Создается ложное впечатление, что «после 40 не берут» и «джунов не берут», то есть десятки тысяч некомпетентных спецов пытаются занять тысячи вакансий, которые они не тянут.
Опять давно известное нам блеянье про дефицит этих мифических "настоящих специалистов". Потом автору накидывают за воротник и он пишет постскриптум:
P.S. После чтения комментариев, где люди сомневаются что с нами что-то не так, хочу просто описать наш процесс найма....
Что мы встречали на этих этапах:
Человек послушал задание и просто отключился и пропал
Человек послушал задание и сказал -** "Я вам не джун, чтобы код писать, я привык решать бизнес-задачи"** (хотя мы рассказываем на первой встрече в чем состоит вторая)
Пара человек не смог написать простейшую реализацию двухсвязанного списка, один просто не знал что это такое
Один человек после интервью сказал рекрутеру - что токсичное интервью, что его как какого-то джуна отправили код писать
Человек пять формально задание сделало, но код состоял из такой лапши что я бы не хотел это потом рефакторить
Человека три (несмотря на то, что в вакансии написано про SQL и в резюме написано "уверенный SQL" не смогли написать простейший запрос и даже словами объяснить, как это сделать)
Люди сомневаются, что с вами что-то не так? Да с вами всё не так - это вам демонстрируют как кандидаты на вашу вакансию, так и комментаторы на Хабре. Давайте послушаем этого клоуна дальше:
то есть вы на серьезных щах заявляете, что вычленить из формулы
*1.2x+(2.1y-z)0.12 числа, переменные операторы и константы вы после 20 лет в айти не можете?
Оторванный от жизни задрот искренне не понимает, почему никогда не писавший парсеры программист, почему-то не в состоянии за 15 минут лайв-кодинга распарсить выражение вида
1.2*x+(2.1*y-z)*0.12
С какого перепоя он должен это уметь делать, да ещё и в стресс-режиме онлайн-кодинга? Тема парсеров, лексического анализа - чрезвычайно узконаправленная и нетривиальная тема (о ней пишутся целые книги), которая в современных проектах с высокоуровневыми языками программирования просто не нужна в рабочих моментах, таких задач просто не встречается. Об этом ему и говорили кандидаты: "я привык решать бизнес-задачи". Подавляющее большинство программистов оперируют высокоуровневыми инструментами и, действительно, решают бизнес-задачи. Если человек никогда не занимался синтаксическим анализом - это не значит, что он глуп. Это значит, что он просто никогда не занимался такой деятельностью и это - более чем нормально с учётом текущего развития индустрии. Если возникнет такая задача - человек разберётся. Но не в режиме 15-и минутного онлайн-кодинга.
Далее автор с позиции своего высокомерия почти всех обвиняет в некомпетентности:
эти синьоры в 70% случаев ничего не умеют и лучше бы шли на завод. Процентов 15 из оставшихся умеют хорошо говорить, но вот код пишут с трудом.
Теперь давайте посмотрим на мнения коллег с Хабра:
Подозреваю что коллеге надо к психологу. Поясню. Я когда-то, было дело, забежал к знакомым, чемоданами торгуют. Ну пока то да сё перетираем мы за жизнь, краем глаза наблюдаю, парнишка, явно программистского типажа, чемодан мучается выбирает. Ну все и всё перепроверил, мозг консультанту вынес. Прям на Марс собирается, не иначе. Вот мне потом эти знакомы рассказали они сходу таких распознают. Типичный обыватель просто берёт первое что ему более-менее подходит. А эти перфекционисты сами не знают чего хотят. А потом оба чемодана полетят в обычную Турцию и оба справятся со своим предназначением. Вот подумалось, а ведь эта же публика и людей нанимает также. Вместо того чтобы взять первого который будет просто таски закрывать, они Линуса Торвальдса зачем-то ищут.
Чот не понял, с какого это перепоя парсинг [арифметических] выражений стал типовой задачей для встречного поперечного сеньйора? Либо ты варишься во всех этих парсерах, грамматиках и лексемах, либо правильно говорят «Это же в универе было».
Короче, на поверку опять оказывается "в моём представлении сеньйористый сеньйор это тот кто ответит на все вопросы моей викторины".
Если соревноваться своим "я", то я вот написал и вывел в прод сервис который парсит сайты, вытягивая нужный контент. Много всякой невалидной фигни повидал. Думаю что в парсинге я что-то понимаю. Но ваша задачка у меня вызвала фрустрацию, и я бы на неё не ответил. Вам не просто так намекают на некорректность вопроса.
Собеседующие, которые предлагают лайвкодинг, вообще должны гореть в аду, как по мне. Особенно если он не в привычной IDE, а как многие альтернативно одаренные любят - на доске или листочке.
Потому что лайвкодинг не покажет ничего, кроме того, умеет ли кандидат работать в сильном стрессе. И если это единственное важное качество на данном рабочем месте - бежать оттуда надо не оглядываясь
Комментарий редакции
А знаете что самое обидное? Что вот этому высокомерному дерьму, который вещает со страниц Хабра, никто не затыкает рот, ибо сам Хабр как ресурс устроен так, что изживает любое инакомыслие, а людям, которые имеют точку зрения, отличную от агрессивно-послушного меньшинства, что постоянно торчат на Хабре, попросту со временем затыкают рот через readonly. Вот хороший пример коллеги: https://habr.com/ru/users/LeetCode_Monkey/comments/
Таким образом мы видим картину мира, где на обложках индустрии сидят такие вот высокомерные выскочки со своими токсичными статьями, распространяют мифологию про дефицит кадров, а под этой ширмой скрывается негативный опыт 100 реальных человек, которых не взяли на работу в виду того, что они не соответствуют хотелкам отдельно-взятого персонажа, который, по сути, никто и звать его никак - очередной клоун, дорвавшийся до власти проводить собеседования, в виду своей токсичной натуры просто самоутверждается за счёт других кандидатов, обличая всех в профнепригодности.


Тут кто-то назвал "прекрасным" ожидание от хабрананимателя от соискателя на 350 навыка распарсить формулу типа 1.2x(5y-2)/z или 1.2x (2.1*y-z)*0.12 на чиста, константы, операторы и переменные и потом удалил сообщение (сама статья эта: https://habr.com/ru/articles/790754/)
Но вообще вроде трезво звучит статья в целом.
Делается за 5 минут. На самом деле делается быстрее, но я просто в ворохе языков забываю конкретные функции и методы у конкретного ЯП и его фреймворка/пакета, поэтому пришлось погуглить доки.
import re
str_input = "1.2x (2.1y-z)*0.12"
str_input = "1.2x(5y-2)/z"
print("числа (они же константы как я понимаю): " str(re.findall('[\d.] ', str_input)))
print("операторы: " str(re.findall('[/ -] ', str_input)))
print("переменные: " str(re.findall('[^*/ -0-9.()] ', str_input)))
Хз че сложного.
Единственное - регулярки лучше не тащить в прод просто так, всегда бывают неожиданные/хитрые кейсы, которые надо хитро обрабатывать делая всевозможные автотесты и т.п. Соответственно - код выше это просто заплатка под конкретные 2 случая, а так там надо продумать все-возможные кейсы, реакцию на спец-символы и т.п. и вообще в задачу вникнуть сущностно, а не в вакууме (этим и плохи тесты на собесах)
P.S.: почему-то символ "плюс" не печатается, магия...