[Об авторе: Соломон Амар — глава международной компании AllStars-IT, специалист по разработке программного обеспечения с
Итак, вы — senior-девелопер. Успех и пик карьерного роста. Можно выдохнуть и получать удовольствие от своей позиции и зарплаты. Или нет?..
Почти тринадцать лет назад я основал аутстаффинговую компанию AllStars-IT. Мне приходилось много работать со специалистами разных уровней, у каждого были свои цели, задачи, «зоны роста». За эти годы я видел много разных рецептов успеха, но на деле все сводится к одному: чем выше вы поднимаетесь по карьерной лестнице, тем более важную роль будут играть ваши hard и soft скиллы.
В этой статье я хочу поделиться своим опытом прокачки навыков именно senior-разработчиков, ведь для них экспертиза — решающий фактор успешности.
Старший разработчик — кто он на самом деле?
Давайте начнем с того, кто же он — старший разработчик. Прежде всего, это эксперт, опытный и знающий, способный выполнять безупречно как свою работу, так и помогать менее опытным членам команды. К примеру, тимлид может себе позволить что-то знать не слишком углубленно, ибо его первостепенная задача — организовывать работу людей, но хороший senior должен быть командным экспертом.
Старший разработчик должен уметь решать сложные задачи самостоятельно, а также, помимо написания безупречного кода, контролировать junior- и middle-девелоперов.
Не менее важно помнить, что senior — всегда командный игрок. На таком уровне излишний индивидуализм может подорвать работу всей команды. Старшему разработчику нельзя простить неумение или нежелание адаптировать свою работу к требованиям клиента. При этом senior-девелопер никогда не пытается поднять проект самостоятельно. Он много общается как внутри команды, так и с коллегами из других компаний, специалистами разных сфер. Он имеет авторитет, а значит в какой-то мере должен быть лидером, поэтому ему важно определить сильные и слабые стороны коллег и налаживать командную работу.
Зачем сеньору мотивация?
Предположим, у вас уже более-менее прокачаны эти навыки, и вам и так хорошо живется. Возникает вопрос: зачем что-то менять? Если вы так думаете, то очень скоро вас обойдут молодые мидлы, и именно им будут доставаться лучшие проекты. Глядя на них, коллеги вскоре удивятся, почему вы называетесь гордым словом «сеньор».
Важно помнить: никто не будет платить вам больше за выполнение стандартных обязанностей. Чтобы попросить больше, нужно взять на себя ответственность, придумать нестандартное решение, взяться за сложнейший проект и т. д.
Что потом?
Прежде чем работать над прокачкой навыков, определитесь с направлением. Нравится кодить по-настоящему сложные вещи — выбирайте инженерное; душа лежит к обучению новичков и управлению — двигайтесь в сторону менеджмента.
Если остановились на инженерном направлении (хотите стать архитектором, консультантом) — делайте упор на технические знания, изучайте фреймворки, шаблоны, ЯП, архитектурные подходы. Стремитесь к тому, чтобы стать человеком, имя которого приходит на ум, когда необходимо решить проблему.
Если выбрали менеджмент (хотите стать руководителем, продажником) — работайте над soft skills, и в особенности над теми, которые нужны для управленческой работы.
Скилл скиллу — рознь
Hard Skills прокачиваются легче, ведь у вас уже есть background — знания, которые вы получили, решая задачи на прошлых проектах.
Тем лучше, если они были разнообразными. Кроме того, у девелоперов изначально инженерный склад ума, соответствующее образование и годы опыта за спиной, поэтому новые технические знания им усваивать легче. Хотя в данном контексте я бы дал несколько советов:
- Разбирайтесь в исходных кодах (Linux Kernel, U-Boot, Xen и т. д.).Читайте документацию из первоисточников — на процессоры, микросхемы, SoC, man’ы ядра и т. д.
- Общайтесь с коллегами, заказчиками, инженерами из open source сообществ.А еще участвуйте в хакатонах. Если вам повезло и вас окружают люди, у которых можно поучиться, не стесняйтесь и всецело используйте эту возможность. У каждого программиста есть знания в своей области, общаясь вы прокачиваете свои hard skills именно в ней.
- Изучайте новые технологии.В этом помогут рейтинги Red Monk, IEEE Spectrum, Tiobe. Мир технологий турбулентен. Бумят новые тренды, их важно отслеживать, чтобы однажды не остаться за бортом. Сегодня кодим на JavaScript, PHP и Python, а через 10 лет появятся совершенно другие языки, и переучиться будет уже задачей совсем другого уровня сложности. Как пример, сегодня Internet of Things поднимает позиции ассемблера, а Big Data в тренде уже который год, и все большей популярностью пользуется язык R.
- Почитывайте IT-ресурсы.Это полезно и для саморазвития, и для отслеживания тенденций. Из русскоязычных я посоветовал бы Хабр. Среди западных — TechCrunch, Stack Overflow, Hacker News, Coursera (полезная площадка не только для новичков, но и опытных).
- Попробуйте углубиться в то, за что не берутся ваши коллеги.Хороший способ укрепить репутацию как внутри компании, так и на внешнем рынке. Найдите область, досконально разберитесь в ней и предлагайте коллегам свою помощь. Информация быстро распространится, и вы станете более важным членом команды, что непременно будет отмечено менеджерами.
У многих возникают трудности именно с развитием Soft Skills. Это умение общаться, уверенный английский, тайм-менеджмент, ресурс-менеджмент, общая эрудиция. Как правило, эти навыки не даются малой кровью, на их обретение придется выложить массу времени и усилий, но оно того стоит.
Soft Skills нужны по мере «взросления» специалиста. Они позволят быстро продвигаться вверх по карьерной лестнице.
Развивайте Soft Skills
Ни для кого не секрет, что украинская IT-индустрия держится на аутсорсе. Поэтому у senior-девелоперов недостаточно возможностей прокачивать навыки общения с клиентами — для этого существуют целые штаты PM-в и других менеджеров. Чтобы выучить иностранный язык, выработать организаторские способности или побороть страх выступать перед публикой, нужно иметь большое желание и упорство. Здесь очень многое зависит от практики, поэтому необходимо, чтобы на вашем месте работы была возможность эту практику получать.
В аутстаффинге дела обстоят по-другому — разработчики общаются с заказчиками напрямую. Основав AllStars-IT в Израиле, я понял: в этой бизнес-модели девелопер просто вынужден выходить из зоны комфорта и применять soft skills. Именно это гарантирует его быстрый рост.
Путешествуйте.В нашей компании девелоперы часто ездят в командировки. Деловые поездки расширяют кругозор и способствуют знакомствам, а еще прокачивают английский. Во время рабочих встреч — технический, за ужинами — разговорный. Кроме того, командировки развивают остальные soft skills: умение общаться, выступать перед публикой и т. д.
Посещайте тренинги и курсы.Во время технических конференций senior-девелоперам зачастую скучно: много воды, ничего нового, учитывая уровень их экспертизы. Поэтому не пожалейте сил на то, чтобы найти те, которые вам на самом деле интересны. Если таких мало, обратите внимание на тренинги по гибким навыкам.
Опытные коучи дадут полезные лайфхаки по тайм-менеджменту, лидерству и карьерному росту. Не забывайте улучшать свой английский, поскольку он может расширить круг экспертизы. К примеру, уроки бизнес-английского важны разработчикам, которых часто привлекают в pre-sale activity.
Обрастайте знакомствами.По опыту знаю, что в Израиле IT-индустрия очень динамична. Все знают друг друга, передают контакты, советуют заказчикам хороших разработчиков. В профессионалах заинтересованы все. Эти правила действуют везде. К тому же новые друзья могут стать мотивацией к личностному росту. Общение с незнакомыми людьми развивает умение грамотно излагать мысли, адаптироваться к новым условиям и правильно «продавать» себя.
Проявляйте инициативу.Помните, вначале я говорил о молодых мидлах? Выигрывает тот, кто берет на себя ответственность и доводит дело до конца — тайтлы здесь почти ничего не значат. В любом случае на старшего разработчика ложится бремя лидерства, и успех зависит от того, насколько хорошо он с ним справится. Инициативный человек обычно работает эффективнее остальных, так как чувствует личную вовлеченность и ответственность за результат. Для вас же инициатива — это стимул выйти за пределы зоны комфорта и прокачать свои лидерские качества.
Делитесь знаниями.Хорошего разработчика отличает способность делиться приобретенными знаниями и опытом. Без криков, унижений и самоутверждения. Для сеньоров это особенно важно, ведь они самые опытные в команде. В идеале у такого человека должна существовать некая внутренняя потребность в передаче знаний, которая с опытом лишь усиливается. Хоть многим кажется, что это лишнее, есть и более ощутимые выгоды от преподавания, которые не сразу приходят на ум:
- Вы лучше осознаете, что сложно дается другим, а что легко.
- Отвечая на сложные вопросы, вы подготовитесь к возможным «граблям» в собственной работе.
- Постоянное повторение теории вам поможет легко проходить собеседования на новые проекты.
- Люди, которые прошли через вашу «школу», будут благодарны и уверены в вашей компетенции, а значит охотно посоветуют именно вас своим знакомым.
Совет: даже если вы никогда не питали интереса к преподаванию, это хороший способ повысить свой профессиональный уровень и авторитет.
Выводы
Senior-девелоперам учиться никогда не будет лишним. Чем больше узнаешь, тем больше осознаешь, сколько всего еще не знаешь. При этом, старшие программисты с сильными soft skills более востребованы на рынке труда, что сказывается как на их доходах, так и на дальнейшем продвижении.
Главный совет, который я хочу дать: если вам интересно развиваться в менеджерском направлении, но чувствуете, что не хватает soft skills — выбирайте компанию с аутстаффинговой моделью работы. Там вы быстрее разговоритесь, научитесь презентовать продукт клиенту и организовывать свою команду.
Бонус для тех, кто дочитал
- Career Advancement for Software Developers — здесь можно прочитать более подробно о полезных для хорошего разработчика навыках. Все это изложено на примерах, взятых из личного опыта автора блога Питера Лайонса.
- Web Development Blogs to Level up Your Skills — для тех, кто любит черпать опыт из личных блогов разработчиков. Здесь определенно можно найти интересные советы и идеи на любой вкус и по всем направлениям.
- The Conjoined Triangles of Senior-Level Development — статья о том, кто же такие сеньоры и чем они отличаются от других членов команды.