Как вы боретесь с усталостью программирования? [закрыто]

48

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

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

Или я один в этом?

sevenseacat
источник
4
Измерим ли ваш прогресс в ваших проектах, даже когда вы преодолели препятствия? Если нет, подумайте о том, чтобы сделать его измеримым. Видимость устойчивого прогресса - лучшее, что я знаю.
7
Это напоминает мне о Морт (Терри Пратчетт) - бит, где Морт очищает навоз в конюшнях. «Давайте посмотрим, подумал он, я сделал почти четверть, давайте назовем это треть, так что, когда я закончу этот поворот у сена, будет больше половины, назовем это пять восьмых, что означает еще три» нагрузка на тачку ... Ничего особенного не доказывает, за исключением того, что с удивительным великолепием вселенной гораздо легче иметь дело, если вы думаете о нем как о серии маленьких кусочков ".
Steve314
@ Steve314: +1 Скалы Пратчетта.
Orbling
Попробуйте эффект сома .
rwong
@ rwong: Большинство моих проектов сольные (или очень маленькие команды). Хотя это звучит как интересная идея.
sevenseacat

Ответы:

42

Прокрастинация

То, что вы описываете, вероятно, промедление . Это очень распространенное явление. Нажмите на ссылку и прочитайте о теории временной мотивации .

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

Вы должны узнать вас на этом изображении:

альтернативный текст

8bittree
источник
2
+1 за принуждение себя. Я нашел то же самое, чтобы быть правдой со мной; только начало - самая трудная часть.
Майкл К
2
Разве вы не находите с годами, что все проекты спускаются по вертикальной оси. Также есть тенденция к движению по горизонтали.
Orbling
Сегодня я откладывал весь день вместо того, чтобы кодировать свой проект с открытым исходным кодом. Проклятье.
gruszczy
1
+1 за гвоздь эту проблему.
Конор
2
Я считаю, что если в списке есть только неприятные задачи наверху, то почти невозможно заставить себя сделать это ...
Роман Старков
10

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

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

У программиста должен быть драйв больше, чем у Зеленого Фонаря . Это тот маленький зуд, который возникает у нас, когда что-то не работает, мы пытаемся копнуть глубже и выяснять, почему, будь то задавая вопросы или читая книгу.

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

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


источник
Так что, в основном, погрузиться в проект, но в занятую работу? И да, это худшее чувство - когда ты вкладываешь все это время во что-то и все еще чувствуешь, что ничего не достиг.
sevenseacat
3
@Karpie Вы все еще что-то делаете. Выполнение некоторой «занятой работы» позволяет вам продолжать работать над чем-то, что нужно сделать, но это не то, что требует от вашего мозга стрельбы по всем цилиндрам.
Я не знаю, мне кажется, что работа с GUI всегда идет мне на пользу. Заставить его работать правильно и быть полезным - это весело и сложно, но для меня это очень сложно.
Майкл К
Когда я на какое-то время отхожу, примерно в 50% случаев я никогда не возвращаюсь ...: /
Роман Старков
6

У меня есть тенденция попадать в эту область, почти все время.

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

Этого достаточно, чтобы утомить тебя до смерти.

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

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

Orbling
источник
1
+1, тимбилдинг работает отлично. К сожалению, очень сложно заинтересовать других людей своими личными проектами.
dan_waterworth
@dan_waterworth: Правда, хотя прошло очень много лет с тех пор, как я программировал для себя. 60-80 часовая неделя, с драгоценным небольшим отпуском в течение многих лет, скорее снимает желание.
Orbling
2
+1 за честность: «... пока мне не надоест другие вещи и я не начну чувствовать вину ... Производительность снижается примерно до 20% ...»
Кавка
Можете ли вы дать больше подробностей в командном программировании?
Esqarrouth
6

Парное программирование

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

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

Энди Лоури
источник
+1, поскольку это было единственное, что я предложил в своем ответе, хотя и назвал это командным программированием, так как более двух - это хорошо. ;-)
Orbling
3

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

dan_waterworth
источник
1
+1 для нового языка, +1 для Haskell. Математика голосования, кажется, делает 1 + 1 = 1однако.
Orbling
1
@ Orbling, это потому что1 | 1 = 1
dan_waterworth
Я думаю, 1 & 1 = 1что будет ближе к моему намерению. ;-)
Orbling
1
@ Orbling, как насчет того P(vote) = S((1 + 1)/t), где S(x)сигмовидная функция? (Вы можете выбрать температуру системы).
dan_waterworth
Это то, что я пробовал в своем последнем проекте, я пытался изучать Ruby и Rails! Это была часть о том, что там нет документации, хе ...
sevenseacat
2

Я начинаю поражать другие области в течение часа или до. Я использую Eclipse на работе, и Eclipse позволяет вам вставить // TODO:код в ваш код, а затем сопоставить их все в окне для вас. Если я вижу что-то, что я хочу изменить или исправить, пока я работаю над чем-то другим, я добавляю TODO, чтобы не сломать свой импульс. Когда я застреваю слишком долго (больше часа или двух), я начинаю прорабатывать список. Это обеспечивает смену обстановки, и в большинстве случаев эти изменения довольно просты, что помогает мне расслабиться. Часто ответ выскакивает, в то же время давая мне почувствовать, что я что-то совершаю.

Примечание: я люблю рефакторинг и делаю кусок кода лучше и лучше. Ваш пробег может варьироваться.

Майкл К
источник
1
+1 Это то, что я всегда делаю, особенно полезно для обеспечения плавного потока кода. Конечно, если следовать обычным доктринам кодирования, полный псевдокод - это хорошая идея, медленно переходящая в реальный код.
Orbling