Как стать Senior разработчиком: определение, навыки, материалы
Сфер в IT много, но путь становления Senior-разработчика плюс-минус одинаков. В этой статье мы поговорим о том, кто такой старший разработчик, какие к нему предъявляются требования и как дорасти до столь солидной должности.
Кто такой Senior программист?
Если не вдаваться в дебри специализаций, это одна из ступеней развития разработчика в цепочке Junior → Middle → Senior. Перед джуном также может указываться стажёр, а после сеньора — тимлид, но мы рассмотрим именно трёхэтапную схему.
Junior разработчик
Сразу оговоримся, что чётких научных измерений в этой системе нет. Для каких-то компаний джун — это вчерашний студент с минимальными знаниями и нулевым опытом, а кто-то ищет младших разработчиков с опытом работы от 2-х лет.
Но практически все сходятся в том, что это наименее ответственное звено, в развитие которого нужно вкладываться, отслеживать и координировать его действия. Скажем, это человек, который, работая, продолжает учиться.
Middle разработчик
По сути, это «подросший» Junior, который освоил необходимый стек технологий, уверенно обращается с Git, командной строкой, самостоятельно и в срок решает поставленные задачи.
Кроме того, Middle — это командный игрок, который может и чужой код прочесть, и дельное замечание по нему сделать, если требуется.
Где-то между джуном и мидлом есть ещё так называемые «уверенные джуны», но это, скорее, не промежуточный этап, а просто попытка компаний оставить уже обросшего опытом специалиста на позиции и зарплате Junior-разработчика. Как только почувствовали, что знаете и можете гораздо больше, чем джун, сразу же обсудите это с руководством.
Senior разработчик
Вот он, гвоздь программы, способный взять на себя проект и даже руководить отдельным подразделением. Senior Developer обладает обширным багажом знаний, способен стать ментором для Trainee или Junior разработчика, а также улучшать эффективность команды за счёт реализации своих идей.
Грубо говоря, если вы не нуждаетесь в сторонней помощи и, напротив, сами можете предоставить такую помощь, в числе первых берёте на абордаж новые технологии и не боитесь использовать их на практике, вы Senior программист.
Что должен знать и уметь сеньор разработчик?
Так как же стать Senior разработчиком? Не стойте на месте: осваивайте новые языки и технологии, записывайтесь на вебинары, бросайтесь в принципиально новые подходы, дабы не пасти задних, и развивайтесь всесторонне.
Довольно обобщённые советы, не правда ли? Что ж, попытаемся их структурировать и раскрыть подробнее.
1. Технические навыки
Во-первых, это понимание алгоритмов и умение писать чистый код. Во-вторых, для одной задачи существует множество решений, но именно Senior Developer способен определить, какое из них оптимально в конкретном случае.
Перед началом работы всегда спрашивайте себя:
- Можно ли разбить таск на подзадачи, и если да, то как?
- Какой подход к решению этой задачи наиболее оптимален?
- Смогу ли я подключить других сотрудников, и как в таком случае организовать рабочий процесс?
Если для решения проблемы нужно освоить новую СУБД, фреймворк или сторонний сервис, вы осваиваете это.
Но что реально отличает сеньора от остальных, так это опыт поддержки проектов, даже если речь идёт о всеми забытом и припорошенном пылью легаси коде.
Кроме того, чтобы думать, как Senior, нужно расширять способы обработки информации. В этом поможет книга Иана Макдермотта и Джозефа О`Коннора «Искусство системного мышления». Также есть краткая выжимка основных мыслей в формате аудиокниги:
2. Коммуникативные навыки
Не будем распыляться о том, что старший разработчик должен хорошо знать английский язык. В любом случае держите бесплатные материалы по английскому для айтишников.
Как вы уже поняли, сеньоры часто ведут проекты самостоятельно, поэтому очень важно уметь обрабатывать ТЗ заказчика, задавать правильные вопросы, которые выльются в исчерпывающие ответы, устанавливать сроки выполнения и выстраивать план работ. Разумеется, проджект-менеджеров никто не отменял, но в идеале старший разработчик может справляться и без их помощи.
А ещё программирование — это почти всегда работа в команде, поэтому нужно уметь организовать процесс, отталкиваясь от навыков и запросов других сотрудников. Вы должны быть на «ты» с гибкими методологиями разработки, и такие термины, как Agile, Scrum и Kanban, не должны вас пугать.
3. Навыки ментора и интервьюера
Подбор персонала и обучение новичков — задачи, которые нередко ложатся на плечи сеньоров. Как человек, прошедший обучение, становление и набивший достаточное количество шишек, Senior-программист прекрасно знает, какие вопросы задавать, чтобы выделить сильные и слабые стороны кандидата, а также как организовать рабочий процесс для тех, кто уже прошёл собеседование.
4. Навыки профессионального роста
Если вы думаете, что дослужитесь до звания Senior Developer и закончите на этом свой учебный путь, вы ошибаетесь. Старшие разработчики как никто знают, сколь важно постоянно развиваться, осваивая всё новые и новые горизонты. Они никогда не ограничиваются одним набором инструментов, ведь в погоне за оптимизацией рабочего процесса так или иначе приходится обращаться к чему-то новому.
Если у вас есть боязнь применения новых знаний на практике, также известная как синдром вечного студента, вам нужно её преодолеть, чтобы стать Senior разработчиком.
Принципиальная разница между джуном и сеньором в том, что первый, как правило, воспринимает обучение как обязаловку, в то время как второй видит в этом ценную необходимость, ключ от закрытых дверей.
От сеньора редко можно услышать что-то вроде «Ненавижу этот инструмент», поскольку он уже изучил его, выделил все плюсы и минусы, знает, когда его стоит применять, а когда это бесполезная трата времени и ресурсов.
5. Навыки работы с сообществом
Мало того что старшие программисты хорошо выполняют свою работу, так они ещё и «подтягивают» айтишное комьюнити. Часто выступают с докладами, организовывают митапы, пишут документации и полезные статьи, которые помогают развиваться другим.
Иными словами, Senior разработчик не закрывается в своём рабочем пространстве, втихую накапливая знания и скрывая их от остальных. Скорее, это те самые гуру, раздающие дельные советы на Stack Overflow. Они любят делиться своим опытом, так как это:
- помогает взращивать новые поколения талантливых разработчиков и способствует развитию IT в целом;
- в ходе общения позволяет почерпнуть полезную информацию и от самого сообщества.
Вместо эпилога
Всё сказанное уже сказано, поэтому просто держите несколько дополнительных материалов, чтобы лучше понять, как стать Senior разработчиком:
Собеседуем кандидата на должность Senior Software Developer
Я провел не одну сотню собеседований как с одной стороны, так и с другой. В этой статье я хотел бы поделиться своими опытом, наблюдениями и интересными моментами. Возможно, кого-то это убережет от ошибок, неверных выводов и потерянного времени.
Итак, Senior Software Developer(aka Старший Разработчик) — это разработчик со значительным опытом(от 5 лет) и глубокими знаниями в коммерческой разработке софта. Опыт работы разработки за деньги — это необходимое, но недостаточное условие. Обязательно нужно поучаствовавать в каком-нибудь проекте уровня Enterprise, а если еще и с самого начала — вообще прекрасно, это дает незабываемый опыт и широкий кругозор. Senior от Middle отличается прежде всего тем, что может довести любую задачу до состояния production-ready. Он четко знает, что можно сделать, а что нельзя. Способен уловить момент, когда в ПО пора делать рефакторинг или просто переписывать с нуля. Пишет достаточно качественный код без критических и архитектурных ошибок.
Ошибочно считать, что Senior работает быстрее Middle. В моей практике было немало случаев, когда Middle выполнял несложные задачи быстрее. Но Senior практически всегда работает качественнее и быстрее на сложных задачах, когда можно применить накопленный опыт, избежать ошибок и потери времени на этапе разработки, сопровождения и развития.
Как это ни странно, но порой собеседующие не следуют основной цели собеседования — определить, будет ли разработчик полезен команде и насколько эта польза соотносится с затратами на данного разработчика. Вместо этого, собеседующий часто выявляет чего разработчик не знает, вместо того, чтобы выяснить, что он знает и умеет. В следствие этого он приходит к неверным выводам со всеми вытекающими последствиями.
Здесь единственно правильный ответ — непосредственный будущий начальник aka Team Lead. Частая ошибка — собеседовать по 2-3 человека со стороны собеседующего, задавая перекрестные и непоследовательные вопросы. Это все создает ненужный стресс для собеседуемого и мешает установлению психологического контакта.
Собеседование — это всегда стресс для разработчика, для кого-то больший, для кого-то меньший. Многие из них не умеют качественно «продавать» себя. Поэтому крайне важно расположить к себе разработчика и перевести собеседование в дружеское общение двух коллег. Ведь именно в дружеской беседе можно узнать настоящие подробности ухода с предыдущего места работы и какими навыками без прикрас обладает собеседуемый.
Как я уже написал в «Целях», важно узнать сильные стороны собеседуемого, с чем он работал ранее, на чем съел собаку, какие подходы использовал, какие челенжи встретил по дороге.
Ключевые компетенции для Senior-разработчика:
- Алгоритмы.
- Архитектура, шаблоны проектирования.
- Базы данных.
- Параллельное выполнение и синхронизация работы процессов.
- Основы производительности ПО.
- Дебаг и логирование.
Для разработчика важную роль играет понимание как это работает, знание концепций и особенностей, нежели знание конкретного инструмента. Например, если он досконально разобрался с MySQL, то ему не составит большого труда разобраться и с Postgres. В большинстве случаев для разработчика уровня Senior не составит труда быстро изучить любой инструмент.
Очень часто собеседующие переходят на какие-то хорошо им знакомые частности, вот случаи из реальной практики:
- Каким образом используя SQL удалить одну строку, если под критерии выборки попадает больше одной?
- Какой командой git откатить последний коммит?
- Какие методы объекта Object в Java Вы знаете? Тут могут быть другие варианты в других языках — то, что хорошо знает собеседующий.
Эти вопросы также из разряда «подкинуть монетку в воздух», их знание или незнание никаких объективных выводов об опыте разработчика делать не позволяет.
Есть также отдельная категория «остроумных» любителей дурацких вопросов и задач на проверку «толковости», реальные примеры:
- Почему люк круглый?
- Как налить ровно 4 литра воды в одно ведро, если есть два ведра — 3 и 5 литров?
- Решите какую-нибудь головомку, например соберите кубик Рубика.
Проблема с такими вопросами — отсеиваются не только люди с низким IQ, но и значительная часть толковых ребят, просто не готовых к таким вопросам или находящихся под стрессом. Здесь вместо толковых ребят нередко проходят далее те, которые уже знают ответы и решения стандартных вопросов и задач.
Есть такой часто задаваемый вопрос со стороны собеседущего — «Почему Вы хотите работать у нас?». Подразумевается, что собеседуемый честно и откровенно раскроет свою мотивацию — «Хочу больше денег» или «Все лучше, чем там, где я сейчас». Но для собеседуемого такой вопрос может вызвать буквальное непонимание и он редко отвечает откровенно. Поэтому про мотивацию лучше выяснить косвенными вопросами.
Какие бывают мотивации:
- Деньги. Самая популярная мотивация, но зачастую не принято в этом признаваться. Хорошо работает для семейных и тех, кто привык много тратить или очень хочется накопить.
- Интересные задачи. Когда людям реально нравится их работа и они готовы работать сверхурочно и в выходные не требуя дополнительной оплаты.
- Прокачать новые скилы. Индустрия не стоит на месте и постоянно приходится их прокачивать, чтобы оставаться востребованным на рынке труда.
- Карьерный рост. Одна из главных мотиваций работы в стартапе.
- Известная или хайповая компания. Возможность быть частью ее и пожинать плоды ее известности.
- Как работает редко нужный алгоритм XXX(например, quicksort). Зачем спрашивать то, что не нужно в повседневной работе разработчика, но гуглится за 5 секунд?
- Владеете ли Вы несложным иструментом YYY(например git). Я еще не встречал разработчика, который бы не освоил базовые возможности git, нужные для повседневной работы, за день-два.
- Умеете ли писать тесты. Вопрос со звездочкой. Сам процесс написания тестов — несложен, а вот научиться понимать, что именно нужно тестировать и в каком объеме — тут нужна длительная практика. На деле же достаточно одного опытного тестописателя в команде, который сможет контролировать этот процесс в эффективной манере.
- Что такое Agile/Kanban/Scrum. Методологию, как будет вестись разработка, выбирает Team Lead, соответственно рядовым исполнителям знать ее досконально не обязательно, а базовые принципы постигаются за считанные дни.
Чтобы понять мотивацию и способности конкретного разработчика, необходимо выделить типы, ему присущие. Я выделил следующие, часто встречающиеся типы:
- Креативщик или Увлеченный. Его прет от самой работы, нетривиальных задач, там, где нужно что-то изобрести. Иногда получаются велосипеды, но с ростом компетенций производит весьма качественные продукты. Основная мотивация — интересные проекты и задачи.
- Рутинщик. Способен выполнять весьма рутинную работу не снижая производительности со временем и не требуя какой-либо мотивации.
- Супергерой. Выполнит задачу любой ценой, даже если не хватает компетенций и времени. Часто лепит из говна и палок но с ростом компетенций получается что-то более-менее приличное. Очень ценный для стартапов и требовательных начальников.
- Грамотный. Его на мякине не проведешь, хайпом не обманешь, всегда старается постичь суть технологий и задач, мыслит глубоко и структурно. Ценный сотрудник в любом проекте.
- Поверхностный. Нахватается умных слов, подходов, изучит(поверхностно) хайповые технологии и тулзы и пытается все это применить в проекте, насыпая большими горстями, даже если можно обойтись малым. Свойственно на заре карьеры и просто ведомым и впечатлительным товарищам.
- Заложник настроения. Есть настроение — работа так кипит, что только подноси снаряды, нет настроения — больше будет делать задумчивый вид и философствовать, чем работать.
- Карьерист. Четко нацелен на карьерный рост. Нет роста больше года — потенциальный кандидат на вылет.
- Консерватор. Любитель стабильности и традиций, негативно относится ко всем этим новомодным штучкам, инструментам и подходам.
- Манимен. Работает там, где больше платят, поэтому лояльность к компании довольно низка. Любит премии, бонусы, бесплатные ништяки и прочие финансовые мотивации.
Зачастую, у конкретного индивидуума сочетается несколько типов в различных пропорциях. Со временем типы и их пропорции у человека изменяются, а также есть индивидуумы, которые могут адаптироваться под задачи(свойственно Супергероям). Замечено, что с возрастом доля Консерватора растет у многих, Креативщик может выгореть, а Поверхностный может вырасти в Грамотного.
К сожалению, иногда у Senior-разработчиков развиваются совсем не те навыки и может испортиться характер, что сильно затрудняет взаимопонимание и эффективную командную работу.
Нередко встречаются такие состояния:
- Жизнь — тлен. Иногда бывает так, что написанный код не идет в production по каким-то причинам (например по бизнес-решениям) или живет недолго(стартап или неумелое управление). Это серьезно деморализует со всеми вытекающими. Тут надо не путать со здоровым обычным цинизмом ввиду опыта работы.
- Постигший дзен. За годы в статичном Enterprise-проекте разработчик изучает его вдоль и поперек и у него складывается ощущение, что он теперь редкий специалист. На самом деле его навыки и умения за пределами этого проекта почти не стоят ничего, налицо переоценка своих возможностей разработчиком.
- Недооцененный и неуверенный. Череда неудачных проектов, плохого управления и прочих рисков заставляют разработчика сомневаться в своих способностях и умениях, хотя на деле он может оказаться весьма способным и ценным сотрудником. Часто недооценивает себя по зарплате и/или должности.
- Переоцененный. В контраст недооцененному и неуверенному этот индивидуум словил удачный проект или серию, который прошел крайне удачно и на этой волне сильно переоценивает свои способности и возможности.
Проблема в коротком тестовом задании(2-3 часа) в том, что по его результатам нельзя сделать никаких определенных выводов, обладает ли автор опытом разработки уровня Senior или нет. С таким же успехом Вы можете просто подкинуть монетку в воздух.
По итогам собеседования должно сложиться объективное впечатление о разработчике:
- Какие у него сильные стороны.
- Как он может усилить команду.
- Сколько ему времени нужно для выхода на «крейсерскую скорость».
- Насколько желаемая зп соответствует вышеуказанным пунктам.
- Есть ли психологический контакт и совместимость с командой.
Если по какой-то причине не удается уверенно ответить на все эти вопросы, то можно провести еще один раунд собеседования, либо отказать кандидату. Следующий раунд может состоять из какого-либо конкретного задания, который раскроет недостающую информацию, например — полдня кодинга непосредственно в компании, оплаченные по средней ставке.
Заходят как-то в бар «джун», «мидл» и «сеньор»: чем отличаются уровни программистов

В IT-среде принято маркировать уровень специалиста словами «джуниор», «мидл» и «сеньор». Но как понять, на какой вы ступени, и чем вообще эти уровни отличаются? Разбираемся, что на практике ждут работодатели и можно ли прийти устраиваться на должность джуна, а стать мидлом?
Зачем нужна классификация
Деление айтишников, да и не только, на джунов, мидлов и сеньоров — международная традиция. Поскольку в той или иной степени знать английский язык все равно нужно, у нас в IT-среде не стремятся заменять уже привычные для индустрии маркеры на какие-то свои.
В основе классификации — опыт и навыки. Иногда между делом подразумеваются и софт-скиллы. База — единая для всех, хотя в разных компаниях могут быть отхождения из-за специфики отрасли и устройства команды.

Junior с английского переводится как младший. Этим прилагательным также обозначают студентов младших курсов и начинающих специалистов.
• Год-полтора в профессии или делал только учебные проекты.
• Использует один-два метода для решения задач, остальные не пробовал или не разбирается в них.
• Не ориентируется или слабо понимает, как решать нестандартные задачи.
За джунами требуется контроль и проверка кода. Они не знакомы с деталями и нюансами, с которыми сталкивались опытные коллеги. Но этот этап проходят все специалисты в начале работы в IT-сфере.
На что обращают внимание рекрутеры при подборе
1. Минимальные курсы или образование по специальности. Логично, что для работы программистом на Python нужно знать этот язык.
2. Знание английского. Требуемый уровень зависит от специфики вакансии. Например, в МегаФоне язык потребуется не только чтобы писать код, но и для коммуникации.
3. Софт-скиллы. Навык аналитической работы желателен почти на всех IT-специальностях. Но ключевым для джуниора станет способность к обучению.
Как только джуниор набрался опыта и научился принимать правильные решения в работе над проектом, он переходит на уровень «мидл».

С английского — середина. Специалист уровня мидл — следующая ступень эволюции джуна.
• Ориентируется в методах решения задач и подбирает оптимальные.
• Умеет писать код аккуратно.
• Осознает свою роль в общей системе проекта, и как его задачи влияют на работоспособность продукта.
• С уверенностью берется за нестандартные задачи.
Мидл — это опытный сотрудник, который развивается в своем направлении и умеет делать больше, лучше и быстрее джуна. Задачи у мидла более трудные, но и зарплата выше. Когда специалист этого уровня наращивает достаточно компетенций и опыта, он становится сеньором и выбирает один из трех путей развития: продолжить кодить и стать в этом первоклассным специалистом, сконцентрироваться на технической стороне проектов или взяться за управление командой.
На что обращают внимание рекрутеры при подборе
1. Портфолио и реальные проекты.
2. Знания (измеряются количеством языков, протоколов и систем, которые освоены на практике);
3. Менеджерские качества — например, в МегаФоне смотрят на понимание культуры Agile.
Мидл — это человек, который способен включиться в работу в незнакомой отрасли или новом отделе быстро и почти без ошибок, поскольку он гораздо увереннее в своих знаниях и навыках, чем джун. Мидл намеренно включается в работу смежных сфер или набирается опыта в других отделах. Стремление углубить знания, разобраться в прежде непонятном и прокачать себя со временем превратит его в сеньора.

С английского — старший. Это либо гуру в своем направлении, либо тимлид и руководитель отдела.
• Глубоко знает направление, в котором работает, и в достаточной мере прокачан в смежных сферах.
• Набил массу шишек и все их превратил в полезный опыт.
• Умеет выдержать баланс: знает, где на компромисс идти нельзя, а где можно опустить простоту и красоту и сделать костыль.
• Обладает хорошими коммуникативными навыками и тем, что принято называть «эмоциональным интеллектом».
• Умеет делегировать и распределять задачи в команде, базируясь на сильных сторонах коллег.
У сеньора особый склад ума. Он знает, что отвечает за код и продукт и берет на себя ответственность за принятые решения. Отмазки не использует и не скидывает ответственность на клиентов, коллег или судьбу.
На что обращают внимание рекрутеры при подборе
1. Софт-скиллы и образ мышления.
2. Уровень экспертизы.
Пути эволюции мидла
Упрощая, мы хотим выстроить прямую цепочку эволюции: джун, мидл, сеньор. Но на деле не обязательно идти по проторенной дорожке к логичной финальной точке в виде позиции тимлида. У мидла есть несколько путей, по которым он может следовать, но все они непременно приведут его к уровню сеньора.
1. Разработчик-эксперт. Если специалист не хочет бросать код, он волен остановиться и не идти дальше по карьерной лестнице. В этом случае он станет сеньором, который пишет код, развивает свои навыки и углубляет знания. Рост в этом пути развития — это увеличение стоимости компетенций.
2. Техлид (в дальнейшем архитектор). Этот путь выбирают те, кто хочет сконцентрироваться на технической части: придумывать комплексные решения и системы, смотреть на всю картину целиком и решать интересные задачи. Архитектор уже не занимается кодом, а проектирует и продумывает решения.
3. Тимлид (в дальнейшем руководитель разработки). Та самая управленческая должность. Это кардинальная смена деятельности. Вместо кода тимлид занимается мотивацией своей команды, оценкой эффективности и следит за тем, чтобы все процессы работали. Часто бывает, что техлид и тимлид — это один и тот же человек. Он видит общую картину, принимает решения и при этом руководит командой.

Классифицикация по трем уровням скиллов разработчиков — чисто прикладной инструмент. Он упрощает процесс отбора и помогает обозначить компетенции и требуемый опыт. Но каждый случай индивидуален. В МегаФоне нацелены на быстрое развитие сотрудников и помогают развивать их навыки.
Сергей Кузин (менеджер по подбору персонала, МегаФон):
Рост от джуна до мидла и до синьора сейчас может быть очень стремительным. Многое зависит от инициативы самого разработчика. В МегаФоне для таких переходов есть практически неограниченные возможности по изучению современных технологий и языков и плотная работа с наставниками.
IT в МегаФоне очень разнородно, мы много чем интересным занимаемся. В большей степени команды фокусируются вокруг наших продуктов: есть ребята, которые занимаются мобильным приложением, сайтом. Есть те, кто разрабатывает и поддерживает продукты для корпоративных клиентов (от умных производств, видеоаналитики до крупных проектов безопасных городов и так далее). Есть и те, кто сфокусирован на счастье внутренних сотрудников и делают жизнь каждого из нас — в офисе или на удаленке, — проще и удобнее. Продуктовый подход в разработке позволяет нам быть быстрее и делать действительно важные вещи.
В МегаФоне предлагают конкурентные по рынку вилки зарплат для соискателей с разным уровнем экспертизы. А переход между позициями джуна и мидла или мидла и сеньора в компании происходит за счет обучения и поддержки менторов. В МегаФоне не обязательно идти по дороге «стажер — тимлид», можно двигаться между проектами и находить для себя более интересные задачи.
Атмосфера в МегаФоне, возможность учиться внутри компании и обмен опытом между отделами помогают быстро вырасти с джуна до мидла, а с мидла до сеньора, если у сотрудника есть такое желание. Митапы, мастер-классы и конференции в профессиональной сфере дадут значительный буст навыкам.
МегаФон ищет в свою IT-команду QA-тестировщика, Java, iOS и React разработчиков. И прямо сейчас у вас есть возможность получить приглашение на собеседование без лишних тестовых работ. Если вы в поиске вакансии, выбирайте свою специализацию и пройдите наш Пиратский квест.
Senior developer кто это
В ИТ-рекрутменте подбор разработчиков начинается с понимания того, кого мы ищем. Джуниора, мидла или сеньора? Последние — лакомый кусочек, который хочет заполучить каждая компания. Чем же он отличается от других?
Senior разработчик
Senior (старший) Developer — разработчик-профессионал с опытом коммерческой разработки от 5 лет. При этом стаж работы не ключевой фактор для сеньора. Главным критерием является участие в крупных проектах и прокаченные навыки, опыт.
Помимо разработки он связан с другими важными задачами и продолжает обучаться. Последний пункт особенно важен. Старший разработчик должен знакомиться с новыми ИТ-технологиями, сравнивать их между собой и осваивать инструменты.
Это необходимо не только для прокачивания профессионализма, но и для передачи опыта.
Что должен знать Senior
Объективная оценка программиста складывается из комплекса знаний и навыков. Ключевые компетенции:
- Программирование (языки, алгоритмы, структура данных, библиотека, код)
- Стеки технологий
- Базы данных
- Отладка программы
- Software Engineering (Программная инженерия)
- Тестирование производительности ПО
- Опыт в разработке нескольких проектов
- Английский язык
Важным моментом является и теоретическая подготовка. Если у разработчика нет знаний о процессе разработки, то как он может быть экспертом и эффективно работать над проектом?
Кроме hardskills для сеньора важны коммуникативные навыки и широкий кругозор. Помимо решения своих задач, он может быть руководителем или наставником для менее опытных ребят. Важно отстаивать свою точку зрения и конструктивно решать разногласия как внутри команды, так и с руководителем. Технические решения сеньора не всегда совпадают со взглядом заказчика — здесь на первый план выходят навыки переговоров.
Как оценить сеньора на собеседовании
Хороших сеньоров на рынке не так много, поэтому важно не растягивать этапы и ограничиться 1-2 встречами.
Первую удобнее провести в онлайн-формате. Цель — познакомиться и выяснить насколько вы друг другу интересны. Здесь стоит сразу подключать руководителя или тимлида. Задача HR — выяснить мотивацию кандидата и softskills. Вопросы могут быть такими:
- Какую роль вы выполняли в последнем проекте? Что делала остальная команда? Как мы уже упоминали, для сеньора важно уметь взаимодействовать с коллегами. Выясните как человек воспринимает себя в проекте и в чем видит свою ответственность.
- Расскажите о сложностях в работе над проектом. Как их решали? Важно понять как старший разработчик реагирует на неудачи. Готов ли изменить подход или переложит ответственность на команду.
- Расскажите о своих достижениях. Вопрос стандартный, но не менее важный для разработчика. Сеньор — это опытный профессионал, который должен уметь оценить результат и свой вклад в проект.
- Что для вас важно в рабочем процессе? Сюда относится режим работы, корпоративная культура, распределение задач. Постарайтесь выявить возможные подводные камни — возможно система в вашей компании не подойдет для кандидата.
- Что вас мотивирует в работе?Какие моменты в работе вас демотивируют? Уровень дохода — далеко не единственная причина поиска работы. Ответ покажет какой стиль руководства подходит разработчику и совпадает ли он с вашим.
- Почему вы хотите работать в нашей компании? Мотивация может быть в деньгах, интересном проекте или бренде компании. Главное выяснить, что для него ценно именно в вашем предложении.
Второй этап — техническое собеседование с руководителем. На нем основная цель — выявить навыки и реальный опыт разработчика. Интервью должно быть расширенным, после которого принимается решение.
Что не стоит делать на собеседовании с сеньором
Проводить массовое собеседование
Когда собеседование проводит половина команды — такое понравится не всем.
Кандидат не может расслабиться, а куча вопросов только путают. Поэтому 3 человека — оптимально для принятия решения.
Логические задачи, тесты на IQ
Этим можно проверить способность к анализу информации, но не каждый кандидат это оценит. Представьте, что в середине собеседования вы вдруг спрашиваете: “Где вы будете плыть быстрее — в воде или сиропе?” Как минимум, странно. Кстати, этот вопрос задавали программистам на собеседовании в Google.
Логические задачи допустимы, но используйте их правильно. Предложите профильные или математические задачки. Например такие:
- Расскажите о способах использования одного одномерного массива для реализации трех стеков.
- Найдите ошибки в коде.
- Предложите способ поиска в отсортированной матрице произвольного элемента.
Превращать собеседование в допрос
HR может помочь руководителю с планом собеседования. Например, разделите вопросы на технические, мотивационные и общие.
Главная проблема при подборе сеньора в том, что руководитель не всегда делает акцент на пользе такого специалиста для компании. То есть задают вопросы об этапах разработки, обсуждают код, но не затрагивают конкретные кейсы. И знания есть и опыт классный, но применим ли он в вашей компании? Важно выявить его сильные стороны, с чем он работал и какие применял технологии, поэтому делайте акцент на кейсах. Даже если сеньор не знаком с вашей спецификой, он должен понимать возможные концепции. У Senior разработчика не возникнет трудностей с изучением нового инструмента.
Отличие сеньора от миддла
Разработка собственного проекта
Сеньору не составит труда с нуля создать архитектуру проекта и определиться со стеком. Важное отличие от мидла — сеньор умеет и доводит цели проекты до конца.
Уверенный профессионал
Сеньору можно доверить новое направление. Это партнер компании, который знает для каких целей разрабатывается продукт. Он четко осознает свою роль и выстраивает направление проекта.
Специализация
Старший разработчик — это эксперт, у которого есть свой профессиональный взгляд на решение задачи. Он может его обосновать и использует весь свой опыт для достижения цели.
Коммуникация
Сеньор умеет задавать правильные вопросы и сразу реализовывать идеи. Он готов помочь младшим коллегам и быть наставником.
Пишут простой код
Сеньор думает не о том, как блеснуть кодом, а как он решит задачу. Простота для него не низкий профессионализм, а понятное и удобное решение для других.
Зарплата сеньора
Сравним уровень дохода сеньоров и мидлов в зависимости от языка.
В среднем зарплата Senior разработчиков находится в пределах 150 (PHP, 1C) — 213 000 руб. (Kotlin).
Среди мидлов самый высокооплачиваемый язык Golang — 156 000 руб, а самая маленькая зарплата у разработчиков 1С — 85 000 руб.

Для того чтобы убедиться, что перед вами Senior — недостаточно задать несколько экспертных вопрос. Это комплексный подход, в котором должны участвовать руководитель и HR.