Хабрахабр

Фулстеки — это вечные мидлы. Не идите по этому пути, если не хотите страдать

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

Идея фикс — знать все

NET с разными областями применения (asp.net, wpf, xamarin), js/ts (react/redux, node) и убедил себя, что теперь-то могу действительно всё. Я изучил C# и . Можно смело начинать высмеивать этих сорокалетних сеньоров одной технологии, которые потратили полжизни на то, что я могу постигнуть за неделю. Я абстрагировался, мыслю в нескольких парадигмах программирования одновременно и обладаю практическими знаниями во всех аспектах профессиональной разработки ПО. Можно утверждать что погружение в предметную область — для болванов, которые хотят всю жизнь проработать на одном месте, тогда как я — абстрагирован от неё.

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

Пробелы в знаниях неочевидны и незаметны

Потому что в тайпскрипте» так не делают. Однажды я зафигачил дизайн на абстрактных классах в typeScript, и меня высмеяли. Обычно это помогало, но в этот раз остался осадок. Я, конечно же, сделал вид, что просто мои коллеги — бездарные идиоты.

Ты не знаешь огромное количество критичных специфичных штук, но не видишь этого, как раз потому, что не знаешь. Репутация хорошего разраба скрывает твои пробелы как от коллег, так и от тебя самого.

Фигак! Затем началась черная полоса. Бам! Я не знаю, что там за типы индексов в SQL. Упс! Забыл, когда вызывается статический конструктор в шарпах. Пытаюсь мутировать стейт в реакт компоненте. Я не могу правильно реализовать IDisposable без гугла.

Что технологии все-таки разные, а детали — важны. Я заподозрил, что моя абстрагированность не работает. Опыт в . В каждой технологической экосистеме свои уникальные лучшие практики. Мой самоприсвоенный скилл «Я научился быстро учиться» оказался неправдой. NET не помешает при работе с jvm, но и не заменит его. И мне потребовалось слишком много времени, чтобы это понять. Я учился не быстрее, чем все остальные.

Я не стал автоматически сеньором во всем. Мой скилл оказался как обоз — лебедь, рак и щука пытались тащить его в разные стороны. И тогда я пришел к выводу, что выбирать путь фулстека — ошибка. Я просто стал мультимидлом, посмешищем для сорокалетних сеньоров одной технологии.

И тут начинается самобичевание

Только не такие, как я, а синьоры во всём, ребята, у которых за плечами по пять лет опыта в каждой из фулстечных технологий. Проблема в том, что бизнесу нужны фулстеки.

Они берут слабого мидла в трех крупных технологиях, и называют его senior full-stack developer. Но таких не бывает, и бизнес идёт на самообман. Любой обычный разраб, который шарит в одной технологии — шарит в ней лучше. Этот титул превращает человека в самозванца и становится неиссякаемым источником комплекса неполноценности. Иначе уже через неделю умру от самобичевания. И сейчас я хорошо понимаю, что не готов на равных правах работать в команде с людьми, которые шарят намного лучше меня.

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

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

Фулстеки грызут себя, что не знают технологии глубоко. Но на самых глубоких уровнях рефлексии в нас все равно остается самобичевание. Однояпные спецы — что не знают широко.

Учить вширь vs учить вглубь

Я заметил такой эффект — когда начинаешь изучать новую технологию, старая становиться неинтересной. Здесь старый конфликт: ты можешь изучать в глубь, а можешь вширь, но не то и другое одновременно. Но в IT если ты не обновляешь свои знания о технологии в течение года, ты уже не актуален.

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

Мы-то, и особенно бизнес, хотим и так, и так. Главная проблема этого конфликта в том, что мы не знаем, как лучше. Что бы все шарили во всём, и шарили достаточно глубоко.

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

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

Ты станешь вечным мидлом.

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

Теги
Показать больше

Похожие статьи

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»
Закрыть