Мне очень трудно сосредоточиться на том, что я делаю (в программировании), когда что-то (компиляция, время запуска и т. Д.) Занимает больше, чем несколько секунд. Неожиданно кажется, что порог составляет около 10 секунд (и я вспоминаю чтение об исследовании, в котором говорилось то же самое, хотя я не могу его сейчас найти). Так что, как правило, я делаю изменения, а затем запускаю программу для их проверки. Это занимает около 30 секунд, поэтому я начинаю читать что-то еще, и, прежде чем я знаю, что прошло 20 минут, а затем (если мне повезет!) Еще 10 минут, чтобы разобраться с переключением контекста и вернуться к программированию. ,
Не будет преувеличением сказать, что некоторые вещи, которые занимают у меня минуты, буквально занимают часы.
Мне очень любопытно, что делают другие программисты для борьбы с этой тенденцией (или, если я уникален, и у них нет этой тенденции?). Приветствуются любые предложения любого типа - от «сидеть на руках после нажатия кнопки компиляции» до умственных трюков и «если требуется 30 секунд, чтобы запустить что-то для проверки изменений, то что-то не так с вашим процессом разработки» !»
Ответы:
Я написал небольшую утилиту командной строки под названием «alert», которая заставит компьютер подавать звуковой сигнал / воспроизводить звук / и т. Д. Затем, когда у меня появляется длинная команда для запуска, такая как
make
, я запускаюmake; alert
. Там, где я могу, у меня также будет аргумент, чтобы он звучал по-разному в зависимости от аргумента. Таким образом, я могу сделать,make; alert $?
и я буду знать, а) сборка завершена, и б) она прошла или не удалось. Вы не должны быть настолько увлечены этим; простоecho -e "\a"
может быть достаточно.Если вы хотите стать действительно модным / раздражающим, используйте пакет преобразования текста в речь и вызовите всплывающее диалоговое окно.
Основная идея здесь состоит в том, чтобы прервать ваше отвлечение, как только задача, связанная с работой, завершится.
источник
MSG="back to work" && xmessage -buttons ok -default ok -nearmouse "${MSG}" 2> /dev/null
;
вместо&&
. Ваш второй пример будет работать только вshow_message
случаеmake
успеха, что не совсем то, что вы хотите. Чтобы быть ясным: мне нравится пример, который вы дали, я просто привередлив в деталях реализации. ;)command; alert
и он выдаст вам уведомление на рабочем столе, когда будет указано, какая команда была завершена. Действительно полезно для длительных компиляций или тестов.У меня та же проблема, и решение для меня состояло в том, чтобы тратить время на выполнение чего-то, что вас не затянет. Для меня это обычно либо (1) заполнение бутылки с водой, либо (2) вставание и совершая 30-секундную прогулку по офису, чтобы размять ноги, которые в любом случае нуждаются в движении. Вы можете потеряться в Интернете; вы редко заблудились, прогуливаясь по собственной кабине
источник
Сделайте что-нибудь для своего здоровья:
Встаньте, отойдите от компьютера и сделайте несколько упражнений на растяжку рук и рук. Это займет максимум 2-5 минут. Ваша будущая личность, не страдающая от RSI, поблагодарит вас за это.
Кроме того, что касается 2-5 минутного перерыва, ознакомьтесь с техникой Pomodoro . Это основано на идее частых коротких перерывов, чтобы отвлечься от текущей задачи и позволить чему-то немного затянуться. Это достаточно короткий перерыв, чтобы полностью не потерять ход мыслей, но достаточно долго, чтобы дать мозгу передышку.
источник
Развитие - это творческий процесс. Вы не можете быть постоянно продуктивным, особенно если в вашем офисе много отвлекающих факторов. Вот почему тест Джоэл предлагает спокойные условия труда.
Джоэл Спольски также объясняет, что значит «не быть в зоне» . Каждый раз, когда что-то мешает вам выполнять свою работу, вам приходится тратить десять минут, часто больше, чтобы вернуться в зону и снова стать продуктивным.
Есть много отвлекающих факторов:
Здесь нет ничего общего. Единственное, что вы можете сделать, это удалить сами отвлекающие факторы:
В вашем случае, если вас отвлекает компилятор, попробуйте уменьшить время компиляции:
источник
Я думаю, что я буду тем, кто скажет это, но вы должны просто сидеть там и ждать, пока это закончится.
Вы должны переподготовить себя, чтобы не чувствовать необходимости быть постоянно и активно делать вещи. Это очень вредная проблема, которая затрагивает не только разработчиков, но и всех людей. Общество стало одержимым необходимостью постоянной стимуляции (визуальной, звуковой, психической). Кажется, никто не может бездействовать более 30 секунд, не вытаскивая свой телефон и не переписываясь, не просматривая веб-страницы, не проверяя Facebook и т. Д.
Если вы нажмете «Компиляция», и это займет минуту или около того, подумайте, что это отличная возможность просто сидеть и расслабить свой мозг. Не поддавайтесь желанию сделать что-то стимулирующее и просто наслаждайтесь моментом неактивности.
Со временем это станет легче, и вы обнаружите, что у вас будет намного лучший опыт работы, когда вы перестанете пытаться поддерживать свой мозг на 100% в течение всего дня.
источник
Я согласен с тем, что предлагает @retracile, но учтите, что в соответствии с правилами программирования Zen вы должны сосредоточиться только на одной задаче за раз. Ответ на телефонные звонки, просмотр веб-страниц, социальные сети или даже многозадачность, скорее всего, снизит вашу производительность. Используйте небольшую задержку ожидания, чтобы подумать о существующей задаче / решении и о том, что вы можете сделать, чтобы улучшить ее.
источник
У меня есть бар, прикрепленный к косяку
Я могу сделать только 5 подтягиваний, поэтому это займет меньше минуты. Или я завариваю чашку чая.
источник
Для меня способ сосредоточиться на том, чтобы быть безжалостным в поддержании чистого рабочего пространства, каким бы оно ни было. Все, что не является частью моего текущего проекта, - это шум в освященном соотношении сигнал / шум. Важной частью поддержания фокуса является поддержание высокого отношения сигнал / шум.
Когда я пишу код, это означает закрытие программ, которые я недавно не использовал, регулярное удаление вкладок моего браузера и отсутствие на рабочем столе элементов, которые не имеют непосредственного отношения к моим текущим проектам. Я использую десятисекундные задержки, чтобы, так сказать, «сделать обход» - закрытие вкладок, закрытие программ, удаление временных файлов и архивирование того, что нужно архивировать, и т. Д.
Привычка «делать обходы» также помогает предотвратить кроличьи следы, потому что заставляет меня постоянно оценивать и напоминать о любых текущих задачах.
Есть небольшая цена, которую нужно заплатить, если вам придется заново открывать вкладку, которую вы уже открывали 5 раз сегодня, или перезапускать командную строку с повышенными привилегиями в 15-й раз, но использование ускорителей, таких как сочетания клавиш, может сократить это до очень маленькая цена на самом деле.
источник
Я считаю, что это помогает отслеживать фактическое время, которое я провожу, не работая
Вы можете использовать любое количество вещей для этого. Я знаю, что есть много бесплатных приложений, которые вы можете скачать, чтобы сделать это для вас (не могу придумать ни одного из них прямо сейчас, но если кто-то даст мне, я добавлю их в этот ответ), или это очень легко создать свой собственный. Я обычно использую одно, которое я создал, которое является крошечным окном в углу моего экрана с кнопками для
Working
/NotWorking
, и я просто нажимаю на любое, на котором я нахожусь, всякий раз, когда я переключаю фокус.Шахматные часы также работают
Сам процесс отслеживания вашего времени делает вас более осведомленным о том, сколько времени вы тратите на то, чтобы тратить время на работу, и я считаю, что это делает меня более продуктивным, потому что я заставлю себя оставить этот супер-интересный вопрос о переполнении стека или блог статья и возвращайся к работе
источник
Для поддержания внимания я использую каракули. У меня всегда есть ручка и блокнот, лежащие за клавиатурой, и я ухожу. Это не более, чем копание на листе бумаги без какого-либо смысла, но оно просто удерживает мое внимание на должном уровне и не отвлекает меня, поэтому я могу сразу вернуться к тому, над чем работал.
Я делал это всю свою жизнь неосознанно, но недавно нашел вики об этом: http://en.wikipedia.org/wiki/Doodle
источник
Что бы вы ни делали , не заходите ни на один из сайтов StackExchange. Они вас засосут :)
Если говорить более серьезно, то просмотр веб-страниц в ожидании чего-либо закончится, что не очень хорошо для производительности (если вы не исследуете что-то, связанное с текущей задачей).
Я обычно делаю несколько небольших заданий, которые не займут больше 1-2 минут. (что-то чистить, писать комментарии, заметки).
источник
В твоем случае встань и погуляй немного. Если вам трудно вернуться в «зону», возможно, это из-за того, что вы слишком далеко зашли. Работа в Интернете - это просто еще одна зона, в которой легко потерять счет времени. Дайте вашему мозгу перерыв, которого он явно хочет, и пойти на прогулку, взять волшебника, в идеале в туалете, или поговорить со случайным сотрудником. Мы делаем много вещей за кулисами на автопилоте. Перерывы не плохи для кодирования, они хороши, но идея в том, чтобы на время прекратить стрельбу по всем цилиндрам и посмотреть, что придут на задний план, пока более сознательная часть вашего ума дает ей отдых. Хорошие разработчики не люди калькуляторы. Позвольте частям вашего мозга, которые делают все интуитивное и сопоставимое с шаблоном на автопилоте, какое-то время делают свое дело.
Если это не просто проблема кодирования, вы можете рассмотреть возможность добавления.
источник
Предложения встать, погулять и т. Д. Хороши, если ваши циклы длинные (около часа). Но когда время цикла становится коротким, и я обнаруживаю, что переключаюсь между vim и make каждые несколько минут, тогда я остаюсь в зоне, оставаясь в конвейере: пока работает сборка или набор тестов, я склонен возвращаться и просмотрите код, а затем начните работать над следующим блоком, который я все равно буду выполнять, если сборка или тесты пройдут успешно.
источник
Составьте план в начале каждого дня относительно того, как использовать это «свободное время». Это может включать в себя
или просто о чем угодно.
Пусть эта вторичная задача всегда открывается в окне где-то на рабочем столе. Как только вы нажмете кнопку «Скомпилировать» (или что-то еще, что займет у вас более 30 секунд), переключитесь на дополнительную задачу и выделите достаточно времени, чтобы фактически продвинуться вперед, что может занять пару минут, или может быть меньше.
Пока вы выполняете второстепенное задание, помните, что это не то, на чем должен фокусироваться ваш мозг. Продолжайте думать о программировании. Это не легко; Вы все еще будете страдать от переключения контекста чаще, чем нет.
Если вы делаете это, даже если вы теряете контекст много раз, ваше потерянное время на самом деле не тратится впустую, и вам есть, что показать в конце дня. Но самое главное - спланировать в начале дня, какой будет вторичная задача дня.
источник
Я предполагаю, что мы можем использовать время компиляции для документирования кода, очистки кода, правильного выравнивания кода, чтобы мы не отошли от нашей IDE и все же улучшили качество кода.
источник
Обычно я просто пытаюсь найти ошибки, опечатки или способы улучшить стиль кода. Это заставляет меня смотреть на код, но я не всегда отвлекаюсь на что-то интересное. Кроме того, это !
источник
Вполне возможно, у вас есть немного СДВГ. Многие люди делают. Механизмы преодоления, как указано в других ответах (или, возможно, лекарства).
источник
В течение этих 10-30 секунд иди и сделай что-нибудь:
В течение этого времени не делайте то, что, как вы знаете, займет у вас много времени (если вы не можете позволить себе потратить некоторое время), например:
Кроме того, не устанавливайте звуковую сигнализацию, чтобы сигнализировать об окончании компиляции. Ваши коллеги это оценят.
источник
Для отвлечения внимания во время работы в Интернете, я предлагаю плагин Pomodoro, если вы используете Google Chrome
Я лично думаю, что вы не можете быть продуктивным в течение всего вашего рабочего времени! поскольку вы компилируете, это означает, что вы приложили достаточно усилий, чтобы перевести дух ... чтобы не злоупотреблять или не выходить из контекста, продолжайте думать о следующем шаге, если компиляция не вызывает ошибок ... или очистите свою работу область: рабочий стол, вкладки, проводник ...
источник
То, что вы описываете, совершенно нормально.
Когда мы проводили исследования юзабилити, мы смотрели на задержки по порядку величины. Когда пользователь нажимает кнопку, как долго он должен ждать?
Существует множество исключений, таких как составные операции, такие как набор текста.
Когда мы выполняли работу над производительностью, мы часто задавали вопрос: «Насколько быстрой должна быть операция X?». Ответ таков: до тех пор, пока пользователь может воспринимать задержку, быстрее будет лучше.
В вашем случае вы достигли порога 10 с, и ваше внимание отвлекается. Лучшее, что вы можете сделать, это уменьшить задержку. Чем короче задержка, тем выше ваша производительность. Представьте, что у вас есть код в левой части экрана, а справа запущенное приложение. При редактировании кода приложение изменяется в режиме реального времени. Пока вы там, у вас есть возможности для улучшения.
Смотрите также недавнее сообщение Джеффа в блоге (тонны хорошего контента, к которому он ведет): http://www.codinghorror.com/blog/2012/03/visualizing-code-to-fail-faster.html
Если вы собираетесь переключиться на что-то другое, выберите то, что не затрагивает ваш мозг так же, как работа, которую вы выполняли. Убери свой стол, помедитируй, потянись, отжимайся, искусство, смотри в окно.
источник
При выполнении специальной работы в SAS я считаю следующую строку очень полезной:
Это приводит к появлению всплывающего диалогового окна после завершения выполнения всего предыдущего кода. Я уверен, что есть эквиваленты на других языках. Я бы опубликовал это как комментарий к ответу, но мне не хватает репутации.
источник