it-swarm-es.com

¿Qué hacer cuando la actividad de programación se convierte en un problema?

Una vez vi un programa (no recuerdo cuál) en el que hablaba de personas que "experimentan fluidez" cuando están haciendo algo que les apasiona. Cuando "fluyen", tienden a perder la noción del tiempo y el entorno, concentrándose solo en la actividad que tienen entre manos.

Esto me pasa mucho cuando programo; sobre todo cuando me enfrento a un problema. Me niego a rendirme hasta que se resuelva. Por lo general, esto hace que las horas pasen apresuradamente y me olvide de almorzar, la cena se demore hasta bien entrada la noche, y cuando finalmente miro el reloj, es hasta altas horas de la madrugada y solo obtendré unos pocos. horas de sueño antes de tener que levantarse temprano por la mañana. (Esto no quiere decir que esté en flujo solo cuando enfrento un problema, pero me resulta particularmente difícil detener la programación y dar un paso atrás cuando hay algo que no puedo resolver de inmediato).

Me encanta la programación, pero odio cuando interrumpe mis rutinas normales (lo más importante, los patrones de alimentación y sueño). Y permanecer sentado durante tantas horas, mirando una pantalla, no es saludable.

Por favor, ¿alguna idea sobre cómo puedo controlar mi desenfrenada actividad de programación?

24
gablin

Casarse

Un compañero gritando "La cena está lista". o "Vete a la cama ahora, o estarás de mal humor por la mañana" te sacará de esa zona.

Seriamente. La única razón por la que llego a la cama a tiempo es porque mi esposa me odia por la mañana después de la programación nocturna.

También hay otros beneficios.

43
Steven Evers

Beber mucha agua. Es bueno para usted y provoca ciertos impulsos que son difíciles de resistir.

32
Frank Shearar

El estado mental que estás describiendo suena como Flujo , un fenómeno estudiado extensamente por el psicólogo húngaro Mihaly Csikszentmihalyi . En resumen, sus principales características son:

  • Metas claras
  • Alto grado de concentración en un campo de atención limitado
  • Pérdida de la timidez
  • Sentido del tiempo distorsionado
  • Una sensación de control personal sobre la situación o actividad.
  • La actividad es intrínsecamente gratificante, por lo que hay una acción sin esfuerzo.
  • Falta de conciencia de las necesidades corporales (como hambre o fatiga)

Los programadores informáticos parecen estar más capacitados para lograr Flow, y se ha planteado la hipótesis de que las personas con una personalidad autotélica también están en mejores condiciones de lograr Flow.

El flujo generalmente se considera una experiencia positiva correlacionada con la productividad máxima. En su libro Inteligencia emocional, escribió el psicólogo Daniel Goleman, "El sello distintivo del fluir es un sentimiento de alegría espontánea, incluso de éxtasis, mientras se realiza una tarea".

Entonces, dado todo eso, ¿por qué diablos quieres reprimirlo? Mi consejo sería saborearlo y fomentarlo tanto como sea posible.

Sin embargo, dado que desea extirpar Flow, aquí hay un par de ideas:

  1. El aburrimiento y la ansiedad bloquean el flujo. Así que cultivar estos estados mentales podría funcionar. Pero lo recomiendo encarecidamente.
  2. Hay algunas condiciones que hacen posible el flujo (metas claras, equilibrio entre su nivel de habilidad y el nivel del desafío, y la tarea en la que está trabajando debe tener retroalimentación inmediata). Deshacerse de cualquiera de estas condiciones también puede deshacerse de Flow.
  3. En mi experiencia personal, Flow disminuye en frecuencia e intensidad con la edad. Por lo tanto, es posible que desee "esperar".
14
A. N. Other

Me encanta cuando eso sucede ... Eso es lo que espero cada vez que me siento a programar. Si yo fuera usted, no intentaría detenerlo, es posible que lo desee más tarde.

6
Fosco

Todas las otras respuestas a esta pregunta solo se enfocan en trucos para interrumpirlo , para recordarle que debe detenerse: casarse (para que alguien lo obligue a detenerse ), beba agua (para que la necesidad de orinar lo obligue a detenerse), programe un temporizador (para recordarle que debe detenerse). Estos son todos trucos y no abordan el problema central.

"Flow" puede ser algo real, pero no es un superpoder mágico. En algún momento necesitas dormir. Lo que te mantiene en el teclado, incluso cuando estás exhausto, es el miedo. Tienes miedo de que si te detienes ahora, no tenga tiempo para terminar mañana o no recordará dónde lo dejó. Cuando está cansado, el problema comienza a agravarse: es más difícil concentrarse, por lo que se vuelve menos efectivo, por lo que le lleva más tiempo lograr las cosas.

¿Cuántas veces has trabajado hasta altas horas de la madrugada, luchando con un problema, solo para rendirte en la derrota, sintiéndote miserable, luego después de una noche de descanso, se te ocurre una solución? en el momento de volver al trabajo? Eso no es suerte. Esa es una pista bastante importante de que el tiempo que pasa lejos del teclado es tan importante como el tiempo que pasa en él.

Debe aprender a confiar en que trabajará de manera más eficiente si trabaja en un horario regular y descansa, que si trata su trabajo como algo que necesita seguir trabajando tan rápido como Suena simple e incluso puede que estés de acuerdo conmigo ahora, pero se necesita algo de trabajo para aprenderlo en el nivel en el que tu mente inconsciente no pelea contigo tan pronto como estás cansado. con trabajo inconcluso por hacer.

6
benzado

Pon un temporizador. Simple y llanamente. Utilice este temporizador para dividir sus actividades y evitar que no coma, duerma, etc.

5
Levi Hackwith

¿Lo que parece querer es una forma más controlada de trabajar, sin dejar de ser productivo con su programación?

Si es así, eche un vistazo a La Técnica Pomodoro donde deliberadamente toma descansos cortos y no disruptivos cada media hora y descansos más largos cada dos o tres horas.

También implica asegurarse de que sus tareas se dividan en cosas que se pueden hacer en pequeñas partes, para que se concentre en las cosas que realmente deben hacerse y evite huir por un solo problema.

Existen muchas técnicas similares, que pueden variar en detalle, pero los puntos clave de asegurarse de que los problemas se dividan en tareas discretas que se puedan tachar, y que debe tomar descansos regulares, deberían ayudarlo a concentrarse cuando lo necesite. y seguir adelante cuando, de lo contrario, podría perder el tiempo en una madriguera de conejo.

3
Peter Boughton

Entrénate para terminar en un momento específico y cíñete a él. Por ejemplo, si necesita salir a las 5 pm, tenga una alarma que suene a las 4, 4:30, 4:45 y 4:55 advirtiéndole que simplemente la deje y continúe al día siguiente.

La parte difícil, por supuesto, es entrenarte para hacer esto. Esto requiere principalmente autodisciplina, pero también se puede ayudar dividiendo su trabajo en unidades. La ventaja de las unidades es que puede completar una tarea más rápido y obtener la satisfacción de completarla antes, lo que podría darle suficiente sentido para escuchar la alarma que suena. Será difícil, pero es algo que tienes que hacer.

2
TheLQ

Fíjese metas para la noche. Me dan la impresión de las respuestas que básicamente te sientas, empiezas a trabajar, entras en un flujo y simplemente continúas.

Es tanto un problema de administración del tiempo como un problema de autocontrol: escriba las cosas que está tratando de lograr (nada mental, no se moleste con el software, coloque estas tareas en notas, etc.). Garabatea una estimación contra ellos, es decir, "Escribir la función X, debería tomar una hora". Tal vez incluso agregue una puntuación de 'dificultad' para que pueda tener una idea de los problemas potenciales con los que se encontrará y qué tan gravemente caerá en su flujo y perderá tiempo.

Antes de comenzar a trabajar esa noche, calcule cuántas horas puede dedicar y elija tareas que se ajusten a ese intervalo de tiempo; esto es especialmente importante (es decir, "tengo dos horas libres, voy a tomar dos tareas fáciles de 1 hora, o una sola tarea difícil de 2 horas ").

Esto es, en esencia, lo que hago ahora. Tuve un problema similar al tuyo; al final me di cuenta de que perder este tiempo era simplemente el resultado de no anticipar los problemas o de conocer el esfuerzo requerido para la tarea. Tan pronto como comencé a pensar en esto al principio y dividí mi proyecto en pequeñas tareas, se volvió mucho más manejable.

Sin embargo, agregaré una advertencia a esto; El flujo es algo bueno (tm), y estimar es adivinar, a veces simplemente sucede. Lo que busca un equilibrio y una mejor gestión de sus tareas le daría esto.

2
dannywartnaby

[Ya tengo una respuesta a esta pregunta, que fue totalmente ignorada. Así que solo soporto que me ignoren de nuevo ...]

Hoy he estado pensando en esta pregunta mientras estoy codificando. Para yo, una de las principales razones por las que no quiero dejar algo es que los costos de transición son demasiado altos. Tengo 5 ventanas de terminal abiertas, dos o tres servidores abiertos, etc., y más sé lo que estoy haciendo

Para manejar que las ventanas de la terminal estén abiertas, etc., solo duermo mi máquina y la mayoría de los estados se mantienen. Pero en cuanto a saber dónde estás y qué estás haciendo ...

Una de las formas que PODRÍA ayudarte a detenerte cuando estás en medio de algo es documentar dónde estás sobre la marcha. Prácticamente hago esto ahora de todos modos, de lo contrario mi ADD se hace cargo: siempre escribo las siguientes 4 o 5 mini-tareas que necesito hacer, más CUALQUIER COSA que guardo en mi memoria a corto o mediano plazo. De esta manera, retomar la tarea al día siguiente es más fácil.

Entonces, al reducir los costos de detenerse y reiniciar, puede estar más motivado para detenerse. O no, y esta respuesta también está fuera de lugar :)

1
Dan Rosenstark

Configure un reloj de alarma para cuando desee detenerse y decida si desea continuar masticando o dar por terminado el día.

0
EpsilonVector

Utilizo Workrave para asegurarme de tomar descansos. También tiendo a entrar mucho en el flujo y me encuentro sin comer, dormir, etc. La implementación de una herramienta de sincronización me ha ayudado enormemente. A veces también es bueno alejarse de un problema. Descubrí que mi resolución de problemas ha mejorado desde que utilicé Workrave. Los descansos son buenos para la mente.

0
Corv1nus

sa la tecnología para sacarte del flujo

Por ejemplo, si está usando Windows 7, los controles parentales pueden bloquear su cuenta en momentos específicos (horas de comida, hora de dormir, etc.). Mi sugerencia sería configurar otra instalación de Windows (arranque dual) con todas sus herramientas de desarrollo. Elimine todo el desarrollo relacionado con su instalación original de Windows. En la instalación de desarrollo, configure una cuenta de administrador con una contraseña larga generada automáticamente que le confíe a otra persona (o ponga la contraseña fuera de su alcance de alguna otra manera), y configure una cuenta limitada con controles parentales que limitan las horas puede usar la cuenta, de modo que durante ese tiempo no pueda acceder a su cuenta (bloquear la estación de trabajo no cierra ninguna aplicación, por lo que no habrá pérdida de trabajo).

Obtener la contraseña de administrador para anular los controles parentales debería ser un proceso lo suficientemente largo e inconveniente como para romper el flujo, o un proceso que no consideraría realizar en absoluto (por ejemplo, despertar a alguien tarde en la noche para pedir la contraseña ). Tan pronto como salgas de ella, el hambre, la sed y/o la somnolencia se asentarán, reemplazando a la adrenalina, y volver a la corriente será bastante difícil.

Esa es la idea general. Estoy seguro de que existen soluciones tecnológicas similares que puede probar y que serán más adecuadas para usted (y que funcionen en su sistema operativo preferido). Estoy seguro de que también hay soluciones que requieren menos trabajo para configurar, pero encuentro que cuanto menos requieren, más fáciles son de omitir y menos posibilidades tienen de interrumpir su flujo.

0
Allon Guralnek

Está claro que lo que te molesta es tener que levantarte temprano en la mañana y NO quedarte despierto hasta altas horas de la noche, ni perderte el almuerzo. Habla con tu jefe, esposa, cliente o quien sea, y trata de conseguir algunas horas que respeten tus atracones de trabajo obsesivo y adicto al trabajo. Suponiendo que programe de manera efectiva en esos momentos, ¿quién querría que estuviera equilibrado y "saludable" (grandes citas en torno a eso: como si los ciclos aburridos fueran saludables)?

0
Dan Rosenstark