Ich habe von Programmierern gehört, die zwei Tage lang ohne Schlaf programmieren und Kaffee und Red Bull trinken . Auch in Filmen wie The Social Network zeigen sie in einer Szene, dass Mark Zuckerberg seit 36 Stunden programmiert. Außerdem habe ich irgendwo gelesen, dass Unternehmen wie Facebook, Google, Foursquare usw. mehr als 24 Stunden lang ohne Schlaf codieren können.
Ist das wirklich wahr? Können Sie tatsächlich qualitativ hochwertigen Code erstellen, wenn Ihnen der Schlaf entzogen ist? Können Dinge wie Red Bull den Schlaf wettmachen?
productivity
Peter Mortensen
quelle
quelle
Antworten:
Einfach nein . Das Programmieren für 36 Stunden hat nichts mit Programmieren zu tun, sondern ist ein Attribut des Menschen. Sehr wenige Menschen können 24 Stunden lang wach bleiben, und selbst wenn sie wach bleiben, verliert ihr Verstand wirklich die Fähigkeit, Probleme zu lösen. Fahrer, die müde sind, schlagen einfach andere Autos. Steuerberater, die müde sind, machen einfach Fehler in ihren Berechnungen. Auch viele Programmierer schreiben, wenn sie müde sind, weniger Qualitätscode.
PS: Es gibt eine Krankheit namens Schlaflosigkeit , die Sie weniger schlafen lässt. Aber ich glaube nicht, dass Google Menschen mit einer solchen Krankheit anstellt. :)
quelle
Es ist wahrscheinlich einer dieser bekannten, hartnäckigen Mythen. Man hört viel davon, weil es eine überzeugende Idee ist, aber es hat in der Tat keine wirkliche Grundlage.
Oh, klar, vielleicht kann ein junges Kind, das gerade die Highschool abgeschlossen hat, in 36 Stunden so etwas wie ein Kodierungswunder schaffen. Aber ist Code, der auf diese Weise geschrieben wurde, wartbar? Ist es überhaupt lesbar? Skaliert es? Befolgen Sie sinnvolle Programmierpraktiken? Ist es dokumentiert?
Twitter hat eine Website gehackt, die funktioniert hat, und hat sie dann "richtig" umgeschrieben, weil sie heruntergefallen ist, als die Last zu groß wurde. Facebook stellte seine ursprüngliche Website in vergleichsweise kurzer Zeit für ein solches Projekt zusammen, holte aber später eine Reihe neuer Entwickler, um die PHP-Plattform , auf der die Website lief, neu zu schreiben , da sie nicht skalierbar war.
Die Ausnahmen bestätigen die Regel.
quelle
Der einzige Teil, der an diesem Mythos wahr sein könnte, ist, dass Programmierer am besten abschneiden, wenn sie über einen längeren Zeitraum ununterbrochen sind. Während Sie programmieren, können Sie umso schneller programmieren, je mehr Dinge Sie in Ihrem Kopf bewegen können, da Sie nicht nach API-Verwendungen suchen müssen oder wie ein anderer Teil des Codes von Ihnen oder einer anderen Person geschrieben wurde. Ich finde, wenn ich unterbrochen werde, dauert es immer messbar lange, bis ich wieder auf Hochtouren bin. Wenn ich etwas Wichtiges mache (oder Spaß mache), verzichte ich manchmal darauf, zur normalen Zeit nach Hause zu gehen, weil es später ist wenn deine Unterbrechungen nach Hause gehen. Aus dem gleichen Grund war ich auch dafür bekannt, bis 3 oder 5 Uhr morgens wach zu bleiben.
Wie ich bereits sagte, hängt Ihre Geschwindigkeit und Qualität Ihres Codes davon ab, wie viel Aufmerksamkeit Sie widmen und wie viele Dinge Sie in Erinnerung behalten können. Wenn der Schlaf zu einem Problem wird, denken Sie vielleicht, Sie arbeiten mit Ihrer vollen Kapazität, aber Sie sind es wirklich nicht. Die meiste Software, die wie in den von Ihnen bereitgestellten Beispielen entwickelt wurde, kommt schnell auf den Markt, aber genauso schnell verursacht sie enorme Haftungs- und Wartungsprobleme.
Sie können definitiv viel Code produzieren, wenn Sie viel arbeiten, und mit genügend Aufwand können Sie Feature für Feature herausarbeiten. Ohne jedoch auf Architektur / Design zu achten, können Sie keine leicht skalierbare, wartbare oder erweiterbare Software erstellen. Aus Erfahrung ist es VIEL schwerer, sich Gedanken über Design und das Zusammenspiel von Komponenten / Schnittstellen / Abstraktionsebenen in Ihrem Kopf (oder auf Papier) zu machen, als weiterhin reinen Code zu schreiben.
quelle
Das Ganze klingt nur nach einer Übertreibung des Seins "in der Zone". Wenn Sie sich als Programmierer voll und ganz auf Ihre Arbeit konzentrieren, wird die Zeit verzerrt, aus Minuten werden Sekunden usw. Sie sind wahrscheinlich am produktivsten. Es ist manchmal schwierig, in diesen Zustand zu gelangen, und es ist ziemlich einfach, aus ihm herauszukommen (hauptsächlich externe Faktoren), aber wenn Sie es sind ... wow!
quelle
Ich kann - und habe es zeitweise getan - gerade für 36h programmieren.
Ich glaube, das Schlimmste, was ich je durchgemacht habe, war eine Woche mit ungefähr 10 Stunden Schlaf.
Für mich haben Koffein und Energy Drinks nicht geholfen. Tatsächlich kann Koffein auf so lange Sicht eher negative Auswirkungen haben. Mein Rat ist, viel zu trinken . Hält Sie hydratisiert und die Spaziergänge zur Toilette sind ein schöner Nebeneffekt: Sie strecken Ihre Beine ein wenig und machen automatisch kurze Pausen.
Davon abgesehen finde ich das immer schwieriger. Ich nehme an, es ist eine Kapazität, die erschöpft und erschöpft ist. Und vielleicht hat es auch negative gesundheitliche Auswirkungen - physisch oder psychisch, langfristig oder kurzfristig, kann ich nicht sagen.
Was ich sagen kann ist, dass Sie sich wie ein Zombie fühlen und dass Sie sich auch die Tage nach einem solchen Marathon so fühlen werden. Persönlich hatte ich einen wirklich großen Burnout, nachdem ich das etwa ein Jahr lang oft gemacht hatte.
Das heißt: Manche Menschen können für eine solche Zeitspanne effizient arbeiten, aber das ist mit Kosten verbunden .
Dies war in der Regel die Folge einer schlechten Planung und war die einzige Option, da sie keine Erfahrung darin hatte, die Lücken zu schließen, die durch nichttechnische Projektleiter entstanden waren.
Jetzt werden Sie selten einen Qualitätscode finden, der bei solchen Marathons erzeugt wird. Die Hauptursache hierfür sind jedoch die Umstände, unter denen diese Marathons auftreten: Situationen, in denen Sie Features X, Y und Z innerhalb eines sehr kurzen Zeitrahmens bereitstellen müssen. Zu diesem Zeitpunkt kümmert sich niemand wirklich um die Codequalität, weshalb Sie sich durch Quickfixes und andere Hacks eine Menge technischer Schulden machen.
Gleichzeitig zeigt dies die intakte Leistungsfähigkeit des Gehirns: Quickfixes und Hacks erfordern sowohl Übersicht als auch Kreativität.
Sie sollten nicht vergessen, dass Qualitätscodes nur selten in einem Durchgang geschrieben werden. Besonders wenn der Code eine lange Lebensdauer hat. Codequalität wird durch Überprüfung und Umgestaltung erreicht. Niemand wird sich die Mühe machen, dies 48 Stunden vor Ablauf der Frist zu tun.
Das Fazit lautet: Sie sollten nur so lange wie möglich arbeiten und nicht länger . Wenn du nur 4h arbeiten kannst, dann ok. Machen Sie eine Pause und arbeiten Sie danach. Der Versuch, 36 Stunden wach zu bleiben, in denen Sie 8 Stunden arbeiten, ist sinnlos. Sie erhalten die doppelte Arbeit, wenn Sie 4 Sitzungen zu je 4 Stunden durchführen und die verbleibenden 20 Stunden zum Regenerieren verwenden.
Wenn Sie so lange arbeiten können, können Sie flexibler auf Unterschätzungen reagieren. Die langfristige Lösung verbessert jedoch Ihren Planungs- und Schätzungsprozess. Wenn dies an Ihrem Arbeitsplatz nicht möglich ist, wechseln Sie den Arbeitsplatz. Wenn die Leute erwarten, dass Sie so lange arbeiten, wechseln Sie den Job. Sie müssen niemandem etwas beweisen.
quelle
Gute Programmierer können in der Tat 36 Stunden lang programmieren. Das bedeutet nicht, dass sie 36 Stunden lang ihren besten Qualitätscode produzieren können. Ich bin kein guter Programmierer, und ich habe es mehrere Male im College und sogar ein paar Mal in meinen Dreißigern gemacht, als ich versuchte, Fehler für Schiffstermine zu beheben. Es ist im Allgemeinen eine dumme Idee und spiegelt schlechte Planungs- und Planungsfähigkeiten wider.
quelle
Sie können 36 Stunden lang wach bleiben und arbeiten, wenn Sie gesund sind. Aber in dieser Zeit werden Sie nicht Ihren besten Code schreiben oder sehr komplizierte Probleme lösen. Ich habe ab und zu sehr lange gearbeitet. Die meiste Zeit war dies, um einige Fristen einzuhalten. Die Arbeit bestand damals jedoch hauptsächlich darin, kleinere Funktionen wie das Drucken einiger Listen und das Polieren einiger Layouts hinzuzufügen. Nichts, wo man viel nachdenken muss, eher viel tippen. Die Hauptfunktionen und komplizierten Teile der Programme waren bereits fertig.
Manchmal ist Ihre mangelnde Konzentration der Hauptgrund für die langen Stunden. Wir hatten einmal eine Frist am nächsten Tag. Nach einem schon sehr langen Tag hatten wir das Ganze beendet und es war 2 Uhr morgens. Es war nur noch ein böser Käfer übrig. Mein Chef hatte um 9 Uhr einen Termin mit dem Kunden, so dass genügend Zeit blieb. Ich brauchte mehrere Stunden, um etwas zu finden und zu reparieren, das ich sonst in einer halben Stunde repariert hätte. Ich wusste nur, dass ich es trotzdem finden würde und es gab keinen Grund, meinen Chef im Stich zu lassen, da irgendwie die Nacht sowieso vergangen war.
quelle
Ja. Viele anekdotische Informationen weisen darauf hin, dass dies möglich ist. Ich bezweifle, dass jemand aus Arbeitsmarathons eine Gewohnheit machen kann. Praktikanten ziehen diese Art von Stunden.
Machst du wahrscheinlich mehr Fehler? Ich vermute, das alles setzt voraus, dass Sie überhaupt Qualitätscode schreiben können. In diesen Situationen stehen Sie unter Druck und möchten nur, dass es funktioniert. Qualität spielt keine Rolle. Wir werden es reparieren, nachdem wir die Finanzierung erhalten haben.
quelle
Es ist nicht unmöglich und es ist in Wirklichkeit geschehen . Da das Kapitel lang ist, möchte ich den eigentlichen Absatz zitieren:
Das heißt natürlich nicht, dass dies eine Regel für alle ist. Manche Leute können das, andere nicht. Das Wichtigste ist, nicht unterbrochen zu werden und in Zeiten zu arbeiten, in denen Sie sich sehr produktiv fühlen. So kannst du es selbst versuchen und die Schlussfolgerungen ziehen :)
quelle
Ich denke, es ist möglich, wenn Sie eine Maschine sind - ich bezweifle nicht, dass einige das können. Aber die Erfahrung hat mich gelehrt, dass die überwiegende Mehrheit der Programmierer kurz nach der 8- bis 10-Stunden-Marke schlechteren Code und nach der 16-Stunden-Marke schrecklichen Code schreiben wird.
Die wenigen Male, in denen unser Team gezwungen war, einen All-Nighter zu ziehen, hatten wir tatsächlich Code, der zurückgesetzt werden musste.
quelle
Ich bezweifle es, um ehrlich zu sein. In der Tat, obwohl Mythen und Geschichten über Menschen, die X, Y und Z erreichen, seit 24 Stunden wach sind, befinden sie sich unter extremen Umständen und sind selten.
Früher hatte ich einen Schreibpool für eine Anwaltskanzlei, in der gelegentlich Leute an allen Abenden zogen, um Dinge für bestimmte Zeiten herauszuholen. Jeder, der verrückte Stunden damit verbracht hat, Dokumente zu verfassen, hat diese Dokumente in der Regel abgeschickt, um ihre Änderungen über Nacht rückgängig zu machen. Meiner Ansicht nach ist es nicht möglich, mehr als etwa 12 Stunden lang konstant hohe Leistung zu erbringen (und das ist sogar übertrieben), um einen Schlafmangel zu überstehen, indem Sie Ihren Koffeingehalt erhöhen. Ich denke, es ist eine Geschichte, die die Leute gerne erzählen, aber wenn sie ehrlich sind, werden sie zugeben, dass ihre durchschnittliche Arbeit über lange Strecken, unabhängig davon, was der Job ist, sei es das Kodieren oder das Schreiben von juristischen Dokumenten, selten, wenn überhaupt, gut genug ist um ihre Leistung anzupassen, wenn sie genügend Ruhe haben.
Codierer haben nichts Besonderes, egal wie gut sie sind, wie Fahrer, wie Bediener schwerer Maschinen, sie sind Ermüdungserscheinungen ausgesetzt, und ich wäre fassungslos, wenn jemand nachweisen könnte, dass ein Codierer eine qualitativ hochwertige Ausgabe ohne Pause innerhalb von etwa 12 Stunden liefern kann .
quelle
Während meines Programmierstudiums an der Universität gab es einige Nächte, in denen ich mich produktiver fühlte als tagsüber. Es hat mit der Tatsache zu tun, dass es nachts weniger Ablenkungen gibt, das Unkraut hat es mir bequem genug gemacht, still zu sitzen, und ich bin an diesem Tag bis 14 Uhr sowieso nicht aufgestanden, damit ich nicht zu müde war. Ich konnte bis 8 Uhr morgens durchkodieren, bevor ich wahnsinnig hungrig nach meinem Frühstück war. Nachdem dies gesagt wurde, würde ich am nächsten Tag um 17 Uhr geistig abstürzen und auf keinen Fall produktiv sein. Nachts zu programmieren kann produktiver sein, aber wenn Sie sich den Schlaf nehmen, wird die Codequalität nie verbessert, und Sie würden niemals vorhaben, beim Programmieren müde zu sein.
quelle
Ich und viele andere kreative Menschen zeigen Merkmale einer bipolaren Persönlichkeit. Beim Entwerfen von Software folge ich normalerweise dem Algorithmus von Feynman:
Notieren Sie das Problem. (Protokoll)
Denken Sie wirklich gut nach. (Zwischen Tagen und Jahren)
Notieren Sie die Lösung. (Tage)
Eine hypomanische Episode mit drastisch reduziertem Schlaf (Koffein oder Nein) ist genau das Richtige, um # 3 zu beenden.
quelle
Bitte lesen Sie diesen verwandten Beitrag in Skeptics.SE: Ist der Ballmer Peak echt? und insbesondere diese Antwort von ESultanik .
Warum hängen diese beiden Fragen wohl zusammen? Es scheint mir, dass die Beeinträchtigung, die durch Schlafentzug verursacht wird, etwas mit dem Betrinken vergleichbar ist, obwohl ich keine Belege für meine Behauptung habe.
Aus der zitierten Referenz von ESultanik,
Ich würde sagen, dass man vielleicht besser in der Lage ist, abstrakte Architekturmodelle zu erstellen, während der Schlaf entzogen ist, aber der tatsächliche Quellcode, der in die Tastatur eingegeben wird, würde immer noch betrunken sein.
quelle
Wenn man gezwungen ist, 36 Stunden lang zu codieren, liegt dies normalerweise an einer Frist für den Versand des Produkts. Wenn eine solche Frist eingehalten wird, ist die Codequalität in der Regel das erste, was verworfen wird. "Mach es einfach" ist das Mantra. "Wir werden es in Version 2 beheben" ist ein weiteres Mantra.
Wenn man also für 36 Stunden hintereinander codiert, leidet die Codequalität normalerweise. Aber vom geschäftlichen Standpunkt aus spielt das keine Rolle. Denn wenn Sie etwas nicht versenden, selbst wenn etwas kaputt ist, sind Sie möglicherweise nicht im Geschäft um es richtig zu machen.
Wenn man 36 Stunden am Stück codieren will, liegt das daran, dass ein starker kreativer Impuls vorhanden ist und Sie ihn nicht unterbrechen möchten. Sie werden in diesen 36 Stunden keinen Qualitätscode schreiben, aber Sie werden kreativen Code schreiben. Sie kommen später wieder und sehen sich diesen Code an und fragen sich, wie es überhaupt funktioniert.
Kreativität ist eines der Dinge, die oft in Schüben vorkommen. Sie können es nicht kontrollieren und nutzen es, wenn es sich zeigt. Sie können den Code jederzeit korrigieren, wenn Sie weniger kreativ sind.
quelle
Vor ein paar Monaten war ich mit meinen Kollegen unterwegs und habe getrunken. Am nächsten Tag kamen wir wieder in dem Büro an, das überhängt ... aber zu unserem Erstaunen haben wir eine Rekordmenge an Fehlern geschlossen.
An der Oberfläche waren diese Bugs nicht leicht zu finden und die meisten hatten keine Replikationsschritte, aber da wir uns immer noch nicht im Kopf fühlten, mussten wir bei der Behebung der Bugs über den Tellerrand schauen.
Obwohl uns der Schlaf nicht entzogen war, waren wir immer noch nicht in der richtigen Einstellung, um an Code zu arbeiten. Es ist einfach bizarr, was an diesem Tag passiert ist.
Oh, und für die Neigten haben die meisten von uns JD & Coke ausgenutzt :)
quelle
Ich denke, so lange produktiv zu arbeiten, ohne lange zu schlafen, ist für die meisten Menschen unmöglich.
Aber ich denke, Sie können erstaunliche Arbeit mit nur 3-4 Stunden guten Schlafs leisten. Dies funktioniert auch an mehreren aufeinanderfolgenden Tagen intensiver (intellektueller) Arbeit mit wenig Schlaf.
Für mich muss danach jedoch eine Erholungsphase folgen; sagen wir, ein paar Nächte mit den üblichen 7-8 Stunden Schlaf.
quelle