Найти тему
Обо всём понемногу

Senior Developer

Начитался я как-то тут давеча хабра, публикаций про Senior’ов, о том, как им (нам) трудно трудоустраиваться на работу. И прям задело за живое, я уж думал я один такой «образованный опытный дурак» на свете.

Сеньор Помидор из всем известного мультика
Сеньор Помидор из всем известного мультика

Нет не про сеньоров-помидоров, а про сеньоров программистов, то бишь, в переводе на российский – ведущих инженеров-программистов, или, ещё точнее ведущих разработчиков ПО.

Да-да, я сам ведущий инженер-программист, с более чем с 20-и летним опытом в разработке ПО, со своими достижениями, умозаключениями, выводами и огромнейшим опытом.

-2

Нет! Я не считаю, что программист обязан уметь программировать на всём что угодно и учить технологии каждый день, а также заодно починять утюги и сломанные стиральные машины всем соседям (ну тыжпрограммист). Это всеобщее заблуждение, кстати заодно продвигаемое и на хабре и в целом по отрасли и за её пределами. Это и есть гибель для ИТ индустрии, но сейчас не совсем об этом, хотя это, наверное, и есть корень причины.

Типичный тыжпрограммист.
Типичный тыжпрограммист.

Итак, вернёмся к тому что я хотел сказать, да! Я тоже проходил собеседования и та же фигня – я «никому не подхожу» - «я хуже джуна»! Ну многие могут сказать, что я сам криворук, ничего не умею, технологий (да ещё современных! Самых новомодных!) не знаю. Но из всех тезисов верен может быть только последний и то на треть! Да, я, КАК И ВСЕ программисты, «НЕ ЗНАЮ» «новых» технологий! Откуда столько кавычек? Да не новые они, их суть знает каждый, а изучить новую реинкарнацию старых технологий успели немногие. «Новых» технологий полно, к их безудержному изучению я давно остыл, и «учу», только то, что надо под текущий проект, а посему не вижу смысла разбираться со всеми технологиями подряд, да и лишнего времени столько просто нет, его вообще нет.

Итак, оказывается я «ничего не знаю»! Но как такое могло бы быть все 20 лет? Может я «попрыгунчик» (что кстати в норме в сфере ИТ), но нет – на разных местах работы я работал и и по 2 и по 3 и по 4 года. Проекты чаще всего завершал, и чаще всего удачно. Где мог влиять на проект (а это не всегда было в моих силах) – максимально оздаравливал его, делал максимально устойчивым к сбоям, путём! Да-да, путём минимизации участия человека (в т.ч. программиста) в его работе. А в чём иначе суть автоматизации?? Автоматика – это то что, работает полностью без участия человека и помогает ему (человеку). Да-да, автоматизацию и прогресс «делают ленивые». Именно лень (а на деле экономия), как известно, двигатель прогресса.

Но, снова отступлю, «современные» технологии позволяют только увеличить участие человека (программиста) в проекте. Т.е. цель у них диаметрально противоположная.

Так что не так с нашими работодателями? Если честно, меня сразу удивило то, что собеседования Senior’ов проводят джуны (Junior)! Да-да, так и есть. Джуны, едва закончив универы, начинают задавать сеньорам, с опытом 15-20 лет и более вопросы о теории, вопросы о том, как сортировать массивы пузырьком (хоть я и помню, как), какой-то примитив, ну а что ещё они могут спросить? Ещё и страшно обижаются что мы, сеньоры, либо вообще «не знаем» теории, но при этом ежедневно применяем на практике всё то, о чём они где-то прочитали, либо знаем теорию, но забыли её, и повторить им какие-то шаблонные фразы из книг не считаем необходимым и возможным. Джуны нас НЕ ПОНИМАЮТ, т.к. разговор идёт на разных языках, людьми разного возраста/поколения, людьми чей опыт отличается в разы!

В итоге джуны, не понимая ничего из образа мышления сеньоров, принимают «отрицательное решение» по кандидатуре. Выражаясь по-современному: Да как так-то???

Я понимаю тезис о том, что ты можешь быть сеньором (разбираться) в какой-то одной технологии, но при этом быть джуном в другой. Но он не совсем верен. Он верен только до определённого этапа развития «стандартного» программиста, который ещё не устал изучать из месяца в месяц кучу «новых» технологий. Почему в кавычках? Да, вы правильно догадались – ни одна из технологий не является действительно новой и «прорывной», все эти технологии либо хорошо забытое старое, либо логичное (а часто и не логичное) продолжение развития «старой» (текущей) технологии. Т.е. эта та же технология, но просто усовершенствованная.

Когда ты устаёшь изучать все эти технологии, то как Козьма Прутков, начинаешь «зрить в корень». Изучая ту или иную «технологию», ты видишь, что ничего нового в ней по сути нет, что это все те же яйца, но только в профиль, что технология может и иная, но похожа вон на ту, а в её корне (в ядре) всё те же базовые принципы и всё тот же результат, который ты уже достигал 100 раз и фактически новый фреймворк просто делает всё то, что делали вы сами / ты сам, создавая свои библиотеки.

Есть и технологии деградации, которые продвигаются корпорациями, но позволяют лишь увеличить, усложнить код, сделать его спагетти-кодом, затащить на уровень кода всё то, чего там и рядом быть не должно. Вместо минимизации участия человека происходит максимизация его участия. Проекты больше не могут существовать без армии «программистов» на них.

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

Программисты больше ничего нового не создают. Ну как? Нет создают, конечно, но просто какой-то одноразовый проект, который год-два покрутиться, и потом его выкинут, притом снова в угоду модным «новым технологиям». В общем получается, что программисты теперь – просто фабрика по производству одноразовых изделий. Ни ядер, ни фреймворков, ни собственных библиотек «никто» уже не создаёт. Отрасль деградировала?

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

Материться было бы не на кого, если бы данные фреймворки и библиотеки программисты писали сами, то и допиливали бы они их тоже сами. Но…

Опять-таки методологии, их полно! Есть и те, которые существенно облегчают жизнь программиста – к примеру генераторы!!! Метагенераторы, ага!

Но блин, сколько я собеседовался, никто знать не знает, что такое метапрограммирование. Сапожники без сапог! Зато в проекты тащат «новые модные современные» (НО НЕ ЛОГИЧНЫЕ) «технологии», которые, НУ БЛИН! Позволяют затащить никому не нужные запросы в код!

И теперь код можно засирать запросами! Запросами к базе! К памяти! Чёрт знает к чему!

А сколько «программистов», программирующих на языках запросов??? Да их полно, и они считают, что занимаются программированием, хотя минимум половину их труда можно на раз заменить мощным генератором запросов (такие есть в составе ORM), и метаструктурой данных.

А куда делись ORM-ки? А куда делись их запросы? А их нет! Пишите теперь, всё что раньше генерировалось автоматически, прям в код! Ну не дурдом ли? И так у КАЖДОГО ПОТЕНЦИАЛЬНОГО РАБОТОДАТЛЕЯ! Это ровно тоже самое что человеку, привыкшему копать огромные ямы экскаватором, дать лопату и заставить копать яму под ракетный бункер. И начхать что капать её придётся годами, без реального результата, главное, видимо, процесс, а не результат!

И ведь такое сплошь и рядом!

Так вот о чём я? Требования к сеньорам у работодателей даже близко не подходят для сеньоров, собеседования на эти должности проводят ДЖУНЫ! Вы давно слышали, чтоб на должность ведущего программиста (ну или другого инженера) набор вёл не тим-лид (начальник группы/отдела), а тестировщик, специалист «тех поддержки», или на худой конец стажёр инженер 3й категории, который только что окончил универ, и знает некую новую современную технологию притом в терминах, т.к. захреначил на ней несколько лабораторок, после прочтения кучи книг и статей (прилежный был ученик)???

А в ИТ такое ВЕЗДЕ! Т.к. отрасль у нас сложная и малопонятная «обывателям», вечно всё приходится переводить… Вы давно видели, чтобы на должность мастера участка собеседования производил дворник? А чтоб решение о приёме директора торгового филиала проводил кассир?

А в ИТ всё именно так! И каждый джун тебе ещё и в лицо прям скажет, что раз ты не знаешь/не помнишь ответа о том, как «сортировать пузырьком», не можешь ЕМУ досконально объяснить, что такое делегат, хоть и применяешь их пачками, и со слезами на глазах, или если ты неправильно решил задачку, для учеников старших классов (вы хоть знаете, когда я окончил школу вообще??) – значит ты бездарь, неуч и бестолковый! А всё что написано в резюме – фейк, а весь твой 20-и летный опыт яйца, выеденного не стоит! Ну или той самой задачки для 7го класса школы.

Уважаемые «работодатели» у меня к вам вопрос: а до каких пор вы будете судить от ИТ не по профессионалам своего дела (как это делается везде в мире и во всех других отраслях), а по «моде», когда на должности сеньоров (ведущих программистов) собеседования начнут проводить реально тим-лиды (руководители групп/отделов), а не джуны (младшие «инженеры»), полгода как со студенческой скамьи??

Ну и самое смешное, вам не надоело вкладывать бабло, притом мегабабло, в процесс, который никогда не принесёт результата, в процесс ради процесса?