От переводчика: эта статья — перевод оригинальной статьи Бара Франека, специалиста по JavaScript. В новом своем материале он решил рассказать, какие навыки помогают разработчику в его ежедневном труде. Но речь не о программных инструментах, а, скорее, ментальных.

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

Skillbox рекомендует: Практический годовой курс «PHP-разработчик с нуля до PRO».
Напоминаем: для всех читателей «Хабра» — скидка 10 000 рублей при записи на любой курс Skillbox по промокоду «Хабр».

«Умение глубоко погружаться в свою работу — крайне редкое и в то же время исключительно важное для экономики. Те немногие, кто сумел развить этот скилл, будут всегда в хорошем положении», — говорит Кэл Ньюпорт в своей книге Deep Work.

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

От страха кода к ведущему разработчику


Я — программист-самоучка, который начал свой путь в программировании в 20 лет. Я всегда считал себя творческой натурой и думал, что будут работать там, где нужен креативный подход.

И это случилось. После окончания колледжа я начал работать в компании, которая занималась графическим и веб-дизайном. Я стал профессионалом в Photoshop, немного знал HTML и CSS. Но более сложные вещи я не изучал — то, что требовало знаний PHP, например, я отдавал на аутсорс.

Я боялся кода в течение долгого времени и оставлял эту работу для ребят с дипломом о завершении специальности «Программирование». Я считал, что если ошибиться в одном символе, то можно пустить весь бизнес клиента под откос. В принципе, это не слишком отличалось от реального положения вещей.

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

Мой «секрет» — в умении фокусироваться и погружаться в суть проблемы. Больше во мне нет ничего особенного. Просто я нашел способ, как подолгу концентрироваться на одной вещи и не отвлекаться.

Программирование — это искусство

Действительно, программирование зачастую требует креатива. Оно может выглядеть слишком «техническим» и сухим для обычного человека. Но на самом деле, вы творец. Вы можете создать что-то из ничего. И это «ничего» — ваша собственная идея или же предложение product-менеджера.

Далее вы начинаете работать и облекаете идею плотью, даете ей жизнь. Не красками или словами, но при помощи кода (ну да, конечно, некоторые слова в коде все же есть, но вы понимаете, о чем я, верно?).

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

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

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

Да, вы можете стать суперразработчиком

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

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

Это, я вам скажу, не дар судьбы. Никто с этим умением не рождается, его нельзя «включить». Для того, чтобы этот скилл появился, необходимо постоянно тренироваться и работать.

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

К слову, сейчас открытых вакансий на различные IT-специальности гораздо больше, чем самих соискателей, так что найти работу для девелопера не так уж и сложно. У бизнеса задача — закрыть «дыру» в вакансиях, так что компании будут делать многое для того, чтобы нанять хорошего разработчика.

«Руководители проектов считают, что отсутствие сильного талантливого разработчика — одна из потенциальных уроз для роста компании», — The Developer Coefficient.

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

Два шага, которые позволят вам объединить ваш скилл программиста с фокусировкой и концентрацией


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

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

«Для того, чтобы оставаться экономически ценным кадром, вам необходимо понять, как быстро изучать сложные вещи. Это требует тяжелой работы и концентрации. Если вы не разовьете в себе это умение, скорее всего, вам не удастся добиться успеха», — Deep Work.

Научиться фокусироваться тяжело

Первое, о чем я хотел бы сказать: научиться фокусироваться действительно тяжело. Это означает, что вы не сможете начать сразу писать тонны хорошего кода. И не получится это сделать, если вы не осознаете, насколько легко можно отвлечь человека.

Умение фокусироваться приходит с практикой, для этого необходимо потратить много времени. Это непросто, но стоит того. Если вы готовы к сложностям, то ок, понемногу можно начать двигаться к цели.

Не путайте занятость с продуктивностью

Необходимость концентрироваться вовсе не означает, что вам стоит закрыться в темной комнате и программировать 14 часов подряд. То, что вы делаете что-то, вовсе не означает, что задача заслуживает того, чтобы над ней работали.

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

Умение фокусироваться приносит очевидные для каждого результаты. Сравнить плоды своей работы в состоянии глубокой концентрации можно с работой солнечного луча при попадании на лупу. Луч, фокусируясь, позволяет выжигать следы даже на самом твердом дереве или другом материале. То же самое и с фокусировкой во время работы — без умения концентрироваться работать не получится, это все равно, что пробовать работать с лупой в условиях рассеянного освещения.

Любое отвлечение от работы означает падение концентрации и рассеивание внимания (в нашей аналогии — солнечных лучей). Если же научиться фокусироваться на работе, можно собрать вместе все «лучи» и выполнить важную работу если не идеально, то близко к тому. К слову, нет необходимости всегда использовать свой скилл — достаточно уметь концентрироваться на самых важных задачах.

Шаг 1. Ликвидируем отвлекающие факторы



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

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

Нужно убрать все лишнее:

  • Поставить телефон на тихий режим или выключить его вообще. Для того, чтобы телефон не беспокоил, можно воспользоваться специальным ПО, например, Forest.
  • Закройте Slack. Это касается и других мессенджеров. Большинство из них очень громкие, так что сигнал сообщения в любом случае отвлечет вас на работе. Для того, чтобы избавиться от этого, выйдите из всех мессенджеров. Многие из них не являются критически важными.
  • Закройте любые другие приложения, которые могут отвлекать ваше внимание, например, почтовые клиенты.
  • Труднее всего закрывать и не открывать снова вкладки в браузере, которые не имеют никакого отношения к вашей работе. Для того, чтобы не выполнять эту задачу самостоятельно, можно воспользоваться специализированными приложениями.
  • Используем наушники. Они позволяют не отвлекаться и концентрироваться на работе. Кроме того, многие рекомендуют найти музыку, которая помогает вам фокусироваться, и работать лишь под нее.

Шаг 2. Секретное оружие —  Pomodoro




Если вы уже начинаете паниковать, осознавая, что в течение восьми часов не сможете не отвлекаться, то не переживайте. Вам поможет техника Pomodoro. Заключается она в следующем:

Разбейте свою работу на 25-минутные блоки (помидоры)

Постарайтесь работать в течение 25 минут, не отвлекаясь. Используйте таймеры, можно песочные часы, механические, программные.

Поработав, отдохните пять минут

Чрезвычайно важно, чтобы каждые 25 минут вы вставали и уходили на пять минут. Попейте воды, позалипайте на различных сайтах, сходите умойтесь. Как бы там ни было, вам нужно на эти пять минут полностью отвлечься от работы.

Выполняйте лишь одну задачу одновременно

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

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

Все это необходимо для того, чтобы разделить кажущиеся непосильными задачи на много частей. В большинстве своем мы прокрастинируем, потому что просто боимся браться за выполнение особо тяжелых задач. И тогда получается так, что эти задачи мы постепенно отодвигаем, оставляя их на потом. А потом боимся их еще больше, поскольку объем работы, который необходимо выполнить, никуда не уходит. Если же разбить крупную задачу на отдельные элементы, например, «написать 300 слов», то проблема оказывается не такой страшной.

Отказ от прокрастинации (хотя бы частичный) сделает из вас человека лучшего разработчика.

Отвлекаться нельзя

Если вы отвлеклись, то вам необходимо все начать сначала.

Как работать в течение 25 минут без перерыва?

Даже это для многих проблема. Возможно, вы, сами того не замечая, всегда отвлекались, так что из рабочего дня на саму работу тратился минимум времени. Если сложно, попробуйте начать с десяти минут, затем — 15, потом — 20 и 25.

При желании блоки можно увеличить вплоть до 55 минут, если 25 минут вам уже не хватает и вы научились не отвлекаться на посторонние факторы.

Вполне может быть, что даже 25 минут непрерывной работы покажутся вам тяжелыми, ведь нельзя посмотреть в окно, проверить почту, Telegram. Если очень тяжело, попробуйте выполнять лишь один блок в день (это не значит, что вы будете работать 25 минут в день, а означает, что вы попробуете не отвлекаться, выполняя свою задачу). Но помните: если отвлеклись, 25 минут нужно начать отсчитывать снова.

Как это поможет стать хорошим разработчиком?

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

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

Как уже говорилось, попробуйте начать с одного «помидора», потом постепенно увеличивайте их количество, а затем — и размеры самих «помидоров», то есть объем времени, в течение которого вы работаете с максимальной концентрацией.

Так минуты сольются в часы, часы — в дни, а дни — в недели и месяцы. И вы, сами того не замечая, научитесь работать с максимальной отдачей, что не пройдет незамеченным на работе. Да и ваш скилл программиста прокачается не на шутку, после чего возможностей станет больше, ведь любой компании нужны такие программисты.

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

Skillbox рекомендует: