Релокейт-опрос 2017 (для тех, кто уже уехал). Собрано более 1500 анкет.
×Закрыть

Как senior-девелоперу улучшить свои навыки и расширить экспертизу

[Об авторе: Соломон Амар — глава международной компании AllStars-IT, специалист по разработке программного обеспечения с 18-летним стажем]

Итак, вы — 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 — статья о том, кто же такие сеньоры и чем они отличаются от других членов команды.

51 комментарий

Подписаться на комментарииОтписаться от комментариев Комментарии могут оставлять только пользователи с подтвержденными аккаунтами.

>>> man’ы ядра
...
похоже не быть мне синьором, ну никак не могу найти man’ы ядра

Дуже хороша стаття для дуже молодих)

Разбирайтесь в исходных кодах (Linux Kernel, U-Boot, Xen и т. д.).

Вот зачем сеньору в еще одном говнокоде ковырятся? Ии вы думаете что опенсорсный говнокод чемто принципиально отличается от говнокода не опенсорсного?

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

изучайте фреймворки, шаблоны, ЯП, архитектурные подходы.

ЯП — ЯПлакалъ? Як саме він допоможе?

типа тролль?) или программист, у которого яп ассоциируется не с программированием в первую очередь?

Утрируя, краткое резюме: «после 5-7 лет опыта программинга вы никому не нужны в аутсосре, как программист».

Подмена понятий и манипуляция налицо причем в одном абзаце. Вначале автор пишет общепринятые вещи:

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

затем немного приваливает командной работой сеньйора

Старший разработчик должен уметь решать сложные задачи самостоятельно, а также, помимо написания безупречного кода, контролировать junior- и middle-девелоперов.

а под конец

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

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

Разбирайтесь в исходных кодах (Linux Kernel, U-Boot, Xen и т. д.)
Дальше можно не читать.

Была уже похожая манипулятивная статья, где на сеньора пытались навесить все возможные обязанности, но там вполне резво произошел разбор полетов в комментариях: dou.ua/...​lenta/articles/seniority

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

возможно, вы обманываете не только нас

Вы взрослый человек и вам должно быть виднее, насколько это приемлемо — выдвигать подобные обвинения без каких бы то ни было оснований. Я прекрасно понимаю, что открытость и вседозволенность интернет-общения накладывает свой отпечаток, но подобными высказываниями вы резко снижаете свою ценность как здравого собеседника.

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

Это не обман ) А создание мотивации для тех кто ещё не в теме ) Каждый видит то что видит, а не то что показывают )

слишком тонко для моего сита оккама

Дабы не задевать долгую и беспощадную дискуссию в которой вряд ли родится истина, прошу вас обратить внимание на этот комментарий Владислава Фурдака dou.ua/...​rticles/seniority/#896959, который уловил и мою мысль в том числе.

Якщо у Вас в руках молоток, то Ви і шукаєте лише цвяхи.
Задача як менеджера так і тімліда розвивати свою команду і виростити собі заміну, щоб мати можливість рости далі самому, або як мінімум щоб спокійно піти у відпустку на 2 неділі.

А на рахунок читати сорс код опен сорс проектів... Це не тільки допомогає рости самому, а й помогає рости комюніті. Я Frontend TeamLead на проекті і в команді рекомендую читати сорс код angular-а, ionic-a (все відносно до спеціалізаціі, автор статті рекомендує читати Linux через специфіку досвіду) і тоді якість документації цих проектів для команди не проблема, не проблема й піти пофіксити баг на гітхабі або заріквестити фічу, отримати апрув і зробити PR.
По досвіду знаю, що люди які таке роблять за рік півтора здатні міняти тайтл і рости дуже швидко в технічному плані.

Стаття саме так і називається — «як розширити кругозір». Інше вже питання, що хтось не хоче покласти молоток бо понятно як ним шукати маніпуляції ;)

Я Frontend TeamLead на проекті і в команді рекомендую читати сорс код angular-а, ionic-a

У вас там у фронтендеров работы что ли нет? UX идеален? UI не ползет в IE11?

Читать сорсы, по моему опыту, полезно когда нужно уточнить как поведет себя фреймворк в какой-то ситуации, которая не описана в доках. Или когда есть сомнения относительно того, как работает тот или иной параметр. Такое чтение оставляет след в мозгу. А вот абстрактное «читать сорцы» — разве что как средство от бессонницы пойдет. Особенно когда мы говорим о сорцах современных проектов с кучей уровней абстракции.

читать сорцы друг-другу вечерами. с чувством, с интонацией. можно даже пытаться рифмовать

— Доктор, у меня профдеформация.

... Абстрактно дихати повітрям також допомагає від безсоння. Спробуйте подумати наступний раз перш ніж писати «читати якщо треба поведінку дізнатись». Жесть...

ІЕ11 — сказка після ІЕ6. Так що не говоріть дурниць.

Аргументы будут или так, воздух посотрясать? При чем здесь IE6, который уже много лет как не актуален?

Не вижу противоречий. Тим лид ставит процесс разработки и налаживает командную работу, а senior занимается design / code review того, что напедалили мидлы и джуны.

Разбирайтесь в исходных кодах (Linux Kernel, U-Boot, Xen и т. д.). Читайте документацию из первоисточников — на процессоры, микросхемы, SoC, man’ы ядра и т. д.

wtf_am_i_reading.jpeg

Автор статьи, вероятно, забыл уточнить, что речь о senior «системщике» или embedded разработчике. «Прикладникам» вышеперечисленное, действительно, в 99,9% случаев никогда не понадобится.

Уже было недавно на ДОУ — и жнец и на дуде игрец за тот же прайс.

вообще как по мне у сеньора (девелопер), есть только возможность расти только на фрилансе. иначе свич либо в менеджмент либо в архитекты

но речь же про рост навыков, а не о смене профессии

Вот и я о чем, в тепличных условиях мастером не стать

ох уже эти рассказы как стать крутым программистом от людей, которые программистами никогда не были

Зачем ставить во главу угла карьеру? Менеджеры заметят, больше платить будут? И во внимании менеджеров и в оплате есть потолок — когда все привыкли что ты супер-крутой (и этим уже не удивишь) и когда платить больше просто экономически нецелесообразно. И что после?

Мне кажется, что должен всё-таки быть интерес к тому чем занимаешься, а не загоняться чтобы тебя заметил менеджер. То есть идеально когда работаешь за нормальные деньги, которых на всё в-принципе хватает (в меру конечно, речь не о яхтах-ламборгини, но просто о достойном уровне жизни) и делаешь работу потому что это интересно и нужно. А иначе не получится, выгоришь куда раньше чем станешь сеньор-суперстаром.

все привыкли что ты супер-крутой (и этим уже не удивишь) и когда платить больше просто экономически нецелесообразно. И что после?

Если разговор про деньги, то идешь в контракторы на 500$ в час. Про большее я не фантазировал.

Картинка классная

Итак, вы — senior-девелопер. Успех и пик карьерного роста.
[....]
Soft Skills нужны по мере «взросления» специалиста. Они позволят быстро продвигаться вверх по карьерной лестнице.

уууууууууууууу!!

Больше лижешь дальше едешь а вы как думали «вверх по карьерной лестнице»?

а вы как думали «вверх по карьерной лестнице»?

through unspeakable acts

та нє, я про очевидне протиріччя

просто, як прочитав то мені всі софтскіли відтяло

а вы как думали «вверх по карьерной лестнице»

через постель

єй детка, хочешь покататься на моем социальном лифте?

и все большей популярностью пользуется язык R.

Вот кстати раньше, мне кажется, было популярно мнение, что нет разницы, на чем работать дата сайентисту — на R или Python, а в последнее время я все чаще слышу, что Python более предпочтителен, потому что он быстрее и для него ML-библиотеки выходят раньше, чем аналоги для R.

Попробуйте углубиться в то, за что не берутся ваши коллеги. Хороший способ укрепить репутацию как внутри компании, так и на внешнем рынке. Найдите область, досконально разберитесь в ней и предлагайте коллегам свою помощь. Информация быстро распространится, и вы станете более важным членом команды, что непременно будет отмечено менеджерами.
Забули нагадати, що всі на проекті знатимуть, що Ви знаєте якусь область (а зачасту і не одну при такому підході) краще за всіх, і кожен приходитиме просити допомоги, коли в нього щось не виходитиме з того, що входить в область Вашої експертизи.
Кожне таке прохання відбиратиме у Вас від 10 хвилин до півгодини, а то і більше, в результаті Ваші власні задачі залишатимуться «на потім», і замість восьми годин можна буде просидіти в офісі всі дванадцять, додамо до цього час на освоєння:
Разбирайтесь в исходных кодах (Linux Kernel, U-Boot, Xen и т. д.).
Читайте документацию из первоисточников — на процессоры, микросхемы, SoC, man’ы ядра и т. д.
Общайтесь с коллегами, заказчиками, инженерами из open source сообществ.
Участвуйте в хакатонах.
Изучайте новые технологии
Почитывайте IT-ресурсы.
Додайте до цього також дві години на «добратися до роботи з дому і додому з роботи» — нехай навіть цей час можна використати, щоб читати з телефону технічну літературу.
В результаті непомітно приходимо до того, що на протязі робочого тижня ні на що, крім роботи, часу не знайдеться.

Я одразу вибачаюся за свою українську, користуюся словником. Нажаль, реалії такі, що потрібно зробити такий собі важкий «квантовий стрибок». Тобто треба отпимізувати максимально своє життя, щоб перейти на інший рівень. Був би радий, але не можу запропонувати як хакнути закони часу та буття :)

Интересная статья, вот только что если на типичной галере (аутсорс, аутстаф) разраб вырастает и по софт и по хард скилам, что уже упирается в потолок на своем месте/проекте. потребность в реализации своих софт скилов растет, но что делать? я вижу ситуацию так: переходить в менеджмент (сейли, пм-ы) разрабу смысла особо нету (у нас), платят меньше, конкуренция больше, набивать опыт с нуля долго. Остается или тим-лидинг на той же галере или преподавать параллельно с работой или уходить с головой в управление бизнесом/партнерство/фриланс, что позволит и сохранить/увеличить зп и реализовать/развить свои софт скилс.

И такой вариант развития событий имеет право на существование.

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

Благодарю за добрые слова :)

смущает фраза в заголовке: «расширить экспертизу», скорее все это неправильный перевод слова expertise, которое имеет имеет несколько значений, в том числе «знания и опыт, компетентность»

Спасибо за ваше замечание. Я мог не совсем корректно использовать этот сленг, но думаю, что суть осталась понятной.

Подписаться на комментарии