Два скилла, которые помогут стать отличным разработчиком +16



image

От переводчика: эта статья — перевод оригинальной статьи Бара Франека, специалиста по 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 рекомендует:

Вы можете помочь и перевести немного средств на развитие сайта



Комментарии (28):

  1. DelphiCowboy
    /#19125647 / +1

    Не приведут ли эти советы к выгоранию?

    • edogs
      /#19127727 / +2

      А каким образом? Совет-то в принципе сводится к тому что а) не отвлекайся когда работаешь б) не работай долго не отвлекаясь. Т.е. тут нет такого «еб-шь 24 часа в сутки»© Можно хоть 55 минут в неделю работать по такой схеме.

      Мы по именно такой схеме специально не работали. но в принципе нечто аналогичное использовали неосознанно сами в прошлом и было на изумление эффективно.

      Как по нам — так самое тяжело это на эти Х минут отвлечься полностью, и… фанфары… lineage очень помогал. Работали 40 минут — потом на 20 минут в линейку поиграть, переключение мгновенное, никаких задних мыслей — тут же погружаешься в игру — с «перекуром» или «листанием браузера» так не получается.

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

      Кончилось это правда анекдотично. В таком режиме игры в lineage при относительно небольшом онлайне кач и заработок в lineage получался очень неплохой и в определённый момент времени стал больше чем заработок на программинге, т.е. ну вот очень сильно больше, после чего стимул программить подупал, а 40/20 сменилось на 20/20. К счастью пиратские сервера где мы играли закрыли, а на официальных таких доходов не было.

      Но тем не менее — если надо поавралить, режим ХХ минут / YY минут (все же циклится на 25/5 странно, индивидуальность присутствует) очень даже одобряем, а игры до сих пор считаем лучшим способом отвлечения от бреда реальности.

  2. postgres
    /#19125663

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

    P.s.
    Посмотрел название компании — понял почему скилл:)

  3. suharik
    /#19125811

    Оба шага представляют собой слегка видоизмененные советы из Soft Skills: The software developer's life manual. Раздел 4, главы 36 и 38. Полагаю, что встречаются они еще в куче разных мест и форумов. Просто именно эту книгу докурил неделю назад.

  4. arTk_ev
    /#19126599

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

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

    не согласен. Тут обратная корреляция. Ленивый разработчик — лучший разработчик.

    • lxsmkv
      /#19128621

      Лень лени — рознь. Есть ленивые работники которым работать впадлу, и они всеми правдами и неправдами пытаются ускользнуть от работы. Таких только на улицу. А есть те, которые не хотят по два раза делать одно и то же или переделывать. Это добросовестные, сметливые ребята. Тут лень ни при чем. Они это делают не оттого, что неохота, а оттого, что им претит любое проявление бессмысленности, однообразия и рутины. Они понимают, что их "мыслетопливо" можно потратить с гораздо большей пользой.

  5. scruff
    /#19126945 / +2

    Я не девелопер, а инфраструктурщик, и по себе знаю — что сконцентрироваться на решении одной задачи маловероятно. Тебя постоянно кто-то дёргает, пишет в васап, трезвонит etc. И так, пока грубо не пошлешь — не отстанут. Это раз. Во-вторых, человек, работающий над одной задачей в течение какого-то промежутка времени — «нехороший» человек для начальства, АКА немногозадачный. Поэтому во многих вакансиях одно из ключевых требований — именно многозадачность, в том или ином проявлении/формулировке. Возможность работать однозадачно — это уже больше как привилегия в нынешних конторах., это когда ты можешь слать начальство (включая CEO) подальше ввиду своей занятости, выключить телефон с васапом, а на дверь в кабинет повесть табличку "Не влезай — убьет Не беспокоть!" и тебе ничего за это не будет.

    • TheIseAse
      /#19130581

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

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

      • scruff
        /#19131897 / +1

        Тогда нужно очень потрудиться, чтобы собрать действительно качественную статистику, ну или преподнести цифры с потолка за достоверные. А к встречи с начальством нужно очень качественно подготовиться, в идеале чтобы всё заняло часа 2. Тогда вероятно у вас получиться выпросить привилегии, указанные выше. Но после такой встречи задумайтесь — почему я, с такими коммуникационными навыками, до сих пор «какой-то девелопер», зачем вам это? Вам уже открыта дорога в средний/высший менеджмент, для начальства вы уже свой человек.

  6. finlandcoder
    /#19127841 / +2

    Спорить в интернете

  7. xState_level80
    /#19128041 / +1

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

  8. samodum
    /#19128089

    >«И не получится это сделать, если вы не осознаете, насколько легко можно отвлечь человека.»
    Сразу видно молодое поколение, которое не читало классику Джоэля Спольски. Уверен, что половина даже не знает кто это, хотя 100% разработчиков пользуются его творением.

    • Happy_Forever
      /#19128281

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

      • TheIseAse
        /#19130589

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

        EDIT: Например, тут https://www.joelonsoftware.com/2006/09/07/a-field-guide-to-developers-2/

        EDIT 2: Смешнее всего, что статьи еще нулевых годов.

        • Xandrmoro
          /#19131155

          Среди руководства обычно считается, что опенспейсы продуктивнее. Почему — а чёрт его.

        • Happy_Forever
          /#19132877

          Спасибо за ответ! Да, работать, имея личное пространство и тишину, значительно легче, и идеи приходят наиболее адекватные. Только у меня не программирование, а другая область деятельности.

      • TheIseAse
        /#19130603

        А его творение – Stack Overflow (и Trello тоже)

  9. Anshi85
    /#19128355 / +1

    Тут ещё вопрос интереса текущий задачи, то есть насколько задача над которой ты работаешь тебе интересна, если задача мне интересная пускай и сложная, то я даже во сне или в туалете думаю над ее решением, я постоянно думаю о ней, а если интереса нету, то делаешь ее лишь бы побыстрее сделать и забыть о ней, я считаю именно для «неинтересных» задач и нужны всякие «помидоры», перекуры и переключения на «игры» и «ютубчик» так как мозг не хочет долго заниматься этой скучной задачей. Опять же помодоро иногда даже вредит, так как добавляет стресса в работу, например я настроился на работу над не интересной мне задачей, делаю себе установку на 25 минут сконцентрироваться над решением этой задачи. Нажал на старт и тут подходил коллега, потом начальник, звонит или пишет жена, в итоге каждый раз ты или ставишь помодоро на паузу или напрягаешся понимая что таймер отчитывает время на решение задачи, а эти люди тебя отвлекают.

  10. Murat1992
    /#19128901

    Два скилла, которые помогут стать отличным разработчиком.

    эмм… Читать и писать?

  11. brzsmg
    /#19129409 / +2

    Чтение статьи о прокрастинации, является прокрастинацией?

  12. Vaskrol
    /#19129499

    «Так минуты сольются в часы, часы — в дни, а дни — в недели и месяцы.» — а поживёшь после смерти :)

  13. iat
    /#19130733 / +1

    когда моешь чашку – мой чашку

  14. dimm_ddr
    /#19130913

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

    • Neikist
      /#19131093

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

  15. dolovar
    /#19131975

    В начале дан тезис про два скилла:

    успех обусловлен двумя крайне важными умениями: фокусироваться на деле и концентрироваться

    По-моему, если говорить о внимании, то фокусировка и концентрация — это одно и то же.
    Предполагаю, что в оригинальной статье не было двух скиллов, которые здесь попали даже в заголовок:
    no skill is more important to your success than focused, deep work

    Наиболее важное умение для успеха — сфокусированное, глубокое погружение в работу.

    И в дальнейшем тексте даны советы «не отвлекайся» и «декомпозируй».
    Не отвлекайся — убери помехи для сосредоточения, а не «как научиться сосредоточению».
    Декомпозируй задачу — один из приемов по устранению неприятия, а не «как научиться фокусировке».

    IMSHO, для упражнения фокусировки внимания, как и для тренировки мышц, нужны два момента: учись напрягать, учись расслаблять. Убрать помехи — не достаточно.

  16. alsii
    /#19134447

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

    Программирование — это ремесло.

    • Zibx
      /#19138449

      Кодинг — ремесло.
      Программирование — искусство решения задачи оптимизации. Выбор подходящих (удовлетворяющих SLA) структур данных и алгоритмов. Дополнительно — это выбор и интеграция готовых продуктов (сторонних решений, например: DB, MQ). После проработки архитектуры и строгого прописывания требований к каждой части — кодирование можно делегировать.
      Иногда, программирование — это разработка новых структур, алгоритмов и инструментов для решения конкретной задачи. Временами это выливается в научные статьи.

    • Murat1992
      /#19138847

      И искусство, и ремесло.
      В зависимости от того, как им пользуешься.