Pull to refresh

Суровая правда о разработчиках и разработке. Part 2. Три года спустя

Reading time9 min
Views7.9K

Часть первая тут:

Суровая правда о разработчиках и разработке / Хабр (habr.com)

Почти три года назад, в эпистолярном порыве, написал я значит дискуссионную статью посвященному текущему состоянию рынка IT. Для нашей отрасли три года — это достаточно большой срок, поэтому самое время подвести промежуточный итог с моей не самой высокой колокольни. Побудила меня к этому статья «Вас просто стало слишком много / Хабр (habr.com)» и комменты в ней, которые почти полностью противоречат моему текущему опыту как собеседующего и собеседующегося. Хочется начать как раз с разбора тезисов статьи и комментов, сравнить их со своим опытом и проверить свои прогнозы из 2021 года.

Начнем вот тут. Скажите, что вы думаете о человеке, который пишет так?

У меня тоже есть весьма фееричный опыт столкновения с машиной отбора. Мне однажды попался поехавший чел, который спрашивал: «Чем Git Flow отличается от GitLab Flow и GitHub Flow? Что делает команда VACUUM в PostgreSQL? Что такое ULID?» У меня в голове в тот момент были вот такие мысли: «Он вообще чёрт возьми О ЧЁМ? А это всё точно существует?»

Да, я понимаю, что совсем не обязательно синьору (А судя по гонору и токсичности автор претендует на синьора) знать отличия Git Flow и GitLab Flow. Можно не знать точные отличия ULID от UUID и зачем нужен вакуум. Но синьору не знать вообще, что это существует — это как раз таки симптомы деградации отрасли. Я допускаю конечно, что вопросы по VACUUM или ULID были заданы человеку, в резюме которого не было написан опыт работы с PostgreSQL (что тоже не свидетельствуют о здоровье отрасли), но скорее всего, где то в CV что‑то про этот PostgreSQL было. Просто теперь умение заселектить десяток строчек из БД через ORM у нас в 2024 это «опыт работы».

Все эти LeetCode‑задачи на собесах, странные вопросы о том, как внутри на уровне кода устроены индексы PostgreSQL, задача сложить 2 числа без использования оператора сложения или вообще любая ерунда, которую интервьюэр вчера прочитал в очередной статье от индуса на Medium... изначально не были придуманы, чтобы иметь какое‑то отношение к реальной работе, протестировать навыки или выявить каких‑то там гениев. Эти вещи служат всего лишь очередным шагом сужения воронки кандидатов.

Возможно, в каком‑нибудь Гугле это так. Хотя конечно неплохо бы синьору и понимать, как работают индексы и чем этот вопрос отличается от сложения чисел. Потому что индексы вам понадобятся в любых системах с миллионами записей, а сложение — нет. Другое дело, что компании сильно поменьше Гугла обычно не разбрасываются людьми, потому что к ним, почему‑то, не стоит очередь (об этом чуть позже). Мы например, собеседуем сотни людей не отказывая в тех собесе только лишь потому, что человек не знает про вакуумирование.

Что же предлагает автор?

задротить LeetCode и прочий стафф, который у вас будут спрашивать, врать в резюме, по возможности использовать для прохождения собесов ChatGPT и помощь живого человека со стороны, избегать при этом компаний с background‑чеком. МБ вообще посадить вместо себя спеца по прохождению LC и пр. и изменить его лицо под ваше с помощью DeepFake, аналогично для голоса (наверное, скоро у нас реально появятся специальные люди, которым будут платить, чтобы они вместо разрабов проходили собесы).

А может просто хоть что‑то знать специалисту уровня синьора?

Наш опыт

В настоящий момент наша компания ищет синьора дотнетчика на бэк, с зарплатой до 350 тысяч на руки + премии. Я лично просмотрел и прособеседовал по разным этапам больше сотни человек с возрастом от 25 до 48 лет (Это к вопросу не берут людей под 50). Чем мы столкнулись по другую сторону баррикад?

  1. Возраст не значит ничего. Тупили люди и в 25, уверенно писали код и в 48.

  2. Опыт не значит ничего. Люди с 15 годами «опыта» и ВМК МГУ не смогли распарсить строчку с арифметической формулой «Это же в универе было», «Я привык решать бизнес‑задачи!»

  3. Вилка зарплаты имеет значение только нижним значением. При желательной зп до 250 в основном были маргинальные кандидаты, однако 15 лет опыта и желаемая ЗП в 350 не отсекает кандидатов, которые ничего не знают.

Почему из ста кандидатов мы не взяли никого? У нас десяток скринингов? Нет, у нас ровно 2 интервью, разговорное про опыт и техническое — кодинг сессия. Мы спрашиваем сложные вещи? Ну если написать SQL где для каждой даты выбирается значение с максимальной версией это сложно, то что тогда просто? Если распарсить (не посчитать) выражение вида 1.2*x*(5*y-2)/z это сложно, то что вообще может сделать кандидат? За спринт поле в json добавить?

Что изменилось с 2021?

В чем состоят разительные отличия 2021 и 2024? Удаленка прочно вошла в нашу жизнь. Теперь любой кандидат требует половину времени минимум работать из дома. Да, тот самый кандидат, который не может написать код без команды из 20 человек, не знает про вакуум и индексы теперь требует 2–3 дня из дома.

Теперь наш среднестатистический любитель ретроспектив, чистой архитектуры и DDD хочет проводить не половину (как раньше) а три четверти своего рабочего времени на различных созвонах, потому что самостоятельно работать он не умеет, а архитектора с аналитиком под боком нет! Больше созвонов богу созвонов!

Еще потихоньку стали сбываться мои предсказания из 2021

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

Например не так давно Microsoft сократил 1900 мест в игровом подразделении, eBay — 1000, SAP — 8000 и это только за январь 2024, в то время как в 2023 по оценкам экспертов сократили 100 тысяч мест в ИТ. Прекрасно видно, что IT перестал драйвить рынок. Facebook отчитывается о сокращении доходов от рекламы, Twitter получил на 2 млрд меньше на рекламе в 2023. Стриминговые сервисы перестали расти (а где‑то начали падать).
Безусловно, отчасти это связано с большим ростом доходов во времена ковида, но все менее и менее ясно, какой вклад в настоящее время вносят разработчики.

Да и Россия, в силу различных причин начинает подтягиваться за тредом. У нас никто конечно статистики увольнений не даст, но в последний месяц только у нас было 7 кандидатов из структур Сбера с 5+ летним опытом, что вряд ли свидетельствует о «нехватке специалистов». Другое дело, что мой опыт собеседований говорит о том, что для меня остается загадкой а чем вообще занимались данные специалисты на предыдущих местах работы.

Выводы (мои)

Поскольку до гуглов мне нынче далековато, то могу лишь обозначить свои выводы:

  • Рынок постепенно сокращается отчасти отскок после короны, отчасти потому, что инвестиции в стартапы становятся токсичными, отчасти потому, что непонятно чем вообще люди занимаются.

  • На рынке огромное количество некомпетентных специалистов, не важно джуны, мидлы или синьоры. Айти был лакомым кусочком где долго деньги давали просто так. Давать перестали, а временной лаг присутствует.

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

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

Прогнозы и что делать кандидатам?

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

Наибольшая угроза — для околоразработчиков. Все эти скрам мастера, аджайл коачи и прочие дата саентисты могут уже сейчас думать, кем работать дальше. (И да, психология в ближайшее время тоже потеряет популярность). Джуны без опыта и высокооплачиваемые разработчики без умения показать полезность и вклад тоже в группе риска.

Если вы сейчас ищите работу — остановитесь на не модных вариантах. Например, инхаус разработка в каких‑то производственных отраслях, как то нефтехимия, энергетика. На крайний случай — поддержка легаси в банках. Если вы единственный знаете, как работают вот эти хранимки на проде — скорее всего, вас не уволят.

Если вы хотите «войти в айти» сейчас — вы должны действительно знать предметную область. Не вся эта фигня типа чистой архитектуры и чистого кода, а умение пользоваться языком и стандартными пакетами. Не падать в обморок от легаси из 2010. Знать базовые алгоритмы и структуры. Понимать как работают БД. Такие люди нужны всегда и везде.

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


P.S. После чтения комментариев, где люди сомневаются что с нами что-то не так, хочу просто описать наш процесс найма.

Процедура состоит из двух этапов.

Первый - это общение, где мы рассказываем о фирме, о нашем стэке и подходах к разработке и задаем вопросы про опыт. По нашему опыту тут отсеивается 2/3 кандидатов по следующим причинам:

  • Работа в 3-2 или 4-1 в офисе, и хотя мне рекрутер говорил про это, но я думал что мне дадут 2-3 или полную удаленку. Тут процентов 20 кандидатов из этих двух третей

  • Процентов 50 из этой группы нормально не писали код в ближайшее пару лет или не хотят писать ("Я тут придумал поднял проекта, код писали другие", я больше по чистой архитектуре, у нас на обсуждение задач тратится больше времени чем на код, я скорее тимлид и н хочу писать код больше 50% времени)

  • Процентов 20 это люди, которые вообще не могут вменяемо рассказать про опыт работы и отвечают - я кодил. А что кодили? Ну что говорили, то и кодил. Окей, что уж.

  • Оставшиеся 10 процентов из тех, кто не проходит на кодинг сессию - это люди которые не писали на современном дотнете совсем, застрявши на WPF и не делавших даже пет проекты на новом стэке.

Тридцать процентов приглашаются на кодинг сессию, из которых треть просто теряется по пути.

Кодинг сессия проводится отдельно, в удобное для кандидата время, в его удобной IDE, так что усталость - не тот вариант.

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

Предлагаются задачи на простые алгоритмы, максимум два цикла на десять строчек и пара функций на несколько строчек. И небольшой SQL где требуется IN со значениями из GROUP BY.

Что позволяет выявить такой тест?

  1. Умение пользоваться любимой IDE (как человек использует шорткаты и рефакторинг). Это совместно с другими факторами позволяет понять насколько часто человек пишет код

  2. Умение понять задачу, вычленить из нее подзадачи

  3. Умение писать нормальный код - без копи-паста кусков, с вынесением отдельных методов, с нормальными названиями переменных/методов. Тут же идет и знание английского языка.

  4. Охват знаний - например человек говорит, что строку можно распарсить регулярками. Не обязательно именно так делать, но то, что человек знает про регулярки или про ExpressionTree уже говорит о многом

  5. Насколько человек вообще знает SQL, как оказалось, что 90% кандидатов ВООБЩЕ не способны написать что-то.

  6. Насколько вообще человек умеет общаться с людьми

Конечно не совсем корректный пример, но лично мне на выполнение этой задачи в том виде, где я бы сам сказал "вы нам подходите" потребуется минут 15. Что мы встречали на этих этапах:

  • Человек послушал задание и просто отключился и пропал

  • Человек послушал задание и сказал - "Я вам не джун, чтобы код писать, я привык решать бизнес-задачи" (хотя мы рассказываем на первой встрече в чем состоит вторая)

  • Пара человек не смог написать простейшую реализацию двухсвязанного списка, один просто не знал что это такое

  • Один человек после интервью сказал рекрутеру - что токсичное интервью, что его как какого-то джуна отправили код писать

  • Человек пять формально задание сделало, но код состоял из такой лапши что я бы не хотел это потом рефакторить

  • Человека три (несмотря на то, что в вакансии написано про SQL и в резюме написано "уверенный SQL" не смогли написать простейший запрос и даже словами объяснить, как это сделать)

  • Пару человек мы хотели взять но они просто выбрали другое место

  • Пара человек понравилось мне, но CTO не захотел

Соответственно, очень бы хотелось услышать в комментариях, в чем мы не правы и действительно ли пара циклов и простейший запрос это супер требования на 350к в 2024 году?

Only registered users can participate in poll. Log in, please.
Что будет с рынком IT в ближайшие 3 года?
31.16% Количество вакансий будет расти62
31.16% Количество вакансий будет падать62
37.69% Количество вакансий не изменится75
199 users voted. 38 users abstained.
Only registered users can participate in poll. Log in, please.
Что будет с зарплатами в IT в ближайшие 3 года?
39.22% Зарплаты будут расти80
34.31% Зарплаты не будут меняться70
26.47% Зарплаты будут снижаться54
204 users voted. 30 users abstained.
Only registered users can participate in poll. Log in, please.
Ваш опыт/специализация:
37.79% Senior Engineer/Developer/Tester82
29.95% Middle Engineer/Developer/Tester65
17.05% Junior Engineer/Developer/Tester37
4.61% Architect10
3.69% Analyst8
0% PM0
6.91% Othet15
217 users voted. 28 users abstained.
Only registered users can participate in poll. Log in, please.
Разбить строку на токены и написать простейший запрос — это too much на синьора по верхней вилке?
12.15% Кек, я деревья балансировал и в графах кратчайшие маршруты искал13
54.21% Нормальные требования58
5.61% Требования завышенные, но я бы сделал6
18.69% Требования не соответствуют вакансии, автор самовлюбленный токсик20
9.35% Синьор вообще не должен проходить кодинг сессию10
107 users voted. 17 users abstained.
Tags:
Hubs:
Total votes 19: ↑13 and ↓6+7
Comments136

Articles