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



/ фото hackNY.org CC

Про важное и банальное: еда, сон, их количество и качество


Любой, кто серьезно подходит к своей работе в сфере программного обеспечения (да и в любой другой), должен заботиться о своем организме. Как сказал Кен Робинсон (Ken Robinson), советник по вопросам развития творческого мышления, люди тратят слишком много времени на бытовые вопросы, потому не уделяют внимание здоровью. Проецируя мнение Кена на сферу разработки ПО, Ливио Де Ла Крус (Livio De La Cruz), бывший сотрудник Microsoft, а ныне фрилансер и программист Unity3D, говорит, что программисты недооценивают то влияние, которое оказывает их физическое состояние на производительность работы.

Программирование – это труд, который требует концентрации и энергии, а откуда им взяться, если разработчик регулярно недосыпает или плохо питается. Чтобы поддерживать работоспособность на высоком уровне и ясно и быстро мыслить, старайтесь придерживаться режима (никакой необходимости в жесточайшей дисциплине тут, конечно, нет – но отсутствие какого бы то ни было распорядка вообще может здорово подорвать ваши силы).

Разработчики нередко работают в «неурочное время» – поздно вечером или ночью. Если это не вынужденная мера, когда речь идет о третьей подработке, которую в другое время выполнять совершенно невозможно, все-таки постарайтесь перенести основной объем работы на «светлые часы».

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



Что касается более позднего времени дня, то врачи-диетологи советуют есть примерно каждые три часа (плюс-минус в зависимости от вашего ритма жизни). При таком подходе уровень сахара в крови поддерживается на нормальном уровне, и вы не будете чувствовать сонливость, что непременно добавит продуктивности. Регулярные приемы пищи не только обеспечивают вас энергией для решения важных проблем, но и помогают поддерживать хорошее настроение. Поэтому тем, кто в пылу работы забывает о голоде, специалисты советуют даже выставлять будильник, чтобы не пропускать обеденное время.

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

По словам доктора Кэролайн Эдмондс (Caroline Edmonds), ведущего автора исследования, прием стакана воды перед выполнением интеллектуальной деятельности позволяет ускорить работу мозга на 14%. Ученые также подчеркивают, что питьевая вода улучшает настроение. Когда участники эксперимента были обезвожены, то казались напряженными и грустными. В связи с этим многие советуют держать у себя на столе бутылку простой воды – в отличие от чая, кофе или соков она не оказывает никаких негативных воздействий на здоровье.

Про планирование: делайте перерывы


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

Точно так же как бегун устает за время марафона, ваша концентрация будет снижаться во время непрерывной работы. Один из резидентов платформы Stack Exchange отмечает, что за 8-часовой рабочий день стоит брать минимум два перерыва по 15 минут и один большой обеденный брейк на час. Короткие паузы в течение рабочего дня стимулируют вашу мыслительную активность: когда вы знаете, что впереди вас ждет небольшой отдых, работать становится гораздо легче.

Хорошим вариантом будет работа по таймерам, которые бы сообщали вам о том, что пора сделать перерыв. Кратковременный отдых зарядит вас энергией и даст новые силы для решения текущих проблем. Пользователь социального сервиса Quora Паллави Гош (Pallavi Ghosh) говорит, что отлично взбодриться во время отдыха ей помогает даже минимальная физическая активность: встать из-за компьютера, прогуляться, «встряхнуть» засидевшееся тело. Неплохо будет уделить внимание зарядке для глаз, чтобы они также немного расслабились.

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

Про мотивацию: научитесь настраивать себя на работу


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

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

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

Про ограничения: не работайте больше 8 часов в день


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

Если по каким-то причинам вы все равно выбиваетесь из графика, то, возможно, вам следует обратить внимание на практики тайм-менеджмента. Хорошую серию советов по управлению временем привел Оливер Эмбертон (Oliver Emberton), программист и основатель Silktide. Много интересных вещей на схожую тематику есть в его блоге.

Про порядок: записывайте идеи, делайте заметки


Маленькие записки не дадут забыть что-то важное и просто помогут организовать собственные идеи. Поскольку это занятие очень личное, то стоит поэкспериментировать с различными специализированными инструментами. Пользователи Reddit в качестве лучших приложений для организации рабочего дня приводят Evernote, Onenote и TheBrain.

Хороший программист должен знать пределы собственной памяти: худшее в идеях то, что вы даже не замечаете, как они исчезают из вашей головы. Как писал Джесси Шелл (Jesse Schell), аналитик и исполнительный директор студии Schell Games, в книге The Art of Game Design.

Про вовлеченность: задумайтесь о том, что вы делаете


Один из простых способов потратить время впустую – это «с места в карьер» приступить к реализации задачи. Первое решение, которое приходит в голову, зачастую оказывается не самым лучшим. Более того, в процессе размышлений вы можете прийти к выводу, что проблема, решить которую вы так рвались, вовсе и не проблема, и тратить на неё время необязательно. Об этой способности нашего мозга действовать быстро и нерационально пишет психолог Даниел Канеман (Daniel Kahneman) в своей книге Thinking, Fast and Slow.

Специалисты, которые «варятся» в области разработки какое-то время, отмечают, что следует сперва изучить плюсы и минусы различных подходов, а затем выбирать из них тот, который больше всего соответствует конкретной ситуации. Стоит оценить, какое решение будет самым надежным, какое – самым простым и так далее, то есть просмотреть несколько возможных альтернатив. Также имеет смысл нарисовать небольшие схемы, которые бы поясняли достоинства и недостатки каждого рассматриваемого способа (вы же носите с собой блокнотик для записи идей?).

Если вы решили воспользоваться возможностями неизвестного фреймворка, стоит заранее прикинуть, насколько сложно будет его изучить. Задайте себе вопрос, стоит ли результат потраченного времени? Также спросите себя, будет ли легко поддерживать этот код? На эту тему хороший материал написал программист и блогер Егор Бугаенко. Можете посмотреть его статью Nine Steps to Start a Software Project.

Про короткие маршруты: знайте, когда можно срезать путь


Многие согласятся, что решение, которое наиболее эффективно использует ресурсы, иногда не стоит того, чтобы тратить на него драгоценное время – бывает достаточно просто «склепать» приложение, делающее нужную работу.

Если вы просто хотите проверить функцию на «жизнеспособность», то нет смысла сразу реализовывать её от и до. Отполируете все потом, если новая «фича» придется вам (или кому-то еще) по вкусу. Знание того, когда можно «срезать» путь и выполнить задачу побыстрее, пожертвовав некоторыми функциями, – это сложный навык, который стоит освоить. Он требует четкого понимания того, над чем вы в данный момент работаете, но позволит сэкономить достаточно большое количество драгоценного времени.

Про дальновидность: освойте искусство отладки


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

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

Хорошим навыком является и умение предугадывать появление багов и обходить их стороной до того, как они все испортят. Практически каждый программист имеет привычку спрашивать самого себя: «Что случится, если…?». Вам нужно лишь сделать еще один шаг вперед и продумать далеко идущие последствия.

Снова про порядок: выделяйте время на «очистку кода»


Работать в «грязном» коде – это все равно что жить в бардаке. Вы постоянно спотыкаетесь о разбросанные вещи, а вон та куча носков неплохо «попахивает». Важно понимать, что беспорядок – это естественный побочный процесс программирования, но точно так же, как вы убираетесь на кухне после готовки, стоит приводить в порядок код после реализации нескольких функций.

«Чистый» код – это отформатированный код, в котором нет «мусора», а функции располагаются в логичных местах. По этим причинам качественный рефакторинг может потребовать от вас изменения структуры кода и переработки зависимостей классов. Также стоит уделить внимание комментариям, поскольку они имеют свойство устаревать.

Рефакторинг дает полезный побочный эффект. Читая и реорганизуя код, вы начинаете лучше его понимать. Когда вы помните, что где лежит и что делает, искать ошибки становится гораздо проще. Эллиот Ченс (Elliot Chance), инженер в Kounta, добавляет, что будет хорошо, если вы приучите себя сразу писать простой код. Чем больше строчек вы напишете, тем «ленивее» будет программа. Неплохо будет потратить немного времени, но найти более простое и элегантное решение.

Про обмен опытом: читайте блоги и форумы по программированию


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

Также читайте блоги, желательно почаще. Резидент Quora и инженер Алекс Камил (Alex Kamil) приводит исчерпывающий список интересных блогов, возможно, вам стоит его изучить [еще один список есть на GitHub]. Из самых известных ресурсов стоит выделить Coding Horror и Joel on Software. Из русскоязычных – Хабр, конечно.
Подведем небольшое резюме. Что из вышесказанного у вас пока не получается делать так, чтобы действительно быть продуктивным?

Проголосовало 475 человек. Воздержалось 182 человека.

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

Поделиться с друзьями
-->

Комментарии (17)


  1. n0wheremany
    07.09.2016 12:18
    -1

    Про дальновидность: освойте искусство отладки

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


  1. Alexey2005
    07.09.2016 13:04

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


    1. pastuh9090
      07.09.2016 13:19
      +2

      я встаю за два часа до выхода из дома, час читаю, готовлю завтрак, зарядка(короткий энергичный комплекс на 15 минут) — аппетит просыпается на ура)


    1. codeschemer
      08.09.2016 12:52

      У меня та же проблема, помогает bulletproof coffee.


    1. Aingis
      10.09.2016 12:12

      Попробуйте съесть конфетку. Вопреки популярному мнению, по-моему, сладкое наоборот, пробуждает аппетит.


  1. Josef
    07.09.2016 13:19

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

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


    1. pastuh9090
      07.09.2016 13:22
      +1

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


      1. Josef
        07.09.2016 13:28
        -1

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

        Ну то есть вообще раньше днем не ел, совсем. Было жутко сложно заставить себя есть хоть что-то хотя бы раз в день.


  1. pastuh9090
    07.09.2016 13:25

    Хорошая статья, остаётся только добавить пункт "Старайтесь оценить время на создание продукта" решение своей задачи. Вот хороший пример.


  1. toxi_roman
    07.09.2016 14:26

    Из пунктов голосования выбрал несколько, которые не всегда получается делать:

    • Хорошо питаться и соблюдать режим
    • Брать пятнадцатиминутные перерывы

    По остальным пунктам более-менее приучил себя и стараюсь придерживаться.

    Сложно было раньше приучиться к следующему:
    • Не работать больше 8 часов в день
    • Не бросаться решать задачу сходу
    • «Чистить» код

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

    Этот пункт практически всегда делаю, если нужно только проверить проект/функцию/веб-приложение:
    • Знать, когда можно «срезать»


  1. KonstantinSoloviov
    07.09.2016 18:34
    +2

    Очередные *те-рецепты:

    будете делайте можете любите начните работайте заставляете начинаете прокрастинируете откладываете используете записывайте делайте можете носите Задайте спросите Можете хотите Отполируете освойте выделяйте начинаете приучите читайте покажете можете читайте
    Это реально кого-то может подвигнуть на что-то?
    Опрос соответствует — все ответы между да и нет
    Теги «IaaS, VPS, VDS, Частное и публичное облако, SSL»
    Итого: PR, информационный мусор


  1. G-M-A-X
    07.09.2016 22:28
    +1

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


    Я бы не назвал ту статью исследованием :)
    А еще, все люди, которые умерли, ели огурцы.

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


    Опять сомнительная статья.

    (плюс-минус в зависимости от вашего ритма жизни)


    Ок, +-5 часов :)

    прием стакана воды перед выполнением интеллектуальной деятельности позволяет ускорить работу мозга на 14%


    То есть я буду программы писать на 14% быстрее?
    Цифры из справочника Стеля?
    А если 2 стакана, то на 28%? :)
    Как проводили тестирование?

    Войти в зону концентрации помогает глубокое дыхание.


    Если человек может сконцентрироваться только подышав, или дышет, чтобы сконцентрироваться, то он болен.

    Также вернуться к делам могут помочь и привычки – если во время написания кода вы любите крутить что-то в руках


    Странное написание кода, вертя что-то в руках :)
    Обычно крутят мышку :)

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


    Меломан и без этого совета слушает музыку :)

    правда, настроившись на рабочий лад, лучше переключиться на что-то более спокойное или поработать в тишине


    Как правило, если это музыка из моей коллекции, то мне пофиг на стиль/громкость. :)

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


    +1. Лучше самопись :)


  1. ktod
    08.09.2016 12:52

    Я бы добавил:
    «Читайте чужой код».


  1. SmartVolk
    08.09.2016 15:02

    Интересная и полезная статья, хоть и многие советы тривиальны. В разделе управления временем автор не рассказал об интересной технике «помидор». Про неё написано много, но она, на мой взгляд, заслуживает упоминания. То же самое и про GTD. Из моего опыта: я использую несколько «корзинок», как физических, так и в виде компьютерных программ для информации и мыслей, которые нельзя обработать в короткое время. Это помогает сохранить важное. Но главное здесь — периодически просматривать этот материал. Я делаю это раз в неделю. И планирование. Не важно, в компьютере или бумажном блокноте. Очень помогает не упустить важное. Использую также андроидный календарь в смартфоне. Начал и постепенно втянулся. Помогает не забыть в текучке о важном событии. В целом, статья говорит о том, что программирование – такой же вид интеллектуальной деятельности, как и множество других и использует для своего обслуживания универсальные методы. Главное, это после прочтения статьи использовать подходящие советы и искать что-то новое.


    1. pastuh9090
      09.09.2016 12:12

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


      1. SmartVolk
        09.09.2016 13:02

        К сожалению, Ваши ссылки не работают.


        1. pastuh9090
          09.09.2016 14:42

          Прошу прощения, вот и вот должны работать.