Обложка: Как стать Senior разработчиком: определение, навыки, материалы

Как стать Senior разработчиком: определение, навыки, материалы

Сфер в IT много, но путь становления Senior-разработчика плюс-минус одинаков. В этой статье мы поговорим о том, кто такой старший разработчик, какие к нему предъявляются требования и как дорасти до столь солидной должности.

  1. Кто такой Senior программист?
  2. Что должен знать и уметь сеньор разработчик?
  3. Дополнительные материалы

Кто такой Senior программист?

Если не вдаваться в дебри специализаций, это одна из ступеней развития разработчика в цепочке Junior → Middle → Senior. Перед джуном также может указываться стажёр, а после сеньора — тимлид, но мы рассмотрим именно трёхэтапную схему.

Junior разработчик

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

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

Middle разработчик

По сути, это «подросший» Junior, который освоил необходимый стек технологий, уверенно обращается с Git, командной строкой, самостоятельно и в срок решает поставленные задачи.

Кроме того, Middle — это командный игрок, который может и чужой код прочесть, и дельное замечание по нему сделать, если требуется.

Где-то между джуном и мидлом есть ещё так называемые «уверенные джуны», но это, скорее, не промежуточный этап, а просто попытка компаний оставить уже обросшего опытом специалиста на позиции и зарплате Junior-разработчика. Как только почувствовали, что знаете и можете гораздо больше, чем джун, сразу же обсудите это с руководством.

Senior разработчик

Вот он, гвоздь программы, способный взять на себя проект и даже руководить отдельным подразделением. Senior Developer обладает обширным багажом знаний, способен стать ментором для Trainee или Junior разработчика, а также улучшать эффективность команды за счёт реализации своих идей.

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

Завышены ли сегодня требования к Senior-разработчикам?

Что должен знать и уметь сеньор разработчик?

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

Довольно обобщённые советы, не правда ли? Что ж, попытаемся их структурировать и раскрыть подробнее.

1. Технические навыки

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

Перед началом работы всегда спрашивайте себя:

  1. Можно ли разбить таск на подзадачи, и если да, то как?
  2. Какой подход к решению этой задачи наиболее оптимален?
  3. Смогу ли я подключить других сотрудников, и как в таком случае организовать рабочий процесс?

Если для решения проблемы нужно освоить новую СУБД, фреймворк или сторонний сервис, вы осваиваете это.

Но что реально отличает сеньора от остальных, так это опыт поддержки проектов, даже если речь идёт о всеми забытом и припорошенном пылью легаси коде.

Кроме того, чтобы думать, как Senior, нужно расширять способы обработки информации. В этом поможет книга Иана Макдермотта и Джозефа О`Коннора «Искусство системного мышления». Также есть краткая выжимка основных мыслей в формате аудиокниги:

2. Коммуникативные навыки

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

Как вы уже поняли, сеньоры часто ведут проекты самостоятельно, поэтому очень важно уметь обрабатывать ТЗ заказчика, задавать правильные вопросы, которые выльются в исчерпывающие ответы, устанавливать сроки выполнения и выстраивать план работ. Разумеется, проджект-менеджеров никто не отменял, но в идеале старший разработчик может справляться и без их помощи.

А ещё программирование — это почти всегда работа в команде, поэтому нужно уметь организовать процесс, отталкиваясь от навыков и запросов других сотрудников. Вы должны быть на «ты» с гибкими методологиями разработки, и такие термины, как Agile, Scrum и Kanban, не должны вас пугать.

3. Навыки ментора и интервьюера

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

Нелишним будет прочесть книги «HBR Guide. Эмоциональный интеллект» и «Как разговаривать с кем угодно, когда угодно и где угодно».

4. Навыки профессионального роста

Если вы думаете, что дослужитесь до звания Senior Developer и закончите на этом свой учебный путь, вы ошибаетесь. Старшие разработчики как никто знают, сколь важно постоянно развиваться, осваивая всё новые и новые горизонты. Они никогда не ограничиваются одним набором инструментов, ведь в погоне за оптимизацией рабочего процесса так или иначе приходится обращаться к чему-то новому.

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

Принципиальная разница между джуном и сеньором в том, что первый, как правило, воспринимает обучение как обязаловку, в то время как второй видит в этом ценную необходимость, ключ от закрытых дверей.

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

5. Навыки работы с сообществом

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

Иными словами, Senior разработчик не закрывается в своём рабочем пространстве, втихую накапливая знания и скрывая их от остальных. Скорее, это те самые гуру, раздающие дельные советы на Stack Overflow. Они любят делиться своим опытом, так как это:

  • помогает взращивать новые поколения талантливых разработчиков и способствует развитию IT в целом;
  • в ходе общения позволяет почерпнуть полезную информацию и от самого сообщества.

Вместо эпилога

Всё сказанное уже сказано, поэтому просто держите несколько дополнительных материалов, чтобы лучше понять, как стать Senior разработчиком: