Программирование в расстроенных чувствах

Программирование в расстроенных чувствах

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

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

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

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

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

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

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

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

Программирование селезенки

Из книги Журнал «Компьютерра» №35 от 28 сентября 2005 года автора Журнал «Компьютерра»

Программирование селезенки Редакция «КТ» попросила Дмитрия Орешкина поделиться соображениями о возможностях математического моделирования общества как инструмента практической политической деятельности. В частности, о том, насколько обоснованна вера многих людей (в


49 Высокомерное программирование

Из книги Человеческий фактор в программировании автора Константин Ларри Л

49 Высокомерное программирование Если бы Данте жил в цифровой век, он обязательно предусмотрел бы еще один круг ада для преступников, пишущих подлый код. Я не говорю о создателях вирусов и взломщиках систем — для них ад может быть слишком хорошим местом. Нет, я имею в виду


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

Из книги Эффективное использование STL автора Мейерс Скотт

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


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

Из книги Добавьте в корзину. Ключевые принципы повышения конверсии веб-сайтов автора Айзенберг Джеффри

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


Программирование диалогов

Из книги Внедрение SAP R/3: Руководство для менеджеров и инженеров автора Кале Вивек

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


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

Из книги Интернет – легко и просто! автора Александров Егор

Программирование Если вы хорошо владеете какими-либо современными языками программирования (BASIC и Pascal, изучаемые в школе на уроках программирования, естественно, не в счет), то невостребованными на рынке интернет-работы вы наверняка не останетесь. Программисты в Сети


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

Из книги VBA для чайников автора Каммингс Стив

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


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

Из книги Linux: Полное руководство автора Колисниченко Денис Николаевич

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


27.3. Программирование сокетов

Из книги Adobe Flash. Создание аркад, головоломок и других игр с помощью ActionScript автора Розенцвейг Гэри

27.3. Программирование сокетов 27.3.1. Что такое сокет? Сокет — это двунаправленный канал между двумя компьютерами в сети, который обеспечивает конечную точку соединения. «Двунаправленный» означает, что данный могут передаваться в двух направлениях — от клиента к серверу и


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

Из книги Linux программирование в примерах автора Роббинс Арнольд

Программирование Не думайте, что изучив главу 2 «Введение в ActionScript» и главу 3 «Элементы ActionScript для создания игр», вы уже научились программировать. Существует разница между умением создавать код на ActionScript и опытом программирования.Большинству людей программирование


1.4.3. Программирование на С

Из книги Язык Си - руководство для начинающих автора Прата Стивен

1.4.3. Программирование на С Наиболее привлекательной частью GNU Coding Standards является глава 5, которая описывает написание кода на С, освещая такие темы, как форматирование кода, правильное использование комментариев, чистое использование С, именование ваших функций и


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

Из книги Основы программирования на Java автора Сухов С. А.

Программирование Kernighan Brian W. and Plauger P. J., The Elements of Programming Style (Second Edition), McGraw-HiII, 1978.В этом стройном классическом произведении используются примеры, взятые из других книг, для иллюстрации того, что нужно и что не нужно делать для однозначного и результативного программирования.


10. МНОГОПОТОЧНОЕ ПРОГРАММИРОВАНИЕ

Из книги Программирование на Java автора Вязовик Николай Александрович

10. МНОГОПОТОЧНОЕ ПРОГРАММИРОВАНИЕ Параллельное программирование, связанное с использованием легковесных процессов, или подпроцессов (multithreading, light-weight processes) — концептуальная парадигма, в которой вы разделяете свою программу на два или несколько процессов, которые могут


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

Из книги Написание скриптов для Blender 2.49 автора Anders Michel

Программирование на Java Автор: Н.А. Вязовик Интернет-Университет Информационных Технологийhttp://www.INTUIT.ruПоддержкаКурс создан при финансовой поддержке компанииSun Microsystems Информация о курсеКурс лекций посвящен современному и мощному языку программирования Java. В его рамках


 Программирование  ограничений

Из книги автора

 Программирование  ограничений Блендер имеет  много ограничений, которые Вы можете применить к объекту. Некоторые из них похожи на управляющие объекты (drivers), в том смысле, что они не ограничивают движение объекта, но могут копировать некоторые параметры, такие как