5 качеств и 20 советов: формула старшего разработчика

Рынок труда в области IT находится на подъёме, даже несмотря на кризис; особенно нужны старшие разработчики или, как говорят в IT, senior-разработчики. Постоянная востребованность на рынке, высокие зарплаты, по-настоящему сложные и серьёзные задачи, уважение коллег по индустрии — неизменные атрибуты senior-ов. Что нужно сделать, чтобы стать senior-ом? Какими навыками нужно обладать? Как можно стать лучшим в своей работе и гордиться ею? Про эти и многие другие вопросы мы пообщались со старшими разработчиками Noveo и выделили для вас 5 качеств и 20 самых полезных советов, которые помогут и вам стать старшим разработчиком.

Какие качества отличают старшего разработчика?

  1. Умение видеть систему “сверху” и иметь широкий взгляд на проект. Любой проект разрабатывается для того, чтобы решать какие-то бизнес-цели, и верным признаком старшего разработчика будет то, что он может видеть в системе не только модули и классы, но и бизнес-процессы, и участвующих в них людей — пользователей системы. Это обязательно при планировании архитектуры проекта.
  2. Высокая степень ответственности. Ответственность проявляется не только в качественном выполнении своих задач, но и в готовности брать на себя ответственность за проект в целом: увидеть возможные проблемы и узкие места, по возможности оптимизировать работу системы, а если такой возможности нет, то своевременно обозначить проблемы руководству и предложить возможные пути решения.
  3. Умение донести своё мнение. Зачастую senior-разработчик не только пишет код, но и выполняет обязанности тимлида. Помимо этого, на нём нередко лежит задача контроля и обучения других разработчиков, введения новичков на проекте в курс дела, проведения code review и т.п. Всё это требует определённых коммуникативных навыков и способности донести свою точку зрения. Мало знать правильное решение, нужно уметь обосновать его и разъяснить команде.
  4. Знание стека технологий. Следить за развитием своего стека технологий в постоянно меняющемся IT-ландшафте просто необходимо. Необходимо следить за обновлениями, новым функционалом и версиями, быть в курсе оптимальных решений типовых задач, грамотно использовать их своем коде и рекомендовать команде.
  5. Общая эрудиция, креативность и “гуманитарность”. В первую очередь это касается, конечно, технической эрудиции: знания языков, технологий, умения разворачивать проекты или настраивать рабочую среду. Однако старшему разработчику, да и вообще любым разработчикам надо помнить, что для машины нет таких понятий, как удобство или красота, технологии вообще вынуждены подстраиваться под человеческую ограниченность и несовершенство. Способность увидеть нетипичные решения, привнести свой опыт из реального мира, будь то хобби, увлечение или просто привычка узнавать новое, в реализацию разрабатываемого решения очень сильно помогает в разработке.2

Что нужно делать, чтобы дорасти до senior-а?

  1. Писать код. Очень много кода: некоторые вещи приходят только с опытом. Большим плюсом будет разнообразие, и чем больше разных проектов — тем лучше. Полезным будет участие в больших проектах, бесценный опыт принесет работа с высоконагруженными системами. Тут нужно отметить, что в продуктовых компаниях, где команда годами работает над одним проектом, не требуется быть в курсе многих разных вещей, нужно знать проект и свой фронт задач, но знать его очень хорошо. В таких компаниях, как Noveo, всегда есть разноплановые задачи и возможность попробовать себя в том, чем раньше не занимался, тут пригодится знание различных языков и платформ. «Каждому, конечно, свое, но разнообразие — это очень большой плюс, потому что позволяет узнавать что-то новое, оставаясь в той же команде,» — делится впечатлениями наш разработчик.
  2. Работать в сильной команде. Профессионально расти можно только тогда, когда ты тянешься за кем-то, кто умнее и опытнее, причём гораздо лучше, если это не Стив Джобс или Бьорн Страуструп, а кто-то из твоих коллег. Включается мотивация не подводить тех, кто тебя ценит. Необходимо общаться внутри команды. Если ты крутишься в своих мыслях, то не сможешь получать новые идеи и точки зрения, быстро находить самые эффективные решения. Необходимо обсуждать задачи и проблемы, спрашивать, учиться.
  3. Копить готовые решения. Чем больше у тебя готовых решений для различных проблем и задач, тем более ты ценен как специалист, тем быстрее ты работаешь.
  4. Всегда видеть вызов в решаемых задачах. Профессионал — это не тот, кто делает только интересную работу, а тот, кто любую работу сможет сделать для себя интересной.
  5. Преподавать. Преподавание отлично помогает уложить материал в голове, найти пробелы в собственных знаниях. Отвечая на вопросы учеников, ты доходишь до мыслей, которые едва ли пришли бы в твою голову просто так. Необходимость аргументировать свою позицию также очень здорово развивает и коммуникационные навыки, столь необходимые в эффективной командной работе.
  6. Иметь стек справочных ресурсов. Если составить стек справочных ресурсов, то потом не придётся срочно искать информацию где попало. Невозможно знать и помнить абсолютно всё, но это и не требуется, если ты знаешь, где найти нужную тебе информацию. Накопив стек ресурсов (книг, сайтов, форумов) с хорошими материалами по различным технологиям, ты сможешь в разы ускорить свою работу.
  7. Быть в курсе событий в мире IT. Языки и технологии постоянно меняются, выходят новые версии, появляются новые подходы. Хороший разработчик должен “вариться в этом” и быть в курсе всех последних событий. Есть разные способы сделать это — участвовать в конференциях, проходить сертификации и мастер-классы, общаться с людьми, читать тематические форумы. Каждый из них имеет свои преимущества и недостатки, но суть не меняется: обо всех последних изменениях необходимо знать.
  8. Экспериментировать. Новые идеи и подходы необходимо проверять на практике — это единственный способ понять, чего они стоят. Чтобы что-то построить, надо 10 раз что-то сломать. Правда, лучше это делать не на продакшене у заказчика и не за день до релиза. 😉 Но в общем бывает очень полезно задействовать свою креативность.
  9. Знать горячие клавиши и делать максимум с помощью клавиатуры. Ну и в целом — оптимизировать свои рабочие процессы. Сюда же относится и десятипальцевый метод печати. Ты просто начнёшь всё делать быстрее, иногда в разы.
  10. Хорошо разбираться с инструментами. IDE, отладчик и работа в командной строке будут отличным подспорьем для повышения эффективности!
  11. Выучить английский. Это полезно любому разработчику, но для senior-а просто обязательно, в т.ч. навыки разговорной речи. Причин тому множество: от того, что бОльшая часть интересных статей, стоящих конференций и книг выходит на английском, до того, что письма и спецификации на твоём проекте могут быть только на этом языке, а заказчики, с которыми в Noveo регулярно созваниваются, могут не знать ни слова по-русски.
  12. Быть гибким. Senior-разработчик должен помнить, что всё меняется, и быть готов изменить собственное мнение. «Если ты был прав год назад — это совсем не значит, что ты прав и сейчас». Нужно признавать свои ошибки. Часто люди этого не делают из-за самомнения и страха потерять авторитет, и это неправильно. Нужно уметь не только исправить последствия своей ошибки, но и признать, что ты был не прав.
  13. Отдыхать. Если всё время занимаешься чем-то одним — быстро перегораешь. И наоборот, если отвлекаешься, то после возвращения работаешь более эффективно. Это касается вообще любого программиста. Очень полезно путешествовать: это не только расширяет кругозор, но и помогает взглянуть на привычные вещи и вопросы под другим углом. Очень круто заниматься спортом. А вообще полезны любые хобби.
  14. Не только брать, но и отдавать. И не только потому, что это само по себе здорово, но и с вполне корыстной целью — проверить, насколько твой код хорош и полезен для других людей. Это может быть аккаунт с opensource-кодом на GitHub или ответы и рекомендации на тематических сайтах вроде StackOverflow.3

Ну и напоследок — чего делать не стоит:

  1. Останавливаться на достигнутом. Даже если достигнуто многое.
  2. «Как попало нельзя писать никогда!»
  3. Бояться ошибиться. Увы, за исключением очевидных случаев, учатся только на собственных ошибках.
  4. Писать код дома! Давайте мозгу отдохнуть.
  5. Ставить кружку чая или кофе рядом с рабочим ноутбуком! 🙂
  6. rm -rf /

За материал выражаем благодарность международной IT-компании Noveo.