Опыт — обязательное требование для каждой вакансии старшего разработчика, но его не достаточно, чтобы получить повышение. Так в чем же секрет? Вероятно, на такой сложный вопрос однозначного ответа нет.
Часто молодые разработчики считают, что подходят на должность Senior Developer, но им не хватает профессиональных качеств. На собеседовании некоторые программисты, недавно окончившие университет, утверждают, что уже работали старшими разработчиками. Возможно, такие молодые кандидаты очень хороши в одиночном программировании, но зачастую они не владеют другими атрибутами профессионализма для должности старшего разработчика.
Сразу же следует задать вопрос: как вы определяете старшего и младшего разработчика? Когда младший разработчик становится старшим?
Содержание:
- Нет тонкой грани между Middle и Senior разработчиком.
- Отличия Senior Developer от Middle и Junior Developer:
2.1. Не зацикливаться на коде.
2.2. Важные решения.
2.3. Опыт работы, конечно.
2.4. Soft Skills и навыки общения.
2.5. Senior Developer знает, чего он не знает. - Знание против глубокого знания.
- Выводы.
Нет тонкой грани между Middle и Senior разработчиком
Нельзя сказать, что однажды, одним определенным утром, разработчик проснётся уже Senior, хотя засыпал в должности Middle Developer.
При опросе нескольких разработчиков, работающих в отрасли более 10 лет, ответы каждого из них существенно различались. Это правильно: неужели обязательно должен быть только один верный ответ?
У разных компаний требования к старшим программистам разные, как и оклад. Некоторые из них считают, что после пяти лет работы программист претендует на должность Senior Developer. Другие уверены, что для этого потребуется кандидат с шестью-восемью годами опыта работы. Невозможно точно назвать срок, в течение которого каждый младший разработчик автоматически приобретает нужные для должности Senior навыки.
Правда, существует несколько общих принципов, позволяющих утверждать о способности занять должность Senior Developer. Давайте поговорим о них.
Отличия Senior Developer от Middle и Junior Developer
Большинство старших разработчиков в чем-то похожи друг на друга. Но не стоит воспринимать это слишком серьезно. Это не значит, что при нехватке одного из атрибутов вы не входите в лигу. Но обладать следующими навыками весьма полезно для карьерного развития программиста.
1. Не зацикливаться на коде
Нужен опыт, чтобы научиться предсказывать различные повороты в развитии проекта. В самом начале карьеры с такой задачей не справится никто. Senior Developer заранее знает детали разработки типичного проекта: на любой стадии развития идеи он способен как оценить сложность задумки в целом, так и подобрать оптимальный технологический стек.
В некотором смысле, благодаря длительному опыту работы с конкретными технологиями старшие программисты “видят будущее” и принимают необходимые меры еще до возникновения проблем и багов.
2. Важные решения
Принятие важных решений в начале или середине цикла развития проекта — ответственность старшего программиста.
Senior Developer согласовывает технические решения с потребностями бизнеса. Senior получает зарплату не только за написание кода! Старшие программисты знают бизнес и помогают работодателям развивать его.
3. Опыт работы, конечно
Почему Senior Developer обязательно нужен опыт?
Например, при выборе бэкенд-системы для стартапа Junior Developer сначала выберет Firebase, но на следующем этапе разработки поймет, что Firebase совсем не подходит для проекта.
Вот в этом разница между старшим и младшим программистом: Senior Developer знает, какие технологические стеки подходят для тех или иных проектов.
Некоторые качества и свойства приходят только с опытом, достаточным для должности старшего разработчика. Не только опыт делает вас старшим программистом, но он необходим.
4. Soft skills и навыки общения
Когда Middle Developer наставляет и направляет младших программистов, то начинает становиться старшим разработчиком.
Коммуникативные навыки необходимы для Senior Developer: разработка программного обеспечения — это коллективная работа. Старшим разработчикам удается привести всех к единой цели самым коротким и рациональным путем, и иногда при этом приходится идти на компромиссы.
Старшие программисты знают политику офиса и умеют действовать в соответствии с ней.
5. Senior Developer знает, чего он не знает
Младшие программисты много чего не знают, и даже старшие разработчики не знают все на свете. Однако младшие не знают, чего они не знают — это большая разница между Junior и Senior разработчиками.
Старшие программисты осознают свои пробелы в знаниях, но при этом понимают, как выполнить задачу, а вот Junior не знают своих слабых мест. Именно эта способность делает старшего программиста эффективным программистом-одиночкой.
Знание против глубокого знания
Знания — первое необходимое качество старшего в любой области. Но сами по себе они не сделают вас Senior Developer. Изучение пяти новых языков программирования — это не качество разработчика.
Скорее, ключевой момент — глубокое знание технологии, узкая специализация. Вы можете легко понять причину данного утверждения с помощью одной простой техники: попробуйте научить технологии кого-то другого. Тогда вы сможете определить разрыв между теми знаниями, которые у вас есть, и теми, которыми вы должны обладать.
Еще один замечательный совет от Майка Льюиса, одного из многих разработчиков и экспертов в области программирования, принявших участие в написании книги Кевлина Хенни “97 вещей, которые должен знать каждый программист” (97 Things Every Programmer Should Know):
Не бойтесь ломать.
Идея сломать что-то сперва кажется непрактичной — ни один профессионал на свете не захочет ухудшить итоги своей работы, не говоря уже о программисте. Но если вы готовы ломать, то в итоге получите более качественный код и глубже изучите материал.
Поэтому, если вы хотите быстрее стать старшим разработчиком, то вы должны научиться потреблять и усваивать знания лучше и быстрее других людей.
Выводы
Когда вас уважают и достойно оплачивают ваш труд, титулы становятся просто словами. Часто компании указывают разные титулы без необходимости, чтобы угодить сотрудникам. Но это мешает им в долгосрочной перспективе, зачастую создавая ненужные ожидания.
Иногда разработчики не хотят работать в компании только потому, что им не присвоят звание старшего разработчика, как и на прошлой работе. Но иногда руководству просто нельзя так поступить, иначе произойдет несправедливость с преуменьшением навыков сотрудников, уже работающих в компании на должности Senior Developer.
Станете ли вы старшим разработчиком или нет, горите ли вы желанием получить это престижное звание или нет, качества старшего разработчика пригодятся любому программисту.
Читайте также:
- Как оставаться в тренде dev-индустрии
- 7 признаков того, что вы - опытный разработчик
- За что разработчики ненавидят парное программирование?
Читайте нас в Telegram, VK и Яндекс.Дзен
Перевод статьи Entreprogrammer: When Can You Call Yourself a Senior Developer?