J'ai entendu parler de programmeurs qui codent pendant deux jours sans dormir et qui boivent du café et Red Bull . Également dans des films comme The Social Network , dans une scène, ils montrent que Mark Zuckerberg programme depuis 36 heures. Aussi, j'ai lu quelque part que dans des entreprises comme Facebook, Google, Foursquare , etc., ils peuvent coder pendant plus de 24 heures sans dormir.
Est-ce vraiment vrai? Pouvez-vous réellement produire du code de haute qualité si vous êtes privé de sommeil? Des choses comme Red Bull peuvent-elles compenser le sommeil?
productivity
Peter Mortensen
la source
la source
Réponses:
Tout simplement non . Coder pendant 36 heures n’a rien à voir avec la programmation, c’est plutôt un attribut humain. Très peu de personnes peuvent rester éveillées pendant 24 heures et même lorsqu'elles restent éveillées, leur esprit perd vraiment de la résolution de problèmes. Les conducteurs qui ont sommeil sont simplement frappés par une autre voiture. Les comptables somnolents font simplement des erreurs dans leurs calculs. De plus, de nombreux programmeurs somnolents écrivent un code de qualité inférieure.
PS: Il existe une maladie appelée insomnie qui vous fait dormir moins. Mais je ne pense pas que Google embauche des personnes atteintes d'une telle maladie. :)
la source
C'est probablement l'un de ces mythes persistants bien connus. Vous en entendez beaucoup parler parce que c'est une idée convaincante, mais elle n'a aucun fondement réel.
Oh, bien sûr, peut-être qu'un jeune garçon récemment sorti du lycée peut réussir ce qui semble être une sorte de miracle de codage en 36 heures. Mais le code écrit de cette manière est-il maintenable? Est-ce même lisible? Est-ce que ça change? Suit-il des pratiques de programmation raisonnables? Est-ce documenté?
Twitter a piraté un site qui fonctionnait, puis l'a réécrit "correctement", car il est tombé lorsque la charge est devenue trop lourde. Facebook a mis en place son site d'origine dans un délai relativement court pour un tel projet, mais a ensuite fait appel à un groupe de nouveaux développeurs pour réécrire la plate - forme PHP sur laquelle le site Web était exécuté, car elle ne pouvait pas évoluer.
Les exceptions prouvent la règle.
la source
La seule chose qui pourrait être vraie à propos de ce mythe est que les programmeurs fonctionnent mieux lorsqu'ils ne sont pas interrompus pendant une longue période. Au fur et à mesure que vous codez, plus vous pourrez jongler avec vos idées, plus vite vous pourrez coder car vous n'avez pas besoin de rechercher des informations telles que les utilisations des API ou la manière dont une partie différente du code a été écrite par vous-même ou quelqu'un d'autre. Je me rends compte que lorsque je suis interrompu, il faut toujours un certain temps mesurable pour revenir à toute vitesse, et si je fais quelque chose d'important (ou d'amusant), je vais parfois m'abstenir de rentrer à la maison à l'heure habituelle quand vos interruptions vont à la maison. Je suis également connu pour rester debout jusqu'à 3 ou 5 heures du matin pour la même raison.
Cependant, comme je l’ai dit, la rapidité et la qualité de votre code dépendent de l’attention que vous portez et du nombre de choses que vous pouvez jongler en mémoire. Lorsque le sommeil devient un problème, vous pouvez penser que vous travaillez à fond, mais ce n'est pas le cas. La plupart des logiciels développés, comme dans les exemples que vous avez fournis, démarrent rapidement, mais ils deviennent tout aussi rapides qu’ils deviennent un énorme problème de responsabilité et de maintenance.
Vous pouvez certainement produire beaucoup de code si vous travaillez beaucoup et, avec suffisamment d’effort, vous pouvez créer une fonctionnalité à la fois. Cependant, sans prêter attention à l'architecture et à la conception, vous ne produirez pas de logiciel facilement évolutif, maintenable ou extensible. Parlant d'expérience, il est BEAUCOUP plus difficile de penser à la conception et de jongler avec les composants / interfaces / couches d'abstraction dans votre tête (ou sur papier) plutôt que de continuer à écrire du code pur.
la source
Tout cela ressemble à une exagération d'être "dans la zone". Lorsque vous êtes entièrement concentré, en tant que codeur, le temps est déformé, les minutes deviennent des secondes, etc. Vous êtes probablement le plus productif possible. Il est parfois difficile d'entrer dans cet état et assez facile d'en sortir (facteurs externes principalement), mais quand vous êtes .... waouh!
la source
Je peux - et je l'ai fait parfois - programme pour 36h d'affilée.
Je pense que la pire chose que j'ai jamais vécue a été une semaine avec environ 10 heures de sommeil.
La caféine et les boissons énergisantes n’ont pas aidé. En fait, à long terme, la caféine peut avoir des effets plutôt négatifs. Mon conseil est de boire beaucoup . Vous permet de rester hydraté et les allées aux toilettes sont un bel effet secondaire: vous vous étirez un peu les jambes et vous faites automatiquement de courtes pauses.
Cela étant dit, je trouve cela de plus en plus difficile. Je suppose que c'est une capacité qui est épuisée et éventuellement épuisée. Et peut-être que certains effets négatifs sur la santé - physique ou mental, à long ou à court terme, je ne le sais pas.
Ce que je peux dire, c'est que vous vous sentez comme un zombie et que vous continuerez à le ressentir les jours qui suivent un tel marathon. Personnellement, j'ai eu un très gros burnout après l'avoir fait fréquemment pendant environ un an.
C’est-à-dire que certaines personnes peuvent travailler efficacement pendant une telle période, mais cela a un coût .
C’était généralement le résultat d’une planification médiocre et du fait que nous n’avions aucune expérience en matière de combler les lacunes laissées par des responsables de projets non techniques, c’était la seule option.
Vous constaterez rarement que des codes de qualité sont produits lors de tels marathons. Cependant, la cause principale en est les circonstances dans lesquelles se déroulent ces marathons: Des situations dans lesquelles vous devez fournir les fonctionnalités X, Y et Z dans un délai très court. Personne ne se soucie vraiment de la qualité du code à ce stade. C'est pourquoi vous accumulez beaucoup de dettes techniques par le biais de correctifs rapides et autres.
Dans le même temps, cela indique la performance intacte du cerveau: les correctifs rapides et les piratages requièrent à la fois une vision d'ensemble et de la créativité.
N'oubliez pas que le code de qualité est rarement écrit en une seule fois. Surtout si le code a une longue durée de vie. La qualité du code est obtenue par la révision et la refactorisation. Personne ne prendra la peine de le faire 48h avant la date limite.
En bout de ligne, vous ne devriez travailler que le plus longtemps possible . Si vous ne pouvez travailler que pendant 4h, alors ok. Faites une pause et travaillez ensuite. Essayer de rester éveillé pendant 36 heures au cours desquelles vous avez 8h de travail est inutile. Vous doublez le travail si vous faites 4 séances de 4h et que vous utilisez les 20h restantes pour vous régénérer.
Si vous pouvez travailler aussi longtemps, cela signifie que vous êtes plus flexible pour répondre à la sous-estimation. Cependant, la solution à long terme améliore votre processus de planification et d’estimation. Si cela est impossible sur votre lieu de travail, changez de travail. Si les gens s'attendent à ce que vous travailliez de longues heures, changez de travail. Vous n'avez rien à prouver à personne.
la source
Les bons programmeurs peuvent en effet programmer pendant 36 heures. Cela ne signifie pas qu'ils peuvent produire leur meilleur code de qualité pendant 36 heures. Je ne suis pas un bon programmeur, et je l'ai fait plusieurs fois à l'université, et même à quelques reprises dans la trentaine, en essayant de corriger les bugs liés aux délais de livraison des navires. C'est généralement une idée stupide et reflète de faibles compétences en matière de planification et de planification.
la source
Vous pouvez rester éveillé et travailler pendant 36 heures si vous êtes en bonne santé. Mais pendant ce temps, vous ne pourrez pas écrire votre meilleur code ni résoudre des problèmes très compliqués. J'ai travaillé de très longues heures de temps en temps. La plupart du temps, il s'agissait de respecter certaines échéances. Mais le travail consistait alors principalement à ajouter des fonctionnalités mineures, telles que l’impression de listes, l’affinage de certaines mises en page. Rien où vous ayez besoin de beaucoup de réflexion, mais plutôt de beaucoup de frappe. Les principales caractéristiques et les parties compliquées des programmes étaient déjà terminées.
Parfois, votre manque de concentration est la raison principale des longues heures. Nous avions une fois une date limite le lendemain. Après une journée déjà très longue, nous avions terminé le tout et il était 2 heures du matin. Il ne restait plus qu'un méchant insecte. Mon patron avait rendez-vous avec le client à 9 heures du matin, donc il restait beaucoup de temps. Il m'a fallu plusieurs heures pour trouver et réparer quelque chose que j'aurais sinon réglé en une demi-heure. Je savais juste avec certitude que je serais capable de le trouver de toute façon et qu'il n'y avait aucune raison de laisser tomber mon patron, car de toute façon la nuit était finie de toute façon.
la source
Oui. De nombreuses informations anecdotiques indiquent que c'est possible. Je doute que quiconque puisse physiquement prendre l'habitude de travailler au marathon. Les internes en médecine tirent ces types d’heures.
Êtes-vous susceptible de faire plus d'erreurs, probablement. Je suppose que tout cela suppose que vous puissiez écrire un code de qualité en premier lieu. Dans ces situations, vous êtes sous le feu des projecteurs et vous voulez le faire fonctionner. La qualité n'est pas une considération. Nous réglerons le problème une fois le financement obtenu.
la source
Ce n'est pas impossible et c'est arrivé en vrai. Puisque le chapitre est long, permettez-moi de citer le paragraphe actuel:
Bien sûr, cela ne signifie pas que c'est une règle unique pour tous. Certaines personnes peuvent le faire, d'autres non. Le plus important est de ne pas vous interrompre et de travailler pendant les périodes où vous vous sentez très productif. Ainsi, vous pouvez essayer par vous-même et tirer les conclusions :)
la source
Je suppose que c'est possible, si vous êtes une machine - je ne doute pas que certains puissent le faire. Mais l'expérience m'a appris que la grande majorité des programmeurs écriront du code pire peu de temps après les 8 à 10 heures et du code horrible après les 16 heures.
Les quelques fois où notre équipe a été contrainte de passer la nuit blanche, nous avons en fait eu du code qui devait être annulé.
la source
J'en doute pour être honnête. En fait, malgré les mythes et les histoires selon lesquelles des personnes atteignant X, Y et Z ont été éveillées pendant 24 heures, elles se trouvent dans des circonstances extrêmes et sont rares.
Il y a bien longtemps, je fournissais un groupe de dactylographie à un cabinet d'avocats qui demandait parfois à des gens de tirer tous les veilleurs pour essayer de faire sortir des choses à des moments particuliers. Quiconque passait des heures folles à rédiger des documents finissait généralement par les envoyer pour que leurs modifications effectuées du jour au lendemain soient inversées. À mon avis, il n’est pas possible d’agir régulièrement à un niveau élevé pendant plus de 12 heures à la fois (et même c’est excessif) en surmontant un manque de sommeil en augmentant vos niveaux de caféine. Je pense que c’est une histoire que les gens aiment raconter, mais s’ils sont honnêtes, ils admettront que leur travail moyen sur des sessions longues, quel que soit leur travail, qu’il s’agisse de coder ou d’écrire des documents juridiques, est rarement, si jamais, suffisant. correspondre à leur sortie si ils ont obtenu un repos suffisant.
Les codeurs n'ont rien de spécial, aussi bons qu'ils soient, comme les conducteurs, les opérateurs de machinerie lourde, ils sont sujets à la fatigue et je serais abasourdi si quelqu'un pouvait prouver qu'un codeur peut fournir une sortie de haute qualité sans repos en environ 12 heures. .
la source
Lorsque j’étudiais la programmation à l’université, il y avait quelques nuits où je me sentais plus productif que pendant la journée. Cela a à voir avec le fait qu'il y a moins de distractions la nuit, la mauvaise herbe m'a rendu assez confortable pour rester assis et je ne me suis pas levée jusqu'à 14h de toute façon, donc je n'étais pas trop fatiguée. Je pouvais coder jusqu'à 8h du matin avant d'avoir une faim insensée pour mon petit-déjeuner. Cela dit, le lendemain, je serais bloqué mentalement à 17 heures et il n’y avait aucun moyen d’être productif. Programmer la nuit peut être plus productif, mais vous priver de sommeil ne fait pas augmenter la qualité du code et vous ne prévoyez jamais d'être fatigué lors du codage.
la source
De nombreuses personnes créatives et moi-même démontrons les caractéristiques de la personnalité bipolaire. Lors de la conception d'un logiciel, j'ai tendance à suivre l'algorithme de Feynman:
Notez le problème. (Minutes)
Pense vraiment fort. (Entre jours et années)
Notez la solution. (Journées)
Un épisode hypomaniaque avec sommeil considérablement réduit (caféine ou non) est tout simplement le ticket pour finir n ° 3.
la source
S'il vous plaît voir ce post connexe dans Skeptics.SE: Est-ce que le Ballmer Peak est réel? , et en particulier cette réponse de ESultanik .
Pourquoi est-ce que je pense que ces deux questions sont liées?Il me semble que la déficience provoquée par la privation de sommeil ressemble un peu à la ivresse, bien que je n’aie aucune référence pour étayer ma demande.
Citant la référence citée par ESultanik,
Je dirais qu’il est peut-être préférable de créer des modèles d’architecture abstraite sans sommeil, mais le code source saisi au clavier serait toujours en état d’ivresse.
la source
Quand on est obligé de coder pendant 36 heures, c'est généralement à cause d'un délai d'expédition du produit. Quand on est dans un tel délai, la qualité du code est généralement la première chose à jeter. "Juste le faire" est le mantra. "Nous corrigerons cela dans la version 2" est un autre mantra.
Donc, en général, quand on code 36 heures d'affilée, la qualité du code en souffre .. mais cela n'a pas d'importance du point de vue commercial .. car si vous n'envoyez rien, même un produit cassé, vous risquez de ne pas être en affaires. faire le bien.
Quand on VEUT coder pendant 36 heures d'affilée, c'est parce que vous avez un fort pic créatif et que vous ne voulez pas l'interrompre. Vous n'écrirez pas de code de qualité pendant ces 36 heures, mais vous écrirez du code de création. Vous revenez ensuite plus tard et regardez ce code et vous vous demandez comment il fonctionne.
La créativité fait partie de ces choses qui vont souvent très vite. Vous ne pouvez pas le contrôler, alors vous en profitez quand il se montre. Vous pouvez toujours corriger le code lorsque vous êtes moins créatif.
la source
Il y a quelques mois, j'étais en train de boire avec mes collègues. Le lendemain, nous sommes rentrés au bureau, la gueule de bois ... mais à notre grand étonnement, nous avons bouclé un nombre record d'insectes.
À la surface, ces bugs n'étaient pas faciles à trouver et la plupart n'avaient aucune étape de réplication, mais être toujours «en dehors de notre esprit» doit nous faire penser de manière inattendue lorsqu'il est question de corriger les bugs.
Même si nous n'étions pas «privés de sommeil», nous n'étions toujours pas dans le bon état d'esprit pour travailler sur le code ... c'est bizarre ce qui s'est passé ce jour-là, nous le mentionnons toujours.
Oh, et pour les penchants, la plupart d’entre nous profitaient de JD & Coke :)
la source
Je pense que travailler de manière productive aussi longtemps sans dormir est impossible pour la plupart des gens.
Mais je pense que vous pouvez faire un travail incroyable avec, disons, 3-4 heures de bon sommeil. Cela fonctionne même pendant plusieurs jours consécutifs de travail (intellectuel) intense avec peu de sommeil.
Cependant, pour moi, cela doit être suivi d’une période de récupération; par exemple, quelques nuits avec les 7 à 8 heures de sommeil habituelles.
la source