Я даже не знаю, имеет ли этот вопрос смысл ... но позвольте мне дать вам понять ...
представьте ... Вы полностью погружены в какую-то программную мысль / идею / концепцию, ваш мозг находится в наиболее активном состоянии, придумывая решение проблемы, или, как выразился Джоэл Спольски, - вы глубоко в своей "зоне" «И, вдруг, кто-то или какое-то событие разрушает ваше увлечение - что-то, чего вы просто не можете избежать, что-то, чему вы должны заниматься. ... воображение завершено .. назад к реальности
То, что может нарушить вашу концентрацию, может быть ...
- Вы вызваны на срочную встречу
- ваш код нарушил ежедневную сборку и ваш коллега звонит вам
- Вы просто вспомнили что-то, что вы должны были сделать, но забыли сделать это
- у твоего товарища по команде есть какие-то захватывающие новости, и ты должен слушать
- ваша девушка (или парень) только что пришел
Теперь предположим, что у вас есть всего 5-10 минут, прежде чем вам придется покинуть то, чем вы были глубоко заняты, и развлекать перерыв.
Мой вопрос - как вы быстро «спасаете» состояние души, в котором вы были, когда пришла диверсия. Вы пишете это в «какой-то форме» на бумаге или на компьютере, или вы просто «запоминаете» это как-то. Как вы спасаете эти точные мысли в течение 5-10 минут, чтобы позже, когда вы вернетесь, вы могли наверстать упущенное прямо из «точки», которую вы оставили.
Со мной часто случается так, что я просто не могу вспомнить те точные мысли, о которых думал до удара - и чувствую, что потерял хорошую идею или решение проблемы. я пытаюсь мыслить задним числом, изо всех сил пытаясь добраться до того ЖЕ когнитивного состояния, которое вдохновило меня на идею - но я расстраиваюсь, что не смогу «туда добраться».
Что-то подобное случается с вами? как вы "оправились" от этого?
Моя главная проблема не в коде - это те «абстрактные идеи», которые еще не были преобразованы в код, которые мне нужно как-то «сохранить».
-- Обновить --
После многих лет, я могу с уверенностью сказать, нет НИКАКОГО возможного способа сделать это. Никакое количество пометок вашего когнитивного состояния на листе бумаги не позволит вам восстановить его таким, каким он был. Наш мозг гораздо сложнее, чем ничтожество отрывков, когда дело доходит до информации, которую он активно хранит в любой момент времени.
Лучший способ - избегать отвлечения внимания, независимо от того, насколько это важно, разве что это ситуация жизни и смерти. Нет ничего важнее, чем быть в зоне и закончить ее.
Если ваше рабочее место достаточно наивно, чтобы не ценить чье-то «нахождение в зоне», тогда пора искать новое рабочее место. YMMV хотя. И с личными отношениями, это социальные навыки и щепотка артистизма, которые могут сделать мир добра.
источник
Ответы:
Перед тем, как оставить свой компьютер, я напишу, что я делал, на листе бумаги или на листе бумаги. Я обычно делаю это в любом случае как часть исправления ошибки или анализа. Это действительно полезно, когда ошибка (повторно) открыта позже , вы все еще можете увидеть свои мысли месяц назад и узнать, что вам нужно сделать намного быстрее.
Также: установите несколько закладок в вашем коде. Когда вы вернетесь, вы можете посмотреть, что вы делали, просмотрев закладки, которые вы установили.
источник
Я достаю локальное приложение для заметок и записываю свой план на будущее.
Я нашел это, чтобы помочь больше всего. 100% времени я не могу вспомнить, что я планировал сделать, когда вернусь, идеи легко найти, но помнишь ли ты фактические шаги, которые ты собирался сделать?
Я использую что-то вроде;
Я сохраняю его на рабочем столе и сохраняю файл открытым.
Я обнаружил, что для меня это имеет эти преимущества;
источник
В дополнение к превосходному предложению записывать вещи, это навык, который может быть развит с ...
Практика.
Раньше я был худшим в мире в многозадачности. Люди боялись перебивать меня, потому что мне было так неприятно. Затем я понял, что на самом деле это был не процессор с несколькими параллельными ядрами, а прерывание с переключателями задач. Поэтому я начал тренироваться, чтобы расслабиться и принять это как необходимую часть жизни.
Десять лет спустя я использую Pomodoro-подобную систему, где я просто делаю перерыв, когда таймер выключается. После нескольких минут перерыва удивительно легко вернуться «в зону» в расслабленной обстановке - я с нетерпением жду этого! И для более длительных перерывов эти письменные заметки бесценны. Теперь я могу довольно легко восстановить практически все это умственное «состояние процессора», если не пройдет больше суток.
Кроме того, поскольку я теперь более привык справляться с перерывами, я больше не такой ворчун, когда люди делают это. Мне также стало намного лучше, если просто сказать: «Подождите минутку, пока я делаю заметку». Удивительно, насколько приятнее мои социальные взаимодействия!
Мозг подобен мышечной мускулатуре, и он становится лучше в таких вещах, как многозадачность, если вы даете ему все более сложные тренировки.
источник
Это происходит все время! Когда я занимаюсь написанием кода, я могу сказать 90% людей подождать несколько секунд - они знают, что в их интересах не беспокоить меня. В течение этих нескольких секунд я намеренно нажимаю некоторые клавиши в строке кода, над которым я работал, и отмечаю строку выше с помощью XXX (это хорошо выделяется в vim).
Затирание кода сделано так, что программа не будет компилироваться, и я вынужден посмотреть на эту строку. Для большинства моих языков, на которых я пишу, этого достаточно, чтобы я мог посмотреть, где остановился, и быстро перенести свою память в продуктивное состояние.
Я также узнал, что пребывание в «зоне» в наши дни стало роскошью (от постоянных перерывов). Хотя это определенно не идеально с точки зрения производительности, оно заставляет вас максимально использовать все, что у вас есть.
источник
Я обнаружил, что всякий раз, когда я работаю с git, у меня меньше проблем с оставлением работы (и, что более важно, продолжая работать над ней). Это не из-за самого git, а из практики, которую я применил при изучении рабочих процессов git. Я говорю о теме веток .
Если вы делаете все значимые «целые» в своей разработке в отдельной ветке тем, гораздо легче вернуться к своей работе. Вот почему
Если у вас есть дисциплина, такой способ работы значительно облегчает уход от вашей работы и ее последующую работу.
Когда я работаю над чем-то, я всегда сталкиваюсь с работой, связанной с моей текущей темой. Опять же, дисциплина окупается. Либо закончите свою текущую работу. Если вы не можете (у меня часто возникает эта «проблема» - «мне нужно исправить это сейчас» и т. Д.), Просто создайте новую ветку темы для исправления (или рефакторинг, улучшение, что угодно). Даже если ваше текущее рабочее пространство не готово к фиксации, просто
git stash
сделайте небольшую работу в своей теме иpop
перейдите к своей текущей работе.источник
Для сохранения состояния задачи и перехода к другому, я очень люблю сохранение контекста Mylyn . Что Mylyn делает, так это сохраняет и позже восстанавливает точное состояние вашей IDE (открытая перспектива, открытые файлы, расположение в них и т. Д.).
Для вещей, которые я делал, я помещал комментарии TODO. Eclipse автоматически показывает их как список задач.
источник
Я развиваюсь в ВМ. И когда меня прерывают (конец дня, обед, встречи и т. Д.) И я не хочу терять мысли, я просто пишу комментарий в коде, что-то вроде:
Иногда эти комментарии продолжаются в несколько строк, если это сложно. Но я просто пишу комментарий в коде, в IDE, затем оставляю IDE открытой и использую команду «Suspend and Exit» на ВМ. Затем, когда я снова поднимаю его, сразу передо мной появляется мой комментарий, который помогает мне быстро вернуться к тому, о чем я думал раньше.
источник
Я привык использовать программное обеспечение для составления карт разума (в настоящее время FreeMind). Я использую его для всего, но для этого он включает список дел для каждого проекта, над которым я работаю. Когда я обдумываю решение данной проблемы в списке, я начинаю печатать ее в своей карте ума. Вот где я храню свое решение, даже когда я работаю над ним, вместо того, чтобы пытаться держать все это в моей голове.
Это позволило мне сосредоточиться на деталях реализации кода, не теряя при этом общей картины. Это также означает, что прерывания оказывают минимальное влияние на мою работу, потому что я в любом случае сохраняю записанные шаги, которым планирую следовать.
Конкретное программное обеспечение или метод отслеживания, который вы используете, не имеет значения. Эта идея была бы так же полезна в блокноте или с листком бумаги. Соответствующая концепция заключается в том, что вы записываете свои идеи так, как они есть, поэтому они всегда доступны.
источник
Если вы находитесь в среде с высоким уровнем прерываний, я считаю, что ведение почасового журнала (запишите пару пуль каждый час) очень полезно. Я использую комбинацию TiddlyWiki и бумаги (Tiddly для документирования / поиска, бумага для быстрого мышления).
Я начал это делать, работая с ребенком дома, и это повысило мою продуктивность по всем направлениям. Это помогает решить проблему переоткрытия моих мыслей и имеет приятный побочный эффект - повысить свое самосознание (на прошлой неделе я потратил час на изменение метода разбивки битов на 10 строк, чтобы сделать его более читабельным. Возможно, это не лучшее применение моего времени).
источник
первое - это страховка от перерывов, возврата и повторения себя позже, в то время как второе очень важно для определения того, где вы остановились
источник
Я держу текущие комментарии в блокноте рядом со мной. Я попытался сделать это в файле блокнота, но по какой-то причине он не работает так же эффективно, как записывание. Если вы разумно организованы в отношении того, что вы записываете в качестве своей работы, у вас, по сути, есть основа ваших абстрактных мыслей, к которой можно вернуться.
источник
То, что я обнаружил, очень помогло (даже для «Хорошо, теперь я иду домой и завтра вернусь на работу») постоянно размышляло над несколькими мыслями, а затем занималось чем-то из этого списка.
Но он определенно полагается на (i) активную обработку этого списка - при минимальной очистке его, вместо того, чтобы заканчивать с сотнями недоделанных «списков задач», к которым вы хотите вернуться, и (ii) отрабатывать достаточно, чтобы иметь опыт знать, что вам нужно писать, а что нет - в каких задачах есть «кнопка добавления панели инструментов» и детали дизайна, которые вы можете воссоздать в следующий раз, и какие задачи вы уже выполнили наполовину без планирования понимая это, и вам нужно записать это сам.
Также, очевидно, старайтесь избегать ненужных отвлекающих факторов; всегда хорошо иметь возможность продолжать отвлекаться, и всегда будут некоторые, но не поощряйте слишком многих.
источник
Я действительно вызвал несколько ошибок в результате того, что меня поспешно и внезапно прервали во время обеденных перерывов в бывшей компании. В итоге я попросил еще несколько минут или просто оставил без меня только для того, чтобы они заставили меня присоединиться, и поэтому я оставил код наполовину написанным, мысль наполовину завершенной, только чтобы вернуться к коду через час и потерять отслеживать и ошибаться.
В конечном итоге я начал компенсировать это, делая заметки и выписывая списки задач по ходу дела и просто поддерживая, так сказать, «меньший умственный стек». TDD также помогает, поскольку тесты показывают, что вы пытаетесь сделать с дизайном, а также гарантируете, что вы делаете это.
Я также разработал язык, который находится где-то между тем, что интуитивно кажется мне кодированием и человеческим языком. Он состоит из звуков вроде « Nyargh! Bloobly-bloop! », И я иногда издаю эти звуки, если люди пытаются поговорить со мной, пока я занят. Хотя они не понимают эти звуки, это говорит о том, что я нахожусь в состоянии, не способном должным образом общаться с людьми в данный момент, и в этот момент они уходят и позволяют мне возобновить мышление и написание кода.
Тем не менее, моя жена привыкла к мысли, что она может говорить со мной, а я киваю и так далее, и мысленно не обработал ни единого слова, которое она сказала. Как будто я вижу, как движется ее рот, и слышу, как издаются звуки, но на самом деле это не переводится должным образом в машинные инструкции. Она как бы научилась замечать мои ответы, когда это происходит, когда я погружен в свои мысли.
Я также иногда на полпути обрабатываю то, что она сказала, и просто отправляю это в параллельную очередь, например, если она задает мне вопрос, и в этот момент я не могу полностью обработать это, пока я не выкину все из своей умственной очереди (которая использует очень неэффективно). блокирующие механизмы для безопасности резьбы). Таким образом, она привыкла задавать мне вопрос только с поклоном и без ответа или с бессмысленным ответом типа «да» или «bloobly-bloop» на «что вы хотите сделать сегодня вечером?» только для меня, чтобы обработать это десять минут спустя и ответить на вопрос, как будто я только что услышал это секунду назад.
Кроме того, я не знаю, как вы, ребята, но я очень рассеян, когда теряюсь в мыслях о программировании. В итоге я однажды целую вечность искал свои носки, забывая, куда их положить. Я как-то положил их в холодильник. Я думаю, что пытался взять напиток или что-то с моими носками в руке и каким-то образом положить носки в холодильник и забыл взять напиток. В другой раз я пошел на свалку после парковки машины с ключами от машины и попытался выбросить упаковку, которая у меня была. Вместо этого я бросил ключи от машины в мусорную свалку, и я даже не осознавал этого, пока не попытался разблокировать машину с помощью пластиковой упаковки, после чего мне пришлось погрузиться в мусор для своих ключей. Во всяком случае, моя жена привыкла к таким вещам, когда мои вещи появляются в нечетных местах.
Просто для этой части, как в стороне, знакомства и романтика сложно с программированием. У меня было много прошлых отношений, где знакомства проходили чудесно, пока мы не стали жить вместе, и они увидели, что эта сторона меня погружена в мысли все время, сидя весь день за компьютером и ходя в мыслях, отвечая « bloobly-bloop! », И потерял интерес. Трудно найти человека с терпением для этого. Мне очень повезло с моей женой, которая терпит это.
источник