¿Cómo se combate la fatiga de la programación? [cerrado]

48

No la fatiga como en 'Necesito dormir' sino la fatiga como en 'Ya no puedo ser molestado', lo que generalmente se produce cuando llegas a obstáculos en cualquier proyecto en el que estés trabajando, generalmente cuanto más te acercas a los plazos.

Puede ser en proyectos de trabajo o proyectos personales, pero es algo que sigo golpeando cada vez más últimamente. Voy a tener una idea, comenzar a trabajar en ello, tener unos días realmente buenos y progresar, luego solo algunas cosas molestas me harán tropezar, no puedo hacer que las cosas funcionen de la manera que quieres, he llegado a limitaciones en el marco, tengo problemas para los que no puedo encontrar documentación, etc. y se vuelve demasiado frustrante.

¿O estoy solo en esto?

sevenseacat
fuente
44
¿Es medible su progreso en sus proyectos incluso cuando llega a obstáculos? Si no, considere hacerlo medible. La visibilidad del progreso constante es lo mejor que conozco.
77
Esto me recuerda a Mort (Terry Pratchett), la parte donde Mort está limpiando el estiércol en los establos. "Veamos, pensó, he hecho casi un cuarto, llamémosle un tercero, así que cuando haya terminado esa esquina junto al pajar será más de la mitad, llámalo cinco octavos, lo que significa tres más cargas de carretilla ... No prueba mucho excepto que el asombroso esplendor del universo es mucho más fácil de manejar si lo piensas como una serie de pequeños trozos ".
Steve314
@ Steve314: +1 rocas de Pratchett.
Orbling
Prueba el efecto Bagre .
rwong
@rwong: La mayoría de mis proyectos son proyectos en solitario (o equipos muy pequeños). Sin embargo, parece una idea interesante.
sevenseacat

Respuestas:

42

Dilación

Lo que usted describe es probablemente la dilación . Es un fenómeno muy común. Haga clic en el enlace y lea sobre la Teoría de la motivación temporal .

Para vencer la dilación, hago listas. Cuando siento que estoy postergando, abro la lista y me obligo a trabajar en el primer elemento. Después de unos minutos, entro en la zona o el flujo como lo describe la psicóloga Mihály Csíkszentmihályi .

Deberías reconocerte en esta imagen:

texto alternativo

8bittree
fuente
2
+1 por forzarte a ti mismo. He encontrado que lo mismo es cierto conmigo; solo comenzar es la parte más difícil.
Michael K
2
No encuentras a medida que pasan los años que todos los proyectos descienden en el eje vertical. Suele haber movimiento en la horizontal también.
Orbling
Hoy he postergado todo el día en lugar de codificar mi proyecto de código abierto. Maldición
gruszczy
1
+1 por resolver este problema.
Conor
2
Me parece que si la lista tiene solo tareas desagradables en la parte superior, entonces puede ser casi imposible obligarse a hacerlo ...
Roman Starkov
10

Lo que funciona para mí es alejarme del problema que plantea la barrera. Esto puede significar que otros han sugerido trabajar en otra parte de la base del código. Puede significar salir a correr. He descubierto que golpearse la cabeza contra una barrera solo fortalece la barrera. Cambiar su enfoque a algo no relacionado le permitirá a su subconsciente resolver el problema. Me he sorprendido muchas veces al encontrar la solución mientras estaba en la ducha, etc.

Jeff
fuente
44
Las duchas son definitivamente buenos lugares para la corrección de errores.
Orbling
Ese es un punto realmente bueno sobre solo fortalecer la barrera. Creo que eso es lo que necesito hacer, dividir los proyectos en partes dispares para que cuando mi cerebro haya tenido suficiente de uno, cambiar a otro, usar una parte diferente del cerebro.
sevenseacat
8

Un programador debe tener una unidad más grande que la de Green Lantern . Es esa pequeña picazón que tenemos cuando algo no funciona, tratamos de profundizar y descubrir por qué, ya sea haciendo preguntas o leyendo un libro.

Lo que puede hacer para detener esa fatiga es alejarse un poco del problema y trabajar en otro aspecto de la tarea que le asignaron.

Para mí, las tareas de programación que me hacen relajarme como un niño están trabajando en la GUI. Es muy fácil y me permite apagar el cerebro. También le da a mi cerebro el efecto placebo de que estoy logrando algo.


fuente
Entonces, básicamente, ¿permanecer inmerso en el proyecto, pero en el trabajo ocupado? Y sí, esa es la peor sensación: cuando has dedicado todo este tiempo a algo y aún sientes que no has logrado nada.
sevenseacat
3
@Karpie Todavía estás logrando algo. Hacer algo del 'trabajo ocupado' le permite seguir trabajando en algo que debe hacerse, pero no es algo que requiera que su cerebro dispare en todos los cilindros.
No sé, el trabajo de la GUI siempre parece estar ejecutándose en plae para mí. Hacer que funcione correctamente y sea utilizable es divertido y desafiante, pero hacer que se vea bien es muy difícil para mí.
Michael K
Cuando me alejo por un tiempo como este, aproximadamente el 50% de las veces nunca vuelvo ...: /
Roman Starkov
6

Tengo tendencia a caer en esta área, casi todo el tiempo.

Comenzar un proyecto es fácil, todo es nuevo, cosas para investigar y descubrir, prototipos para construir, todo divertido. Pero a medida que el desafío se desvanece, mi interés disminuye. Obteniendo las versiones de producción de la compilación de software, solucionando pequeños errores ridículos que existen debido a problemas oscuros con alguna plataforma que tienes que usar.

Es suficiente para aburrirte.

Nunca he encontrado nada demasiado útil con esto, solo trabajo o juego con algo completamente diferente (stackoverflow es bueno para esto), hasta que me aburro con las otras cosas y empiezo a sentirme culpable. Luego, realiza un poco del aburrido trabajo. La productividad se reduce a aproximadamente el 20%, pero tal es la carga de la codificación aburrida.

Hay una solución, la programación en equipo, muy difícil de detener cuando otros están directamente involucrados.

Orbling
fuente
1
+1, el trabajo en equipo funciona muy bien. Desafortunadamente, es muy difícil lograr que otras personas se interesen en sus propios proyectos personales.
dan_waterworth
@dan_waterworth: Cierto, aunque han pasado muchos años desde que programé por mi propio bien. De 60 a 80 horas semanales, con pequeñas vacaciones preciosas durante años, elimina el deseo.
Orbling
2
+1 por honestidad: "... hasta que me aburra con las otras cosas y empiece a sentirme culpable ... La productividad se reduce a aproximadamente un 20% ..."
Kavka
¿Puedes dar más detalles en la programación del equipo?
Esqarrouth
6

Programación en pareja

Creo que la programación de pares realmente ayuda en estos casos. Encuentra a alguien con quien emparejar bien y ataca los problemas, no hay nada mejor que otra opinión o una caja de resonancia para superar los obstáculos. Una vez que comienzas a progresar nuevamente, el entusiasmo tiende a volver por sí solo.

Desafortunadamente, esto está mal visto en nuestra empresa, por lo que tiendo a hacerlo solo cuando realmente puedo sentir los problemas que afectan mi productividad.

Andy Lowry
fuente
+1, ya que eso fue lo único que sugerí en mi respuesta, aunque lo llamé programación en equipo, ya que más de dos es bueno. ;-)
Orbling
3

Aprender un nuevo lenguaje. No hay nada como aprender un nuevo idioma para despertar tu interés. Sugeriría a Haskell.

dan_waterworth
fuente
1
+1 para el nuevo idioma, +1 para Haskell. 1 + 1 = 1Sin embargo, el voto matemático parece hacer .
Orbling
1
@Orbling, es porque1 | 1 = 1
dan_waterworth
Creo que 1 & 1 = 1estaría más cerca de mi intención. ;-)
Orbling
1
@Orbling, ¿qué tal P(vote) = S((1 + 1)/t), dónde S(x)está la función sigmoidea? (Puedes elegir la temperatura del sistema).
dan_waterworth
Eso es lo que probé con mi último proyecto, ¡intenté aprender Ruby and Rails! Esa era la parte de que la documentación no estaba allí, je ...
sevenseacat
2

Empiezo a golpear otras áreas durante una hora o más. Uso Eclipse en el trabajo, y Eclipse le permite poner un // TODO:código en su código y luego los recopila en una ventana para usted. Si veo algo que quiero cambiar o arreglar mientras estoy trabajando en otra cosa, pongo un TODO para no romper mi impulso. Cuando me quede atascado durante demasiado tiempo (más de una o dos horas) comenzaré a trabajar en la lista. Proporciona un cambio de escenario y la mayoría de las veces los cambios son bastante simples, lo que me ayuda a relajarme. A menudo, la respuesta saldrá, mientras me deja sentir que estoy logrando algo.

Nota: Me encanta refactorizar y mejorar cada vez más el código. Su experiencia puede ser diferente.

Michael K
fuente
1
+1 Esto es algo que siempre hago, particularmente útil para garantizar el flujo fluido del código. Por supuesto, si sigue las doctrinas de codificación habituales, el pseudocódigo completo por adelantado es una buena idea, lentamente para trabajar en código real.
Orbling