Помню, как на первой своей работе наблюдал за тем, как мой наставник разбирается с проблемой на Java, которую мне никак не удавалось одолеть. Строки кода и терминальные команды так и вылетали у него из-под пальцев, я будто смотрел, как Let me solo her гасит Малению в Elden Ring (а сам я типа слился и отсиживаюсь в роли зрителя). Это произвело на меня сильное впечатление. Мне захотелось тоже стать таким скоростным и умелым.
С тех пор прошло больше девяти лет, и я стал смотреть на реальность более ясным взглядом: карьерное продвижение не сводится к тому, чтобы всё лучше управляться с командной строкой. Речь идет о том, чтобы принимать целые серии новых сложных вызовов. Конечно, стандартные баги вы действительно станете устранять быстрее, но основную часть времени будете заниматься вовсе не этим. Можно сказать так: с развитием способностей возрастает и сложность проблем, которые вам предстоит решать.
Здесь нужна оговорка: я вовсе не хочу никого расхолаживать. Скорее предупреждаю, чего следует ждать. Программисты-сеньоры – это не какие-то мифические создания, которые выдают совершенный код, не приходя в сознание.
Вот несколько ошибочных представлений, которые сложились у меня относительно сеньоров в самом начале пути.
1) Сеньоры работают только с самыми продвинутыми технологиями и забирают себе все крутые проекты
Многие джуниоры спят и видят, как будут целыми днями играться с новыми нашумевшими инструментами. В реальности сеньорам часто приходится забираться по колено в legacy-код. Речь о системах, которые отработали в компании дольше, чем многие ваши коллеги, в которых годами копились следы бизнес-логики, пользовательские данные и всякие хитрости, благодаря которым всё не отрубилось совсем.
Ваша обязанность – стать археологом в мире кода. Придется копаться в этих цифровых артефактах, выяснять, что им опять не нравится, и находить для них пути уживаться с современными требованиями. И не забываем про золотое правило: ничего не сломать. Звучит захватывающе, да?
Это не всегда весело, но такова повседневная жизнь сеньора. Основная масса ПО – это не проекты, создаваемые с нуля, а лоскутное одеяло из legacy-систем, остро нуждающееся в рефакторинге (который, вероятно, провисит в бэклоге до смерти вселенной). Так что вам предстоит много работы по поддержке того кода, который есть.
2) Сеньоры могут переписать хоть всю кодовую базу, если захотят
Джуниором я часто смотрел на существующие системы и думал: «Да я бы в разы лучше сделал!» Я готов был выпаливать предложения по улучшению, как из заряженной пушки. В глазах новичка любая проблема выглядит бочкой для затычки. В этом энтузиазме нет ничего плохого – благодаря ему наша индустрия и развивается. К тому же это отличный способ наделать массу ошибок, которые научат тому, что затычка нужна не везде. И вообще, возможно, стоит расширить набор инструментов.
Но у сеньоров есть один секрет: для масштабных изменений требуется больше, чем просто хороший код. Нужно освоить «язык стейкхоледров» — то есть научиться излагать свои идеи так, чтобы они находили отклик у управленцев. Нужно ознакомиться с бюджетом и планом распределения ресурсов. Чем крупнее проект, тем больше придется преодолеть препятствий, но оно того стоит.
Нарабатывая опыт, начинаешь понимать: значимые изменения происходят не от одного чистого кода. Для них нужно выстраивать схемы, которые удовлетворяют трем условиям:
- техническое совершенство
- соответствие бизнес-целям
- соразмерность бюджету
Основная мысль здесь в том, что делать крутые вещи – это занимательно, но делать крутые вещи, которые пойдут на пользу компании – это именно то, что надо.
3) Сеньоры днями напролет пишут код
Представляете, если бы сеньоры день-деньской не вылезали из VS Code и набивали код, как будто их тело – сосуд, а обеспечивать соответствие продукта рынку – забота компании. Мечты-мечты.
Что в реальности? Написание кода – только один кусочек из пиццы, которую представляет собой работа в IT. Разумеется, код сеньоры все же пишут, но это занятие перемежается множеством других обязанностей. Вспомните об определении сроков, сессиях по проектированию архитектуры, инспекциях кода, собеседованиях, совещаниях. Далее, есть еще дебаггинг, обязанности наставника во избежание катастроф, порожденных «на моем компе все работало», перевод технического жаргона на человеческий язык для стейкхолдеров. И не забываем про тушение пожаров, когда в проде что-нибудь выкинет коленце.
Сеньоры больше напоминают технических дирижеров, выстраивающих симфонию из пушей в Git, пингов в Slack, и задач в Jira.
Так что в следующий раз, когда увидите сеньора, пристально глядящего в свой экран, знайте: может быть, он действительно пишет код, а может быть, раздумывает, как объяснить руководству, что нельзя просто «добавить ИИ», чтобы всё заработало.
4) Сеньоры никогда не ошибаются
Если вы думаете, что сеньоры никогда не становятся источником багов, то вы неправы. Программисты-сеньоры – не сверхъестественные существа с умением писать безукоризненный код. Они люди, а люди ошибаются. Иногда по-крупному.
В чем же разница? В то, что они уже всё повидали, от ошибок на единицу, которые роняют всю систему, до случайного выполнения SQL-запросов в продакшн-окружении вместо среды для тестирования. У них нет иммунитета к заскокам, опечаткам, периодическим вспышкам синдрома «на моем компе всё работало». Соль в том, что сеньоры оперативнее отлавливают и устраняют подобные сбои. У них развивается шестое чувство – особый нюх на потенциальные проблемы, а также складывается арсенал приемов для устранения багов. Они успешнее превращают «вот блин» моменты в «этот опыт нас многому научил».
Помните: суть не в том, чтобы никогда ничего не запарывать. Суть в том, насколько быстро вы сможете разрешить возникшую проблему и всё исправить.
6) Сеньоры принимают все решения по технической стороне
Мне казалось, что в технических вопросах сеньоры – что-то вроде всемогущих магов. Но идея, что по щелчку пальцев сениора вся команда немедленно переезжает с React на Vue, в корне неверна.
В действительности процесс принятия технических решений больше напоминает хаотичную игру в League of Legends в мультиплеере. Пусть сеньоры там за грандмастеров, но в соигроках у них продакт-менеджеры, другие программисты, управленцы и тот самый человек, который убежден, что ИИ – ключ к решению всех проблем. Они вынуждены пробираться по лабиринтам из ограничений по бюджету, запретов, налагаемых legacy-системами, и аргументов в духе «но мы же всегда так делали».
Само собой, мнение программиста-сеньора имеет определенный вес, но его слово – не закон. Бывает, что другие члены команды одерживают победу большинством голосов. Истина в том, что сениоры скорее напоминают дипломатов по техническим вопросам, ищущих компромисс между идеальными решениями и практическими реалиями и параллельно пытающихся удержать команду от изобретения велосипеда.
6) Сеньоры – ходячие энциклопедии
Думаете, у сеньоров есть ответ на любой вопрос? Это не только ошибочно, это попросту опасно для вашего дальнейшего роста.
Технологии развиваются со скоростью света – новые алгоритмы, фреймворки, модные словечки возникают с такой скоростью, с какой не появлялись даже фреймворки JavaScript. Сказать, что все их освоил – всё равно что утверждать, будто дочитал интернет до конца.
Сила сеньора не в том, что его голова напичкана фактами, а в другом:
- Он комфортно себя чувствует в зоне «понятия не имею, что происходит»
- Он задает правильные вопросы, чтобы прийти к пониманию
- Он умеет формулировать запросы для Google или ChatGPT
Совершенно нормально говорить: «Я не знаю» или «Давайте разбираться». Мир технологий – он как Вселенная: постоянно расширяется и по большей части остается загадкой. Ваше дело – решать проблемы, а не быть ходячим Stack Overflow. Думайте о себе как об опытном путешественнике среди технологических джунглей. Вы не назовете каждое растение и животное, но у вас достаточно умений, чтобы ориентироваться, выживать и, возможно, даже открыть что-то новое по пути.
7) Сеньоры не нуждаются в помощи
Считаете сеньоров одинокими волками, которых незачем подстраховывать? Зря.
Даже у самых опытных программистов случаются минуты, когда в упор непонятно, что происходит в коде. Умение определить, когда пора обращаться за помощью – одна из сверхспособностей сеньора. Важно не иметь ответы на все вопросы, а знать, как их отыскать.
Выходы могут быть разными: обратиться к коллективному разуму команды, покопаться в сообщениях Slack, посоветоваться с ChatGPT, погрузиться в заброшенные тикеты GitHub или же прибегнуть к мудрости того коллеги, который работает в компании с начала времен – сеньоры мастерски подбирают решения, оперируя всеми доступными ресурсами. Они не боятся признать, что зашли в тупик, потому что знают: совместная работа часто дает лучшие результаты.
В конце концов, в мире технологий слова «Даже не знаю, давайте вместе подумаем» — зачастую самое умное, что вообще можно сказать.
8) Чтобы стать сеньором, нужны только годы опыта
Думаете, для достижения уровня сеньора нужно просто набивать годы работы, как коммиты в Git? Не тут-то было.
Ну да, сколько вы провели в окопах – это тоже важно, но на первый план выходит не время, которое вы затратили на написание кода, а то, чему вы научились в процессе. Схема напоминает выход на новый уровень в RPG-игре: требуется составить набор определенных навыков, а не просто гриндить XP.
Речь идет о следующих навыках:
- Развитая способность к решению проблем
- Умение объяснить сложные технические материи непричастным людям так, чтобы у них мозг не поплавился
- Архитектурная премудрость
- Умение распределять время
- Наставническая жилка, позволяющая превращать новичков в хороших разработчиков
Можно хоть десять лет писать Hello World на разных языках – сеньором от этого не станешь. Тут важно делать что-то значимое и решать проблемы, которые действительно важны.
Мне часто доводилось встречать подобных «сеньоров» за выслугу лет, которые отработали десятилетие или больше. Однако, если посмотреть на их реальные достижения, многие разработчики среднего уровня, а то и джуниоры, оставили бы их позади.
Поэтому хотя годы опыта – это неплохо, самих по себе их недостаточно. Реальный смысл сеньорства в том, что постоянно идти вверх должен уровень, а не только возраст. Если знания и навыки впали в стагнацию, время будет работать против вас.
9) На уровне сеньора обучение подходит к концу
Спойлер: объемы работы не уменьшаются, но мутируют, так что способностям к обучению приходится подстраиваться. Сеньор вынужден иметь дело не только с собственными задачами. Баг не дает продолжать работу двум другим программистам? Да, это теперь ваша проблема. Зарплата, может, и стала посолиднее, но вместе с ней увеличился и список обязанностей. Мысли о том, что сеньором можно будет расслабиться и передохнуть – это что-то из области фантазий.
Конечно, вы теперь в большей степени вольны выбирать, над чем работать, но эта свобода дается на определенных условиях. Вы превращаетесь в циркового артиста, вращающего тарелки, и тарелки эти – ваша работа и личная жизнь.
Что бы я посоветовал? Прокачивайте навыки управления временем с тем же жаром, с каким оптимизируете запрос к базе данных. Освойте делегирование на профессиональном уровне. И не забывайте: ваше здоровье и отношения не уступают в важности никакому развертыванию в проде.
Стать сеньором – не значит работать меньше. Это значит разумнее подходить к работе и уметь вовремя отключаться.
10) Сеньоры – самые ценные люди в компании
Наша индустрия летит вперед со скоростью пули. Никто не может рассчитывать на гарантию занятности. Положим, вы единственный, кто умеет управляться с этой древней legacy-системой. А если под нож пойдет весь проект? Внезапно ваши «незаменимые» навыки сравняются по полезности с дискетой. Позиция сеньора дает некоторые преимущества, но неуязвимость не входит в их число.
Компании оказываются под давлением по самым разным причинам – американские горки в экономике, развороты на 180 градусов в стратегии, слияния, на фоне которых «Игра престолов» кажется умиротворяющим зрелищем. Когда руководство начинает твердить о «повышении рентабельности» даже программисты на самых высоких позициях могут оказаться под ударом.
IT – одна из редких областей, где поспевать за трендами не просто похвально, а необходимо для выживания. Осваивать каждый новый с иголочки фреймворк с Hacker News не стоит. Но иметь общее представление о том, что происходит? Это лайфхак, который прослужит вам всю карьеру.
Привыкните к мысли, что учиться придется постоянно. Это лучшая защита от любых внезапностей индустрии. То, что вы единственный знаете COBOL, может, и дает ощущение собственной уникальности, но рекрутеры вряд ли будут вас осаждать в связи с этим.
Помните: в IT способность адаптироваться неизменно дает больше, чем самая высокая должность. Не теряйте гибкости, не теряйте любознательности и не забывайте обновлять резюме – так, на всякий случай.
Комментарии (6)
Aquinary
14.08.2024 12:24+2Похоже на рерайт (с вкраплениям, возможно, копирайта) вот этой статьи: https://habr.com/ru/companies/productivity_inside/articles/835940/
Ниже будет список найденных соответствий, где слева - номер, указанный в этой статье, а справа - содержимое другой статьи, подозрительно похожее по смыслу.
0) Очень похожее вступление
1) "Работа с самыми современными технологиями"
2) "Внесение больших изменений"
3) "Больше никаких скучных задач"
6) "У них есть все ответы"
9) "Время расслабиться"
10) "Стать незаменимым"Не знаю, как относиться к подобному и как относится к этому хабр. Но когда в первом абзаце пишут "В годы джуниорства у меня сложились...", то ожидаешь рассказ о своём личном опыте.
UPD: заметил плашку перевода и там и там.
nronnie
14.08.2024 12:24+1Сеньоры работают только с самыми продвинутыми технологиями и забирают себе все крутые проекты
Серьезно? Я когда два десятка лет назад был junior мне каждый день какие-то новые задачи поручали. Ну а сейчас я уже десяток лет, давно будучи senior, занимаюсь только тем что разгребаю кучи не буду озвучивать чего, которые кто-либо после себя оставил.
kalombo
14.08.2024 12:24Прочитайте предыдущее предложение, до предолжения, которое вы процитировали. А лучше статью полностью :)
pashkovka
Можно быть и неноминальным сеньором!