He oído hablar de programadores codificando durante dos días sin dormir y tomando café y Red Bull . También en películas como The Social Network , en una escena, muestran que Mark Zuckerberg ha estado programando durante 36 horas. También he leído en alguna parte que en las empresas como Facebook, Google, en cuadro , etc. Pueden código durante más de 24 horas sin dormir.
¿Es esto realmente cierto? ¿Puede realmente producir código de alta calidad si tiene falta de sueño? ¿Pueden cosas como Red Bull compensar el sueño?
productivity
Peter Mortensen
fuente
fuente
Respuestas:
Simplemente no . La codificación durante 36 horas no tiene nada que ver con la programación, sino que es un atributo humano. Muy pocas personas pueden permanecer despiertas durante 24 horas e incluso cuando permanecen despiertas, su mente realmente pierde habilidades para resolver problemas. Los conductores que tienen sueño, simplemente golpean otros autos. Los contadores que tienen sueño, simplemente cometen errores en sus cálculos. También muchos programadores cuando tienen sueño, escriben menos código de calidad.
PD: hay una enfermedad llamada insomnio que te hace dormir menos. Pero no creo que Google contrate a personas con esa enfermedad. :)
fuente
Es probablemente uno de esos mitos conocidos y persistentes. Lo escuchas mucho porque es una idea convincente, pero de hecho no tiene una base real.
Oh, claro, tal vez algún niño recién salido de la escuela secundaria pueda lograr lo que parece ser un milagro de codificación en 36 horas. Pero, ¿se puede mantener el código escrito de esa manera? ¿Es incluso legible? ¿Se escala? ¿Sigue prácticas de programación sensatas? ¿Está documentado?
Twitter hackeó un sitio que funcionó, y luego terminó reescribiéndolo de la manera "correcta", porque se cayó cuando la carga se hizo demasiado grande. Facebook reunió su sitio original en un período de tiempo relativamente corto para tal proyecto, pero luego trajo a un grupo de nuevos desarrolladores para reescribir la plataforma PHP en la que se ejecutaba el sitio web, porque no se escalaba.
Las excepciones prueban la regla.
fuente
La única parte que podría ser cierta acerca de este mito es que los programadores funcionan mejor cuando no se interrumpen durante un período prolongado de tiempo. A medida que codifica, mientras más cosas pueda hacer en su cabeza, más rápido podrá codificar porque no necesita buscar cosas como el uso de API o cómo usted u otra persona escribió una parte diferente del código. Encuentro que cuando me interrumpen, siempre toma un tiempo considerable para volver a la velocidad máxima, y si estoy haciendo algo importante (o divertido), a veces renunciaré a ir a casa a la hora normal porque después de las horas es cuando tus interrupciones se van a casa. También he sido conocido por quedarme despierto hasta las 3 o 5 de la mañana por la misma razón.
Sin embargo, como dije, su velocidad y calidad de su código depende de cuánta atención esté prestando y cuántas cosas pueda hacer malabares en la memoria. Cuando el sueño se convierte en un problema, puede pensar que está trabajando a plena capacidad, pero realmente no lo está. La mayoría del software desarrollado como en los ejemplos que proporcionó, se pone en marcha rápidamente, pero al igual que el ayuno termina siendo una gran responsabilidad y dolor de cabeza de mantenimiento.
Definitivamente puedes producir mucho código si trabajas mucho, y con el suficiente esfuerzo puedes sacar una característica tras otra. Pero sin prestar atención a la arquitectura / diseño no producirá software fácilmente escalable, mantenible o ampliable. Hablando por experiencia, es MUCHO más difícil pensar en el diseño y hacer malabares con los componentes / interfaces / capas de abstracción en su cabeza (o en papel) que seguir escribiendo código puro.
fuente
Todo esto suena como una exageración de estar "en la zona". Cuando estás completamente concentrado, como codificador, el tiempo se deforma, los minutos se convierten en segundos, etc. Probablemente estés en tu punto más productivo. A veces es difícil entrar en ese estado, y bastante fácil salir de él (factores externos principalmente), pero cuando estás ... ¡guau!
fuente
Puedo, y lo hice a veces, programar durante 36 horas seguidas.
Creo que lo peor que he pasado fue una semana con aproximadamente 10 horas de sueño más o menos.
Para mí, la cafeína y las bebidas energéticas no me ayudaron. De hecho, a tan largo plazo, la cafeína puede tener efectos bastante negativos. Mi consejo es beber mucho . Te mantiene hidratado y los paseos al baño son un efecto secundario agradable: estiras un poco las piernas y automáticamente haces breves descansos.
Dicho esto, me parece cada vez más difícil. Supongo que es una capacidad, que se agota y finalmente se agota. Y tal vez tenga algunos efectos negativos para la salud: físicos o mentales, a largo o corto plazo, no puedo decir.
Lo que puedo decir es que te sientes como un zombie y continuarás sintiéndote así los días después de tal maratón. Personalmente, tuve un agotamiento realmente grande después de hacer esto con frecuencia durante aproximadamente un año.
Es decir: algunas personas pueden trabajar de manera eficiente durante ese período de tiempo, pero tiene un costo .
Por lo general, era la consecuencia de una mala planificación y de no haber tenido experiencia en llenar los vacíos que dejaban los líderes de proyectos no técnicos, era la única opción.
Ahora rara vez encontrará código de calidad producido durante tales maratones. Sin embargo, la causa principal de esto son las circunstancias, en las que ocurren esos maratones: situaciones, en las que necesita entregar funciones X, Y y Z en un período de tiempo muy corto. En ese momento, a nadie le importa la calidad del código, por lo que acumula una gran cantidad de deudas técnicas a través de soluciones rápidas y otros hacks.
Al mismo tiempo, esto indica el rendimiento intacto del cerebro: las soluciones rápidas y los hacks requieren visión general y creatividad.
No debe olvidar que el código de calidad rara vez se escribe en una sola ejecución. Especialmente si el código tiene una larga vida útil. La calidad del código se logra mediante revisión y refactorización. Nadie se molestará en hacer eso 48h antes de la fecha límite.
La conclusión es: solo debe trabajar el mayor tiempo posible y no más . Si solo puede trabajar durante 4 horas, entonces está bien. Tómese un descanso y trabaje a partir de entonces. Intentar permanecer despierto durante 36 horas en las que tiene 8 horas de trabajo no tiene sentido. Obtendrá el doble de trabajo si realiza 4 sesiones de 4 h cada una y usa las 20 h restantes para regenerarse.
Si puede trabajar tantas horas, significa que es más flexible para responder a la subestimación. Sin embargo, la solución a largo plazo es mejorar su proceso de planificación y estimación. Si eso es imposible en su lugar de trabajo, cambie de trabajo. Si la gente espera que trabajes tantas horas, cambia de trabajo. No tienes que demostrar nada a nadie.
fuente
Los buenos programadores pueden programar durante 36 horas. No significa que puedan producir su código de mejor calidad durante 36 horas. Estoy no un buen programador, y lo hice varias veces en la universidad, e incluso un par de veces en mis 30 años cuando se trata de arreglar errores de los plazos de buques. En general, es una idea estúpida y refleja malas habilidades de planificación y programación.
fuente
Puede mantenerse despierto y trabajar durante 36 horas si está sano. Pero en este momento no escribirá su mejor código ni resolverá problemas muy complicados. He trabajado durante muchas horas de vez en cuando. La mayoría de las veces esto era para mantener algunos plazos. Pero el trabajo consistía principalmente en agregar características menores, como imprimir algunas listas, pulir algunos diseños. Nada donde necesites pensar mucho, más bien escribir mucho. Las características principales y las partes complicadas de los programas ya estaban terminadas.
A veces, su falta de concentración es la razón principal de las largas horas. Una vez tuvimos una fecha límite al día siguiente. Después de un día ya muy largo, habíamos terminado todo y eran las 2 de la mañana. Solo quedaba un error desagradable. Mi jefe tenía una cita con el cliente a las 9 de la mañana, así que había mucho tiempo. Me llevó varias horas encontrar y arreglar algo que, de lo contrario, habría solucionado en media hora. Solo sabía con certeza que sería capaz de encontrarlo de todos modos y no había razón para decepcionar a mi jefe, ya que de alguna manera la noche se había ido de todos modos.
fuente
Sí. Mucha información anecdótica indica que puede. Dudo que alguien pueda hacer un hábito físico con los maratones de trabajo. Los internos médicos tiran de este tipo de horas.
¿Es probable que cometas más errores, probablemente? Supongo que todo esto supone que puedes escribir código de calidad en primer lugar. En estas situaciones, estás bajo el arma y solo quieres que funcione. La calidad no es una consideración. Lo arreglaremos después de obtener fondos.
fuente
No es imposible y ha sucedido de verdad. Como el capítulo es largo, permítanme citar el párrafo real:
Por supuesto, esto no significa que esta sea una regla para todos. Algunas personas pueden hacerlo, mientras que otras no. Lo más importante es no ser interrumpido y trabajar durante los períodos en que te sientes muy productivo. Por lo tanto, puedes probar por ti mismo y sacar las conclusiones :)
fuente
Supongo que es posible, si eres una máquina, no dudo que algunos puedan hacerlo. Pero la experiencia me ha enseñado que la gran mayoría de los programadores escribirán un código peor poco después de la marca de 8 a 10 horas, y un código horrible después de la marca de 16 horas.
Las pocas veces que nuestro equipo se vio obligado a pasar toda la noche, en realidad terminamos con un código que necesitaba ser revertido.
fuente
Lo dudo para ser honesto. De hecho, a pesar de los mitos y las historias sobre personas que lograron que X, Y y Z hayan estado despiertos durante 24 horas, se encuentran en circunstancias extremas y son raros.
En el pasado, solía proporcionar un grupo de mecanografía para una firma de abogados que ocasionalmente hacía que la gente tirara de todas las noches para tratar de sacar cosas para momentos particulares. Cualquiera que hiciera horas locas redactando documentos generalmente terminaba enviando esos documentos para revertir sus cambios durante la noche. En mi opinión, no es posible realizar un rendimiento constante a un nivel alto durante más de aproximadamente 12 horas seguidas (e incluso eso es excesivo) sobreviviendo a la falta de sueño al aumentar sus niveles de cafeína. Creo que es una historia que a la gente le gusta contar, pero si son honestos, admitirán que su trabajo promedio durante las sesiones de larga distancia, independientemente de cuál sea el trabajo, ya sea codificar o escribir documentos legales, rara vez, si alguna vez, es lo suficientemente bueno para que coincida con su producción si tienen un descanso adecuado.
No hay nada especial en los codificadores, no importa cuán buenos sean, como los conductores, como los operadores de maquinaria pesada, están sujetos a fatiga y me sorprendería si alguien pudiera demostrar que un codificador puede proporcionar resultados de alta calidad sin descansar en aproximadamente 12 horas .
fuente
Cuando estudiaba programación en la universidad, había algunas noches en las que me sentía más productivo que durante el día. Tiene que ver con el hecho de que hay menos distracciones por la noche, la hierba me ha hecho sentir lo suficientemente cómoda como para sentarme quieta y, de todos modos, no me levanté ese día hasta las 2 de la tarde, así que no estaba demasiado cansada. Podría codificar hasta las 8 de la mañana antes de estar locamente hambriento de mi desayuno. Dicho esto al día siguiente, me estrellaría mentalmente a las 5 p.m. y no había forma de que fuera productivo. La programación por la noche puede ser más productiva, pero privarte del sueño nunca aumenta la calidad del código y nunca planeas estar cansado al codificar.
fuente
Yo y muchas otras personas creativas demostramos características de la personalidad bipolar. Cuando diseño software, tiendo a seguir el algoritmo de Feynman:
Escribe el problema. (Minutos)
Piensa muy bien. (Entre días y años)
Escribe la solución. (Dias)
Un episodio hipomaníaco con sueño drásticamente reducido (cafeína o no) es solo el boleto para terminar # 3.
fuente
Consulte esta publicación relacionada en Skeptics.SE: ¿Es real el Pico Ballmer? , y en particular esta respuesta de ESultanik .
¿Por qué creo que estas dos preguntas están relacionadas? Me parece que la discapacidad causada por la falta de sueño es algo similar a emborracharse, aunque no tengo ninguna referencia para respaldar mi reclamo.
Citando de la referencia citada de ESultanik,
Diría que uno puede ser mejor en la creación de modelos de arquitectura abstracta mientras está privado de sueño, pero el código fuente real escrito en el teclado aún estaría ebrio.
fuente
Cuando uno se ve obligado a codificar durante 36 horas, generalmente se debe a una fecha límite para enviar el producto. Cuando uno está en ese plazo, la calidad del código suele ser lo primero que se descarta. "Solo hazlo" es el mantra. "Lo arreglaremos en la versión 2" es otro mantra.
Por lo general, cuando uno codifica durante 36 horas seguidas, la calidad del código sufre ... pero no importa desde el punto de vista comercial ... porque si no envía algo, incluso algo roto, es posible que no esté en el negocio para hacerlo bien
Cuando uno QUIERE codificar durante 36 horas seguidas, es porque tiene un fuerte pico creativo y no desea interrumpirlo. No escribirá código de calidad durante esas 36 horas, pero sí escribirá código creativo. Luego regresa más tarde y mira ese código y se pregunta cómo funciona.
La creatividad es una de esas cosas que a menudo viene a borbotones. No puede controlarlo, por lo que lo aprovecha cuando se muestra. Siempre puedes arreglar el código cuando eres menos creativo.
fuente
Hace unos meses, estaba afuera con mis compañeros de trabajo bebiendo. Al día siguiente, llegamos a la oficina colgados ... pero para nuestro asombro, cerramos una cantidad récord de errores.
En la superficie, estos errores no eran fáciles de encontrar y la mayoría no tenía ningún paso de replicación, sin embargo, aún estar "fuera de nuestras mentes" debe habernos hecho "pensar fuera de la caja" a la hora de solucionar los errores.
Aunque no estábamos 'privados de sueño', todavía no estábamos en la mentalidad correcta para trabajar en código ... es extraño lo que sucedió ese día, siempre lo mencionamos.
Ah, y para los inclinados, la mayoría de nosotros estábamos al máximo en JD & Coke :)
fuente
Creo que trabajar de manera productiva durante tanto tiempo sin dormir mucho es imposible para la mayoría de las personas.
Pero creo que puedes hacer un trabajo increíble con solo, por ejemplo, 3-4 horas de buen sueño. Esto funciona incluso durante varios días consecutivos de trabajo intenso (intelectual) con poco sueño.
Sin embargo, para mí, esto debe ser seguido por un período de recuperación posterior; digamos, un par de noches con las habituales 7-8 horas de sueño.
fuente