5 качеств и 20 советов: формула старшего разработчика
15К открытий15К показов
Рынок труда в области IT находится на подъёме, даже несмотря на кризис; особенно нужны старшие разработчики или, как говорят в IT, senior-разработчики. Постоянная востребованность на рынке, высокие зарплаты, по-настоящему сложные и серьёзные задачи, уважение коллег по индустрии — неизменные атрибуты senior-ов. Что нужно сделать, чтобы стать senior-ом? Какими навыками нужно обладать? Как можно стать лучшим в своей работе и гордиться ею? Про эти и многие другие вопросы мы пообщались со старшими разработчиками Noveo и выделили для вас 5 качеств и 20 самых полезных советов, которые помогут и вам стать старшим разработчиком.
Какие качества отличают старшего разработчика?
- Умение видеть систему «сверху» и иметь широкий взгляд на проект. Любой проект разрабатывается для того, чтобы решать какие-то бизнес-цели, и верным признаком старшего разработчика будет то, что он может видеть в системе не только модули и классы, но и бизнес-процессы, и участвующих в них людей — пользователей системы. Это обязательно при планировании архитектуры проекта.
- Высокая степень ответственности. Ответственность проявляется не только в качественном выполнении своих задач, но и в готовности брать на себя ответственность за проект в целом: увидеть возможные проблемы и узкие места, по возможности оптимизировать работу системы, а если такой возможности нет, то своевременно обозначить проблемы руководству и предложить возможные пути решения.
- Умение донести своё мнение. Зачастую senior-разработчик не только пишет код, но и выполняет обязанности тимлида. Помимо этого, на нём нередко лежит задача контроля и обучения других разработчиков, введения новичков на проекте в курс дела, проведения code review и т.п. Всё это требует определённых коммуникативных навыков и способности донести свою точку зрения. Мало знать правильное решение, нужно уметь обосновать его и разъяснить команде.
- Знание стека технологий. Следить за развитием своего стека технологий в постоянно меняющемся IT-ландшафте просто необходимо. Необходимо следить за обновлениями, новым функционалом и версиями, быть в курсе оптимальных решений типовых задач, грамотно использовать их своем коде и рекомендовать команде.
- Общая эрудиция, креативность и «гуманитарность». В первую очередь это касается, конечно, технической эрудиции: знания языков, технологий, умения разворачивать проекты или настраивать рабочую среду. Однако старшему разработчику, да и вообще любым разработчикам надо помнить, что для машины нет таких понятий, как удобство или красота, технологии вообще вынуждены подстраиваться под человеческую ограниченность и несовершенство. Способность увидеть нетипичные решения, привнести свой опыт из реального мира, будь то хобби, увлечение или просто привычка узнавать новое, в реализацию разрабатываемого решения очень сильно помогает в разработке.
Что нужно делать, чтобы дорасти до senior-а?
- Писать код. Очень много кода: некоторые вещи приходят только с опытом. Большим плюсом будет разнообразие, и чем больше разных проектов — тем лучше. Полезным будет участие в больших проектах, бесценный опыт принесет работа с высоконагруженными системами. Тут нужно отметить, что в продуктовых компаниях, где команда годами работает над одним проектом, не требуется быть в курсе многих разных вещей, нужно знать проект и свой фронт задач, но знать его очень хорошо. В таких компаниях, как Noveo, всегда есть разноплановые задачи и возможность попробовать себя в том, чем раньше не занимался, тут пригодится знание различных языков и платформ. «Каждому, конечно, свое, но разнообразие — это очень большой плюс, потому что позволяет узнавать что-то новое, оставаясь в той же команде,» — делится впечатлениями наш разработчик.
- Работать в сильной команде. Профессионально расти можно только тогда, когда ты тянешься за кем-то, кто умнее и опытнее, причём гораздо лучше, если это не Стив Джобс или Бьорн Страуструп, а кто-то из твоих коллег. Включается мотивация не подводить тех, кто тебя ценит. Необходимо общаться внутри команды. Если ты крутишься в своих мыслях, то не сможешь получать новые идеи и точки зрения, быстро находить самые эффективные решения. Необходимо обсуждать задачи и проблемы, спрашивать, учиться.
- Копить готовые решения. Чем больше у тебя готовых решений для различных проблем и задач, тем более ты ценен как специалист, тем быстрее ты работаешь.
- Всегда видеть вызов в решаемых задачах. Профессионал — это не тот, кто делает только интересную работу, а тот, кто любую работу сможет сделать для себя интересной.
- Преподавать. Преподавание отлично помогает уложить материал в голове, найти пробелы в собственных знаниях. Отвечая на вопросы учеников, ты доходишь до мыслей, которые едва ли пришли бы в твою голову просто так. Необходимость аргументировать свою позицию также очень здорово развивает и коммуникационные навыки, столь необходимые в эффективной командной работе.
- Иметь стек справочных ресурсов. Если составить стек справочных ресурсов, то потом не придётся срочно искать информацию где попало. Невозможно знать и помнить абсолютно всё, но это и не требуется, если ты знаешь, где найти нужную тебе информацию. Накопив стек ресурсов (книг, сайтов, форумов) с хорошими материалами по различным технологиям, ты сможешь в разы ускорить свою работу.
- Быть в курсе событий в мире IT. Языки и технологии постоянно меняются, выходят новые версии, появляются новые подходы. Хороший разработчик должен «вариться в этом» и быть в курсе всех последних событий. Есть разные способы сделать это — участвовать в конференциях, проходить сертификации и мастер-классы, общаться с людьми, читать тематические форумы. Каждый из них имеет свои преимущества и недостатки, но суть не меняется: обо всех последних изменениях необходимо знать.
- Экспериментировать. Новые идеи и подходы необходимо проверять на практике — это единственный способ понять, чего они стоят. Чтобы что-то построить, надо 10 раз что-то сломать. Правда, лучше это делать не на продакшене у заказчика и не за день до релиза ? Но в общем бывает очень полезно задействовать свою креативность.
- Знать горячие клавиши и делать максимум с помощью клавиатуры. Ну и в целом — оптимизировать свои рабочие процессы. Сюда же относится и десятипальцевый метод печати. Ты просто начнёшь всё делать быстрее, иногда в разы.
- Хорошо разбираться с инструментами. IDE, отладчик и работа в командной строке будут отличным подспорьем для повышения эффективности!
- Выучить английский. Это полезно любому разработчику, но для senior-а просто обязательно, в т.ч. навыки разговорной речи. Причин тому множество: от того, что бОльшая часть интересных статей, стоящих конференций и книг выходит на английском, до того, что письма и спецификации на твоём проекте могут быть только на этом языке, а заказчики, с которыми в Noveo регулярно созваниваются, могут не знать ни слова по-русски.
- Быть гибким. Senior-разработчик должен помнить, что всё меняется, и быть готов изменить собственное мнение. «Если ты был прав год назад — это совсем не значит, что ты прав и сейчас». Нужно признавать свои ошибки. Часто люди этого не делают из-за самомнения и страха потерять авторитет, и это неправильно. Нужно уметь не только исправить последствия своей ошибки, но и признать, что ты был не прав.
- Отдыхать. Если всё время занимаешься чем-то одним — быстро перегораешь. И наоборот, если отвлекаешься, то после возвращения работаешь более эффективно. Это касается вообще любого программиста. Очень полезно путешествовать: это не только расширяет кругозор, но и помогает взглянуть на привычные вещи и вопросы под другим углом. Очень круто заниматься спортом. А вообще полезны любые хобби.
- Не только брать, но и отдавать. И не только потому, что это само по себе здорово, но и с вполне корыстной целью — проверить, насколько твой код хорош и полезен для других людей. Это может быть аккаунт с opensource-кодом на GitHub или ответы и рекомендации на тематических сайтах вроде Stack Overflow.
Ну и напоследок — чего делать не стоит:
- Останавливаться на достигнутом. Даже если достигнуто многое.
- «Как попало нельзя писать никогда!»
- Бояться ошибиться. Увы, за исключением очевидных случаев, учатся только на собственных ошибках.
- Писать код дома! Давайте мозгу отдохнуть.
- Ставить кружку чая или кофе рядом с рабочим ноутбуком! ?
- rm -rf /
За материал выражаем благодарность международной IT-компании Noveo.
15К открытий15К показов