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

Как всё успевать и находить время на обучение: хорошие привычки разработчика

Артём Кротов
Артём Кротов

Руководитель направления развития гибких практик в Мир Plat.form (ИТ-команда Национальной системы платежных карт)

Друзья, привет! Меня зовут Артём Кротов, я работаю в Мир Plat.Form в команде Системы быстрых платежей. На рынке разработки с 2007 года, часто проходил интервью в разных компаниях. А за последние три года также провёл несколько десятков собеседований разработчиков.

Hard skills уделено много внимания в тематических СМИ. Синтаксис, API, основные фреймворки и концепции, сопутствующие технологии и так далее. Soft skills же обычно вниманием обделяют. Считают, что «второстепенные» навыки можно опустить, так как на текущем рынке найма разработчиков спрос превалирует над предложением.

Хочу в своей статье исправить это. Я считаю, что именно soft skills помогают развиваться, следовать вызовам современного мира и находиться всегда «в рынке». И не в ущерб личной жизни и другим увлечениям. Ко Дню программиста (13 сентября) я решил выпустить статью, где собрал привычки, на которые стоит обратить внимание начинающим разработчикам и их более опытным товарищам.

Где найти время на развитие?

В сети можно найти много списков и советов на тему того, что можно изучить и какие знания стоит получить в XXI-веке. Но многие скажут «У меня нет на это времени» и будут правы. Поэтому сегодня мы начнём обзор именно с невосполнимого ресурса — времени.

Начать стоит с Первого Закона Паркинсона:

Работа заполняет всё время, отпущенное на неё.

Работа никогда не кончится, за одной законченной задачей будет две новые. А после них — ещё десяток. Часто в современных компаниях у каждого сотрудника есть очередь задач, аккуратно составленная менеджерами. Если вы потратите на работу 40, 60, 80 часов в неделю, её меньше не станет.

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

Ваша долгосрочная цель — работать в таком ритме бесконечно долго. И чтобы на вашу скорость можно было положиться в долгосрочных прогнозах. Если не работать на износ, то всегда есть запас сил. Его можно мобилизовать в случае экстренной ситуации.  Например, для hot fix.

Что делать?

Ещё одна привычка разработчика — выполнять по одной задаче за промежуток времени. Или доводить большую задачу до логического места остановки. Думаю, многие знают, что переключение контекста как для современных ЦПУ не бесплатно. То же верно и для людей. Стоит отвлечься на сообщение в чате — и возвращаешься к работе только через 20-30 минут.  Сам себя на таком ловил, а вы?;)

Чтобы сфокусироваться на одной задаче, пользуйтесь техникой Томато. Она позволяет равными промежутками разделить свое рабочее время и планировать перерывы. Например, пишем код три раза по 25 минут, 20 минут пьём чай/кофе и проверяем почту/мессенджеры.

Как я уже указал выше, у нас часто есть очередь задач, которые мы должны сделать. Многие из них имеют дедлайны. Я рекомендую упорядочить задачи в плоский список, который поможет вам визуализировать их.  Если список плоский, с ним просто работать. Сделала задачу — возьми из списка следующую. Прилетела новая задача — определи ей место в списке, сдвинув менее важные.

А что дальше?

Представим, что вы избегаете переработок, берёте задачи из плоского упорядоченного списка и выполняете их по технике Томато…  Все поступающие запросы вы помещаете в свой список, согласно их срочности. Скорее всего, так у вас появится свободное время, пусть даже 20 минут в день (~ 6 часов в месяц). Их вы можете потратить на:

Автоматизацию текущей работы

Она позволяет высвободить ещё больше времени на обучение без ущерба текущим задачам. Разработчики могут сами себе создавать «скрипты» и «тулзы», использовать инструменты CI/CD, автоматизировать отчеты для менеджмента и так далее. Думаю, у каждого есть такие задачи: довольно простые, но периодические отнимают время.

Совершенствование hard skills «вширь»

Начните изучать новый язык программирования или платформу. Если вы пишите для бэка, начните изучать фронтенд или мобильную разработку. Также полезно изучать инструменты для автоматизации инфраструктуры. Посмотрите, какие технологии и навыки у ваших коллег по команде — это первые кандидаты на освоение!

Изучение английского языка (или любого другого)

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

Отработку инженерных навыков

Такие навыки, как разработка через тестирование (TDD) или хорошие тесты требуют усердия. Они кратно ускоряют скорость и качество разработки, но только тогда, когда становятся «привычками», о которых разработчик не задумывается.

Публичные выступления

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

Занятия спортом

Пусть для начала это будет катание на велосипеде 2 раза в неделю или отжимания перед обедом. Главное регулярность.

Чтение книг

Многие предпочитают получать информацию из бесплатных статей, целью которых является реклама чего-либо. Это неплохой источник, но полные и фундаментальные знания вам даст только хорошая книга, потому что вы её уже купили и у неё нет цели что-то ещё продать вам кроме ценных знаний. Я практикую прослушивание аудиокниг во время бега, что позволяет совместить полезное с полезным 😉

Пока рынок разработки и в целом рынок ИТ-специалистов далёк от переизбытка кандидатов. Найдутся компании, которые возьмут хорошего разработчика несмотря на его слабые soft skills. Но ситуация меняется, компании переходят к модели самоорганизованных команд, где требуется работа в группе и фокусирование на самых важных бизнес-задачах.

Также если не обращать внимание на развитие soft skills, то компенсация может очень быстро приблизиться к некой асимптоте (часто наклонной только из-за инфляции), но не пересекать её. Преодолеть эту асимптоту и качественно повысить свой уровень компенсации можно, перейдя на позицию эксперта, узнаваемого за рамками организации, тимлида или руководителя проекта. Во всех этих ролях soft skills занимают важную часть каждодневной работы.

Развиваться или нет — это ответственность каждого, и как говорил доктор Уильям Эдвардс Деминг: «Вы не обязаны меняться. Выживание — дело добровольное».