В основном эта статья посвящена моим мыслям о том, чего я ожидал, будучи джуном и как я воспринимал сеньор-разработчиков. Честно говоря, я довольно сильно их романтизировал — сеньор-разработчики в моих глазах были людьми, способными решить любые задачи, постоянно говорящими мне, что нужно делать и знавшими ответы на все вопросы. Легко пасть жертвой фантазии о том, что поднявшись в должности, вы каким-то образом получите волшебную мантию знаний, авторитетности и свободы.
Вспоминаю время, когда я ещё плохо владел терминалом. У меня возникли какие-то проблемы с дистрибутивом Linux. Что-то не монтировалось правильно или появлялись ошибки разрешений для файлов, в которых я не мог разобраться самостоятельно, поэтому попросил помощи у одного из сеньор-разработчиков. Величественность и грация, с которой он обращался с Vim и его командами, вдохновляла, это запомнилось мне навсегда. А ещё я захотел стать таким же, как он: быстрым, эффективным, всезнающим гуру. Реальность оказалась гораздо более приземлённой, но и в каком-то смысле приносящей бóльшую отдачу.
Истина в том, что развитие карьеры в меньшей степени связано с изучением терминала, и в большей — с освоением нового множества обязанностей с кучей нюансов. Да, вы научитесь эффективно пользоваться терминалом. В общем случае вы лучше сможете решать простые задачи, но вам придётся иметь дело не с такими задачами. Если вкратце, то с ростом ваших навыков растёт сложность проблем.
Прежде чем мы приступим, должен сказать, что эта статья стремится не демотивировать вас, а подготовить к будущей реальности: сеньор-разработчики — это не всезнающие 10x-кодеры, способные творить магию. Давайте же разберём некоторые из заблуждений джунов о сеньор-разработчиках.
У них есть все ответы
❌ Ожидание: я смогу за считанные минуты устранять любые баги и понимать, в чём проблема.
✅ Реальность: чем больше я учусь, тем больше осознаю, насколько мало я знаю. Давай разбираться вместе.
Джуны верят, что достигнув уровня сеньора, ты будешь знать ответы на все вопросы, но это заблуждение; это неправильное понимание того, что же действительно означает расти и преуспевать в технологической отрасли. Ежедневно появляется так много новых алгоритмов, технологий и фреймворков, что если вы будете уверены в знании всех ответов, это повредит вашему росту.
Ваша экспертиза измеряется не знаниями, которыми вы обладаете, а способностью:
работать в условиях неопределённости;
задавать нужные вопросы, чтобы получать необходимое понимание;
знать, как находить решение, после того, как понимание выработалось.
Вполне допустимо говорить «я не знаю» или «я не разобрался в этом полностью, давай обсудим тему глубже». Технологии — это огромная, постоянно расширяющаяся вселенная. Ваша работа — решать задачи, а не быть всезнайкой. Сеньор, скорее, начинающий гид, который понимает, как добраться из точки А в точку Б, а не всезнающий гуру, запомнивший столицы всех стран.
Работа с самыми современными технологиями
❌ Ожидание: став сеньором, я смогу экспериментировать с самыми современными технологиями и создавать потрясающие проекты!
✅ Реальность: этот легаси-код никуда не денется, как и я. Придётся устранить этот баг, возникающий только в полнолуние.
Многие джуниор-разработчики мечтают работать исключительно с самыми современными фреймворками и инструментами. Однако в обязанности сеньор-разработчика часто входит поддержка и совершенствование легаси-систем. Эти системы несут на себе ношу годов бизнес-логики, клиентских данных и условий эксплуатации. Став сеньором, вы обнаружите, что существенная часть ваших обязанностей заключается в понимании таких систем, выяснении причин их поломок и их оптимизации под текущие и будущие требования. При этом нужно также следить, чтобы самому ничего не поломать.
Да, это не так увлекательно, но такова реальность: большинство современного ПО — это легаси-приложения, требующие рефакторинга (и в ближайшее время ситуация не намерена улучшаться), так что вам придётся патчить их и работать с тем, что есть.
Больше никаких скучных задач
❌ Ожидание: если я сеньор, то избавлюсь от всех скучных задач.
✅ Реальность: бесконечные совещания, документация и код-ревью… Ой, кажется, я забыл ещё упомянуть отладку легаси-систем вечером в пятницу?
Если бы! Если вы ожидаете, что, поднявшись по карьерной лестнице, будете решать восхитительные задачи и не столкнётесь с бюрократией, то мне придётся вас разочаровать. Должность сеньора идёт в комплекте с долей будничных, но необходимых задач: бесконечных совещаний, скрупулёзной документации, тщательных код-ревью и да, отладки легаси-систем в самое неподходящее время.
Вы можете подумать: фу-у-у, совещания, документация, код-ревью. Но достигнув уровня сеньора, вы будете их и ненавидеть, и любить. С одной стороны, вас будет раздражать нехватка документации, с другой вы будете уверены, что проект останется поддерживаемым даже через пять лет. Совещания будут бесить вас, потому что занимают кучу времени, но они же и будут радовать, потому что благодаря им всё согласуется и все делают то, что нужно. Код-ревью будут раздражать, потому что разработчики пытаются смерджить странные вещи, которые вам придётся улучшать, но вы будете радоваться, потому что ваша команда становится лучше благодаря вашей обратной связи.
Приняв весь спектр задач в своей должности, в том числе и скучную часть, вы обнаружите, что она может быть частью, приносящей самую большую отдачу, наполненной возможностями для привнесения пользы и роста.
Внесение больших изменений
❌ Ожидание: у вас будет миллион идей о том, как поменять направление компании на 180 градусов! Давайте всё улучшим!
✅ Реальность: осознание того, что ничего не изменится без одобрения руководства и необходимого бюджета.
Джуниор-разработчики часто смотрят на окружающие их системы, процессы и технологии, и видят в них бесконечные возможности для улучшений. Я тоже был таким. Помню, как пришёл в компанию, увидел, как там делаются дела, решил, что могу лучше, и начал разбрасываться предложениями направо и налево. Когда ты молод, у тебя в руках молоток, и всё вокруг выглядит как гвозди. Такое рвение не только восхищает, оно ещё и необходимо для эволюции и роста в нашей отрасли. Благодаря нему вы сделаете кучу ошибок, которые позволят понять, что не всё является гвоздями, а молоток — не единственный инструмент, который вам пригодится.
Учитесь доносить ценность своих идей так, чтобы они казались важными для стейкхолдеров, разбирайтесь в том, как распределяется бюджет, и участвуйте в планировании ресурсов. Чем крупнее проект, тем сложнее преодолевать препятствия, но это всё равно того стоит.
С ростом опыта вы начнёте понимать, что внесение изменений требует времени, а идея должна не только быть полезной на техническом уровне, но и соответствовать целям организации, бюджетным ограничениям и тонкостям управления рисками.
Что-то создавать — это просто интересно; создавать то, что приносит прибыль компании — интересно и доставляет моральное удовлетворение.
Время расслабиться
❌ Ожидание: когда стану сеньором, у меня появится больше времени для отдыха.
✅ Реальность: хорошо, я доделаю эту работу в субботу.
Или
❌ Ожидание: став сеньором, я создам идеальный баланс между работой и личной жизнью.
✅ Реальность: ты балансируешь дедлайны, менторство и личную жизнь, как будто жонглируешь ножами. Время от времени какой-то да упадёт.
Нагрузка необязательно должна уменьшиться: она эволюционирует. Возможно, вам придётся тратить выходные на завершение проектов или на устранение неожиданных проблем. Ваши обязанности простираются гораздо дальше, чем кодинг и технические задачи, включая в себя менторство, стратегическое планирование, а часто и более глубокое участие в операционных аспектах проектов. Вы становитесь более ответственным и получаете более высокую зарплату за свою вовлечённость — джунов не очень волнует, что пока их задача не выполнена, простаивают десять человек и выпуск проекта, а вам это важно. Из-за этих обязательств ваша работа может растягиваться на вечера или выходные, особенно с приближением дедлайнов или при появлении непредвиденных проблем.
Ожидание от сеньорства увеличения времени на отдых возникает из-за недопонимания природы сеньор-должностей. Хотя вы можете получить больше автономности в выборе своего графика и типов проектов, над которыми работаете, за это приходится платить ответственностью за управление и организацию на множестве фронтов; часто вы вынуждены искать баланс между профессиональными обязанностями и личной жизнью.
Я рекомендую вам вырабатывать стратегии, поддерживающие устойчивый баланс между работой и жизнью. Для этого вам может понадобиться совершенствовать свои навыки тайм-менеджмента или научиться более эффективно делегировать обязанности. И ещё для этого нужно осознанно отдавать приоритет здоровью и личным отношениям, а не более высокой зарплате.
Самостоятельный выбор того, что делать
❌ Ожидание: став сеньором, я буду руководить крупными проектами, иметь большое влияние и говорить другим, что делать!
✅ Реальность: я скучаю по тем временам, когда мне говорили, что делать.
Часто считают, что если тебя повысили до сеньор-должности, то ты больше не участвуешь непосредственно в задачах разработчика, а исключительно раздаёшь задания другим людям, занимаешься менторством джунов или проектируешь архитектуру. Хотя сеньор-должности действительно подразумевают большой объём метаработы — планирования, обдумывания, принятия решений, сеньоры всё равно выполняют множество «ручной» работы. Они исправляют старые кодовые базы, потому что только они умеют это делать, выполняют код-ревью для нового проекта, создают диаграммы для руководства и так далее.
Чем выше в должности вы становитесь, тем меньше людей говорят вам, что нужно делать, и тем больше они ожидают от вас понимания, что нужно делать. Вы переходите от задач типа «реализовать quicksort вместо mergesort в функции xyz» к задачам «руководство решило интегрировать ИИ в отдел HR. Как мы можем это осуществить?» Оба вида задач требуют «ручного» труда, но на разных уровнях.
С большой силой приходит большая ответственность, но ещё и стресс. Руководство крупными проектами привносит стресс от принятия правильных решений и страх неудачи. От таких сложностей получаешь отдачу, но они и пугают. Вы даже можете начать ностальгировать по тем временам, когда занимались исключительно кодингом и от вас никто не требовал разбираться в общей картине.
Стать незаменимым
❌ Ожидание: стану сеньором, и меня никогда не уволят.
✅ Реальность: надеюсь, меня не уволят.
Мысль о том, что должность сеньора гарантирует обеспеченность работой, успокаивает. Однако реальность нашей отрасли, известной своей быстрой эволюцией и колебаниями рыночного спроса, говорит о другом. Возможно, вы думаете: «Я единственный, кто знает, как чинить эту легаси-систему, они не осмелятся меня уволить», но они полностью закрывают весь проект, а ваша должность становится излишней.
Хотя сеньор-должности благодаря опыту и экспертизе обеспечивают некую степень стабильности, мнение о том, что сеньоров не увольняют — это миф. Компании сталкиваются с различными проблемами: экономическими спадами, сменой стратегий, слияниями и приобретениями; все они могут привести к реструктуризации и, к сожалению, к увольнениям, затрагивающим сотрудников на всех уровнях. Отчаянные времена требуют отчаянных мер (читай «инвесторы ожидают большей маржи»).
Я считаю, что технологическая отрасль — одна из немногих, где обязательно нужно следить за последними новинками. Не имеется в виду, что нужно изучать каждый новый фреймворк, скорее, нужно следить за тем, что есть на рынке. Если вы будете всю жизнь учиться и оставаться адаптируемым, то это защитит вашу карьеру почти от любых непредвиденных обстоятельств.
Если вы единственный в компании, кто знает какой-то непонятный фреймворк, использовавшийся десять лет назад, это не даёт вам конкурентных преимуществ при найме.