Как вы поддерживаете фокус, когда конкретный аспект программирования занимает 10 + секунд? [закрыто]

Мне очень сложно сосредоточиться на том, что я делаю (программируя), когда что-то (компиляция, время запуска и т. д.) занимает больше, чем несколько секунд. Анекдотически кажется, что порог составляет около 10 секунд (и я вспоминаю чтение об учебе, в котором говорилось то же самое, хотя я не могу найти его сейчас). Итак, что обычно происходит, я делаю изменения, а затем запускаю программу для ее проверки. Это занимает около 30 секунд, поэтому я начинаю читать что-то еще, и прежде чем я узнаю, что прошло 20 минут, а затем (если мне повезет!) Еще 10 + минут, чтобы разобраться с контекстным переключателем, чтобы вернуться к программированию .

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

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

141 голос | спросил 2 revs, 2 users 86%
Jer
1 Jam1000000amThu, 01 Jan 1970 03:00:00 +030070 1970, 03:00:00

21 ответ


117

Я написал небольшую утилиту командной строки под названием «alert», которая заставит компьютер подавать звуковой сигнал /воспроизведение звука /т. д. Затем, когда у меня есть длинная команда для запуска, например make, я запустить make; alert. Где я могу, у меня также будет возможность принять аргумент, чтобы он менял звук в зависимости от аргумента. Таким образом, я могу сделать make; alert $?, и я знаю, что) сборка выполнена, и б) она прошла или провалилась. Вам не обязательно быть с этим вникать; достаточно всего echo -e "\a".

Если вы хотите получить действительно причудливое /раздражающее, используйте некоторый пакет текста в речь и вызовите всплывающее диалоговое окно.

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

ответил davidk01 4 MaramTue, 04 Mar 2014 01:26:24 +04002014-03-04T01:26:24+04:0001 2014, 01:26:24
104

У меня та же проблема, и решение для меня состояло в том, чтобы тратить время на то, что вам не понадобится. Для меня это обычно: (1) заполнение бутылки с водой или (2) вставая и занимаясь 30-секундной прогулкой по кабинету, чтобы размять ноги, которые в любом случае нуждаются в движении. Вы можете потерять доступ к Интернету; вы редко теряетесь, обходя свою собственную кабинку.

ответил davidk01 4 MaramTue, 04 Mar 2014 01:26:24 +04002014-03-04T01:26:24+04:0001 2014, 01:26:24
29

Сделайте что-нибудь для своего здоровья:

Standup, уходите от своего компьютера и делайте упражнения на растяжку рук и рук. Это займет максимум 2-5 минут. Ваше будущее, не страдающее от RSI, благодарит вас за это.

Кроме того, что касается перерыва в 2-5 минут, прочитайте технику Помпоро . Это основано на идее иметь частые короткие перерывы, чтобы отвлечься от вашей текущей задачи и позволить вещам немного опуститься. Это достаточно короткий перерыв, чтобы не потерять ваш ход мысли, но достаточно долго, чтобы дать вашему мозгу передышку.

ответил davidk01 4 MaramTue, 04 Mar 2014 01:26:24 +04002014-03-04T01:26:24+04:0001 2014, 01:26:24
25

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

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

Есть много отвлекающих факторов:

  • Телефонный звонок от вашей жены,
  • Телефонный звонок деловому человеку в офисном пространстве рядом с вашим,
  • Сотрудник просит вас о помощи,
  • Будучи голодным,
  • Наличие личных проблем,
  • Чтобы работать над устаревшим кодом, написанным неопытным разработчиком десять лет назад и никогда не рефакторированным,
  • Наличие медленного ПК или медленного интернет-соединения,
  • Имея длительный процесс компиляции,
  • и др.

Здесь нет ничего общего. Единственное, что вы можете сделать, это удалить сами отвлечения:

  • В вашем офисе нет телефонов,
  • Тихие условия работы,
  • Быстрый доступ к компьютеру и Интернету,
  • Быстрый процесс компиляции,
  • и др.

В вашем случае, если это компилятор, который вас отвлекает, попробуйте уменьшить время компиляции на:

  • Уменьшение размера вашей программы (некоторые IDE, например, позволяют вам выгружать некоторые проекты из решения, сильно сокращая время компиляции),
  • Использование ночных сборок и компиляция во время работы
  • Покупка более быстрой машины (если больше нечего делать),
  • и др.
ответил davidk01 4 MaramTue, 04 Mar 2014 01:26:24 +04002014-03-04T01:26:24+04:0001 2014, 01:26:24
9

Думаю, я скажу это, но вы должны просто сидеть и ждать, пока он закончит.

Вам нужно переобучиться, чтобы не чувствовать себя постоянно и активно заниматься. Это очень опасная проблема, которая затрагивает не только разработчиков, но и всех людей. Общество стало одержимым необходимостью постоянной стимуляции (визуальной, аудио, умственной). Кажется, никто не может стоять без дела в течение более 30 секунд, не вытаскивая свой телефон и не отправляя текстовые сообщения, просматривая веб-страницы, проверяя фейсбуки и т. Д.

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

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

ответил davidk01 4 MaramTue, 04 Mar 2014 01:26:24 +04002014-03-04T01:26:24+04:0001 2014, 01:26:24
8

У меня есть бар, прикрепленный к дверному косяку

введите описание изображения здесь>> </p>

<p> Я могу сделать только 5 подтягиваний, поэтому требуется меньше минуты. Или я делаю чашку чая. </p></body></html>

ответил davidk01 4 MaramTue, 04 Mar 2014 01:26:24 +04002014-03-04T01:26:24+04:0001 2014, 01:26:24
6

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

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

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

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

ответил davidk01 4 MaramTue, 04 Mar 2014 01:26:24 +04002014-03-04T01:26:24+04:0001 2014, 01:26:24
6

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

Для этого вы можете использовать любое количество вещей. Я знаю, что есть много бесплатных приложений, которые вы можете скачать, чтобы сделать это для вас (сейчас я не могу думать ни о чем, но если кто-то мне даст, я добавлю их к этому ответу), или это очень просто создать свой собственный. Я обычно использую тот, который я создал, который представляет собой крошечное окно в углу экрана с кнопками для Working /NotWorking, и я просто нажимаю тот, который я нахожу, когда я фокус переключения.

Также работают шахматные часы

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

ответил davidk01 4 MaramTue, 04 Mar 2014 01:26:24 +04002014-03-04T01:26:24+04:0001 2014, 01:26:24
5

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

Я делал это всю свою жизнь бессознательно, но недавно нашел вики об этом: http://en.wikipedia.org/вики /Doodle

ответил davidk01 4 MaramTue, 04 Mar 2014 01:26:24 +04002014-03-04T01:26:24+04:0001 2014, 01:26:24
4

Что бы вы ни делали , не ходите на любом из сайтов StackExchange. Они сосут вас в:)

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

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

ответил davidk01 4 MaramTue, 04 Mar 2014 01:26:24 +04002014-03-04T01:26:24+04:0001 2014, 01:26:24
1

В вашем случае встаньте и немного погуляйте. Если трудно вернуться в «зону», это, вероятно, потому, что вы слишком далеко. Ведение материала в Интернете - это еще одна зона, и вы легко теряете время. Дайте вашему мозгу перерыв, который он явно хочет, и пойдите на прогулку, возьмите wiz, идеально в туалете или поговорите со случайным сотрудником. Мы делаем много вещей за кулисами на автопилоте. Перерывы не являются плохими для кодирования, они хороши, но идея состоит в том, чтобы прекратить стрельбу по всем цилиндрам на некоторое время и посмотреть, что приходят ваши задние горелки, в то время как более сознательная часть вашего ума дает ему отдых. Хорошие разработчики не являются человеческими калькуляторами. Пусть части вашего мозга, которые делают все интуитивно понятные и сопоставимые образцы на автопилоте, делают свое дело какое-то время.

Если это не просто проблема с кодированием, вы можете рассмотреть ADD.

ответил davidk01 4 MaramTue, 04 Mar 2014 01:26:24 +04002014-03-04T01:26:24+04:0001 2014, 01:26:24
1

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

ответил davidk01 4 MaramTue, 04 Mar 2014 01:26:24 +04002014-03-04T01:26:24+04:0001 2014, 01:26:24
1

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

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

или что-то действительно.

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

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

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

ответил davidk01 4 MaramTue, 04 Mar 2014 01:26:24 +04002014-03-04T01:26:24+04:0001 2014, 01:26:24
1

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

ответил davidk01 4 MaramTue, 04 Mar 2014 01:26:24 +04002014-03-04T01:26:24+04:0001 2014, 01:26:24
1

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

ответил davidk01 4 MaramTue, 04 Mar 2014 01:26:24 +04002014-03-04T01:26:24+04:0001 2014, 01:26:24
1

Возможно, у вас немного СДВГ. Много людей. Механизмы копирования приведены в других ответах (или, возможно, на лекарствах).

ответил davidk01 4 MaramTue, 04 Mar 2014 01:26:24 +04002014-03-04T01:26:24+04:0001 2014, 01:26:24
1

В течение этих 10-30 секунд идите и делайте что-нибудь:

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

В течение этого времени не делайте того, что знаете, что он собирается занять вас долго (если вы не можете позволить себе потратить некоторое время), например:

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

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

ответил davidk01 4 MaramTue, 04 Mar 2014 01:26:24 +04002014-03-04T01:26:24+04:0001 2014, 01:26:24
0

Для интернет-отвлечения во время работы в целом я предлагаю плагин Pomodoro , если вы с помощью Google Chrome

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

ответил davidk01 4 MaramTue, 04 Mar 2014 01:26:24 +04002014-03-04T01:26:24+04:0001 2014, 01:26:24
0

То, что вы описываете, совершенно нормально.

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

  • 0,1 с: отсутствие воспринимаемой задержки
  • 1 с: изменение фокуса
  • 10 секунд: потеря внимания
  • 1 минута: пользователь переключается на другую задачу
  • 10 минут: пользователь встанет и уйдет.

Существует множество исключений, таких как сложные операции, например, ввод текста.

Когда мы делали работу с производительностью, мы часто задавали вопрос «насколько быстро должна быть операция X?» Ответ заключается в том, что, пока пользователь может воспринимать задержку, быстрее будет лучше.

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

См. также недавний блог Джеффа (тонны хорошего контента, который он приводит): http://www.codinghorror.com/blog/2012/03/visualizing-code-to-fail-faster.html

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

ответил davidk01 4 MaramTue, 04 Mar 2014 01:26:24 +04002014-03-04T01:26:24+04:0001 2014, 01:26:24
0

При выполнении ad-hoc-работы в SAS я нахожу следующую строку очень полезной:

dm log 'postmessage "Code finished"' continue;

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

ответил davidk01 4 MaramTue, 04 Mar 2014 01:26:24 +04002014-03-04T01:26:24+04:0001 2014, 01:26:24

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132