it-swarm-eu.dev

Können Sie tatsächlich hochwertigen Code erstellen, wenn Ihnen der Schlaf entzogen ist?

Ich habe von Programmierern gehört, die zwei Tage lang ohne Schlaf programmierten und Kaffee tranken und Red Bull . 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 ohne Schlaf codieren können.

Ist das wirklich wahr? Können Sie tatsächlich hochwertigen Code erstellen, wenn Ihnen der Schlaf entzogen ist? Können Dinge wie Red Bull den Schlaf wieder gut machen?

37
lovesh

Einfach Nein. Das Codieren 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 Fähigkeiten zur Problemlösung. Fahrer, die müde sind, schlagen einfach andere Autos. Buchhalter, 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. Ich glaube jedoch nicht, dass Google Menschen mit einer solchen Krankheit anstellt. :) :)

77
Saeed Neamati

Es ist wahrscheinlich einer dieser bekannten, hartnäckigen Mythen. Sie hören viel darüber, weil es eine überzeugende Idee ist, aber es hat tatsächlich keine wirkliche Grundlage.

Oh, klar, vielleicht kann ein junges Kind, das gerade die High School abgeschlossen hat, in 36 Stunden eine Art Codierungswunder vollbringen. Aber ist Code, der auf diese Weise geschrieben wurde, wartbar? Ist es überhaupt lesbar? Skaliert es? Folgt es vernünftigen Programmierpraktiken? Ist es dokumentiert?

Twitter hat eine funktionierende Website gehackt und sie dann "richtig" umgeschrieben, weil sie heruntergefallen ist, als die Last zu groß wurde. Facebook hat seine ursprüngliche Site in vergleichsweise kurzer Zeit für ein solches Projekt zusammengestellt, aber später eine Reihe neuer Entwickler dazu gebracht, die PHP Plattform umzuschreiben, dass die Die Website lief weiter, weil sie nicht skaliert werden konnte.

Die Ausnahmen bestätigen die Regel.

41
Robert Harvey

Der einzige Teil, der an diesem Mythos zutreffen könnte, ist, dass Programmierer die beste Leistung erbringen, wenn sie über einen längeren Zeitraum nicht unterbrochen werden. Je mehr Dinge Sie beim Codieren in Ihrem Kopf jonglieren können, desto schneller können Sie codieren, da Sie nicht nach API-Verwendungen suchen müssen oder wissen müssen, wie ein anderer Teil des Codes von Ihnen oder einer anderen Person geschrieben wurde. Wenn ich unterbrochen werde, dauert es immer messbar lange, bis ich wieder auf Hochtouren bin. Wenn ich etwas Wichtiges (oder Lustiges) mache, verzichte ich manchmal darauf, zur normalen Zeit nach Hause zu gehen, weil es nach Stunden 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 schenken und wie viele Dinge Sie im Speicher jonglieren können. Wenn Schlaf zu einem Problem wird, denken Sie vielleicht, dass Sie mit Ihrer vollen Kapazität arbeiten, aber Sie sind es wirklich nicht. Die meisten Softwareprodukte, die wie in den von Ihnen bereitgestellten Beispielen entwickelt wurden, werden schnell in Betrieb genommen, aber genau wie das Fasten führt dies zu enormen Haftungs- und Wartungsproblemen.

Sie können definitiv viel Code produzieren, wenn Sie viel arbeiten, und mit genügend Aufwand können Sie Feature für Feature herauskurbeln. Ohne Rücksicht auf Architektur/Design können Sie jedoch keine einfach skalierbare, wartbare oder erweiterbare Software erstellen. Aus Erfahrung ist es VIEL schwieriger, über Design nachzudenken und Komponenten/Schnittstellen/Abstraktionsschichten in Ihrem Kopf (oder auf Papier) zu jonglieren, als weiterhin reinen Code zu schreiben.

29
DXM

Das Ganze klingt nur nach einer Übertreibung des Seins "in der Zone" Wenn Sie als Programmierer vollständig fokussiert sind, wird die Zeit verzerrt, Minuten werden zu Sekunden usw. Sie sind wahrscheinlich bei Ihnen am produktivsten. Es ist manchmal schwierig, in diesen Zustand zu gelangen, und es ist ziemlich einfach, aus diesem Zustand herauszukommen (meistens externe Faktoren), aber wenn Sie ... wow!

13
MPelletier

Ich kann - und habe es manchmal getan - 36 Stunden lang programmieren.
Ich denke, das Schlimmste, was ich jemals durchgemacht habe, war eine Woche mit ungefähr 10 Stunden Schlaf oder so.
Für mich haben Koffein und Energy Drinks nicht geholfen. In der Tat kann Koffein auf so lange Sicht eher negative Auswirkungen haben. Mein Rat ist, eine Menge zu trinken. Hält Sie hydratisiert und die Wege 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 würde annehmen, dass es eine Kapazität ist, die erschöpft und schließlich erschöpft ist. Und hat vielleicht einige negative gesundheitliche Auswirkungen - körperlich oder geistig, langfristig oder kurzfristig, kann ich nicht sagen.
Was ich sagen kann ist, dass Sie sich wie ein Zombie fühlen und sich auch in den Tagen nach einem solchen Marathon so fühlen werden. Persönlich hatte ich einen wirklich großen Burnout, nachdem ich dies ungefähr ein Jahr lang häufig gemacht hatte.
Das heißt: Einige Leute können für eine solche Zeitspanne effizient arbeiten, aber es kostet etwas.
Es war normalerweise die Folge einer schlechten Planung und da es keine Erfahrung darin gab, die Lücken zu schließen, die nichttechnische Projektleiter hinterlassen hatten, war dies die einzige Option.

Jetzt werden Sie selten feststellen, dass bei solchen Marathons Qualitätscode erstellt wird. Die Hauptursache hierfür sind jedoch die Umstände, unter denen diese Marathons stattfinden: Situationen, in denen Sie die Funktionen 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 durch Quickfixes und andere Hacks eine Menge technischer Schulden machen.
Gleichzeitig zeigt dies die intakte Leistung des Gehirns an: Quickfixes und Hacks erfordern sowohl Übersicht als auch Kreativität.

Sie sollten nicht vergessen, dass Qualitätscode selten in einem Durchgang geschrieben wird. Besonders wenn der Code eine lange Lebensdauer hat. Die Codequalität wird durch Überprüfung und Umgestaltung erreicht. Niemand wird sich die Mühe machen, dies 48 Stunden vor Ablauf einer Frist zu tun.

Das Fazit lautet: Sie sollten nur so lange wie möglich arbeiten und nicht länger. Wenn Sie nur 4 Stunden arbeiten können, dann ok. Machen Sie eine Pause und arbeiten Sie danach. Es ist sinnlos, 36 Stunden lang wach zu bleiben, innerhalb derer Sie 8 Stunden arbeiten. Sie erhalten die doppelte Arbeit, wenn Sie 4 Sitzungen zu je 4 Stunden durchführen und die verbleibenden 20 Stunden zur Regeneration verwenden.
Wenn Sie so lange arbeiten können, bedeutet dies, dass Sie flexibler auf Unterschätzungen reagieren können. Die langfristige Lösung besteht jedoch darin, Ihren Planungs- und Schätzungsprozess zu verbessern. Wenn dies an Ihrem Arbeitsplatz nicht möglich ist, wechseln Sie den Job. Wenn die Leute erwarten, dass Sie so lange arbeiten, wechseln Sie den Job. Sie müssen niemandem etwas beweisen.

10
back2dos

Gute Programmierer können tatsächlich 36 Stunden programmieren. Dies bedeutet nicht, dass sie 36 Stunden lang ihren besten Qualitätscode erstellen können. Ich bin nicht ein guter Programmierer, und ich habe es mehrmals im College und sogar ein paar Mal in meinen 30ern gemacht, als ich versucht habe, Fehler für Schiffsfristen zu beheben. Es ist im Allgemeinen eine dumme Idee und spiegelt schlechte Planungs- und Planungsfähigkeiten wider.

5

Sie können wach bleiben und 36 Stunden 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 Stunden gearbeitet. Meistens diente dies dazu, einige Fristen einzuhalten. Aber die Arbeit bestand damals 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 gab nur noch einen bösen Fehler. Mein Chef hatte um 9 Uhr einen Termin mit dem Kunden, also blieb genügend Zeit. Ich habe mehrere Stunden gebraucht, um etwas zu finden und zu reparieren, das ich sonst in einer halben Stunde repariert hätte. Ich wusste nur mit Sicherheit, dass ich es trotzdem finden würde und es gab keinen Grund, meinen Chef im Stich zu lassen, da die Nacht irgendwie sowieso vorbei war.

5

Ja. Viele anekdotische Informationen weisen darauf hin, dass dies möglich ist. Ich bezweifle, dass sich jemand aus Arbeitsmarathons körperlich eine Gewohnheit machen kann. Medizinische Praktikanten ziehen diese Art von Stunden.

Machst du wahrscheinlich mehr Fehler? Ich denke, dies 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 das Problem beheben, nachdem wir die Finanzierung erhalten haben.

5
JeffO

Es ist nicht unmöglich und es ist passiert in real. Da das Kapitel lang ist, möchte ich den eigentlichen Absatz zitieren:

Mitglieder der engmaschigen Gruppe nannten sich "Hacker". Im Laufe der Zeit erweiterten sie die "Hacker" -Beschreibung auch auf Stallman. Dabei haben sie Stallman in die ethischen Traditionen der "Hacker-Ethik" eingeschärft. Ein Hacker zu sein bedeutete mehr als nur Programme zu schreiben, lernte Stallman. Es bedeutete, die bestmöglichen Programme zu schreiben. Es bedeutete, 36 Stunden am Stück an einem Terminal zu sitzen, wenn es darum ging, die bestmöglichen Programme zu schreiben. Vor allem bedeutete dies, jederzeit Zugriff auf die bestmöglichen Maschinen und die nützlichsten Informationen zu haben. Hacker sprachen offen darüber, die Welt durch Software zu verändern, und Stallman lernte die instinktive Hacker-Verachtung für jedes Hindernis, das einen Hacker daran hinderte, diese edle Sache zu erfüllen. Zu diesen Hindernissen gehörten vor allem schlechte Software, akademische Bürokratie und egoistisches Verhalten.

Dies bedeutet natürlich nicht, dass dies eine Regel für alle ist. Einige Leute können es tun, während andere es nicht können. Das Wichtigste ist, nicht unterbrochen zu werden und in Zeiten zu arbeiten, in denen Sie sich sehr produktiv fühlen. So können Sie es selbst versuchen und die Schlussfolgerungen ziehen :)

4
sakisk

Ich bezweifle es, um ehrlich zu sein. Obwohl Mythen und Geschichten über Menschen, die X, Y und Z erreichen, 24 Stunden lang wach waren, befinden sie sich unter extremen Umständen und sind selten.

Früher habe ich einen Schreibpool für eine Anwaltskanzlei bereitgestellt, bei der gelegentlich Leute alle Nachtschwärmer zogen, um zu versuchen, Dinge für bestimmte Zeiten herauszuholen. Jeder, der verrückte Stunden damit verbracht hat, Dokumente zu verfassen, hat diese Dokumente im Allgemeinen abgeschickt, um die Änderungen über Nacht rückgängig zu machen. Meiner Ansicht nach ist es nicht möglich, mehr als 12 Stunden am Stück konstant auf einem hohen Niveau zu arbeiten (und selbst das ist übertrieben), um einen Schlafmangel zu überleben, indem Sie Ihren Koffeinspiegel 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 Langstrecken-Sitzungen, unabhängig davon, was der Job ist, sei es das Kodieren oder Schreiben von Rechtsdokumenten, selten, wenn überhaupt, gut genug ist um ihre Leistung anzupassen, wenn sie ausreichend 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 innerhalb von etwa 12 Stunden ohne Pause eine qualitativ hochwertige Ausgabe liefern kann .

3
temptar

Ich denke, es ist möglich, wenn Sie eine Maschine sind - ich bezweifle nicht, dass einige es 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.

3
Kaleb Brasee

Ich und viele andere kreative Menschen zeigen Merkmale der bipolaren Persönlichkeit. Beim Entwerfen von Software neige ich dazu, den Algorithmus von Feynman zu befolgen:

  1. Schreiben Sie das Problem auf. (Protokoll)

  2. Denken Sie wirklich hart nach. (Zwischen Tagen und Jahren)

  3. Schreiben Sie die Lösung auf. (Tage)

Eine hypomanische Episode mit drastisch reduziertem Schlaf (Koffein oder nein) ist genau das Richtige, um Platz 3 zu erreichen.

2
Jon Purdy

Bitte lesen Sie diesen verwandten Beitrag in Skeptics.SE: Ist der Ballmer Peak real? und insbesondere diese Antwort von ESultanik .

Warum denke ich, dass diese beiden Fragen zusammenhängen ? Es scheint mir, dass die durch Schlafentzug verursachte Beeinträchtigung dem Betrinken etwas ähnelt, obwohl ich keine Hinweise habe, um meine Behauptung zu stützen .

Zitat aus ESultaniks zitierter Referenz,

... bescheidener Alkoholkonsum hemmt Aspekte der Kreativität, die hauptsächlich auf dem Sekundärprozess beruhen (Vorbereitung, bestimmte Teile der Beleuchtung und Überprüfung), und hemmt diejenigen, die hauptsächlich auf dem Primärprozess beruhen (Inkubation, bestimmte Teile der Beleuchtung und Restitution).

Ich würde sagen, dass man vielleicht besser in der Lage ist, abstrakte Architekturmodelle zu erstellen, wenn der Schlaf entzogen ist, aber der tatsächliche Quellcode, der in die Tastatur eingegeben wird, wäre immer noch betrunken.

2
rwong

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, wird in der Regel zuerst die Codequalität verworfen. "Mach es einfach" ist das Mantra. "Wir werden es in Version 2 reparieren" ist ein weiteres Mantra.

Wenn man also 36 Stunden am Stück codiert, leidet normalerweise die Codequalität. Aus geschäftlicher Sicht spielt dies jedoch keine Rolle. Wenn Sie nicht etwas versenden, auch nicht etwas, das kaputt ist, sind Sie möglicherweise nicht im Geschäft um es richtig zu machen.

Wenn man 36 Stunden am Stück codieren möchte, liegt das daran, dass Sie einen starken kreativen Spike haben und ihn nicht unterbrechen möchten. Sie werden in diesen 36 Stunden keinen Qualitätscode schreiben, aber Sie werden kreativen Code schreiben. Sie kommen dann später zurück und sehen sich diesen Code an und fragen sich, wie er überhaupt funktioniert.

Kreativität ist eines der Dinge, die oft in Schüben auftreten. Sie können es nicht kontrollieren, also nutzen Sie es, wenn es sich zeigt. Sie können den Code jederzeit korrigieren, wenn Sie weniger kreativ sind.

2

Als ich an der Universität Programmieren studierte, gab es einige Nächte, in denen ich mich produktiver fühlte als tagsüber. Es hat damit 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, also war ich nicht zu müde. Ich konnte bis 8 Uhr morgens durchcodieren, bevor ich wahnsinnig hungrig nach meinem Frühstück war. Nachdem dies gesagt war, würde ich am nächsten Tag um 17 Uhr mental abstürzen und ich war auf keinen Fall produktiv. Das Programmieren in der Nacht kann produktiver sein, aber wenn Sie sich den Schlaf entziehen, wird die Codequalität nie erhöht, und Sie würden niemals vorhaben, beim Codieren müde zu werden.

2
Philluminati

Vor ein paar Monaten war ich mit meinen Kollegen unterwegs und habe getrunken. Am nächsten Tag kamen wir wieder im Büro an ... aber zu unserem Erstaunen schlossen wir eine rekordverdächtige Menge an Fehlern ab.

An der Oberfläche waren diese Fehler nicht leicht zu finden und die meisten hatten keine Replikationsschritte, aber wenn wir immer noch "verrückt" waren, mussten wir "über den Tellerrand hinaus denken", wenn es darum ging, die Fehler zu beheben.

Obwohl wir nicht "schlaflos" waren, waren wir immer noch nicht in der richtigen Einstellung, um an Code zu arbeiten ... es ist nur bizarr, was an diesem Tag passiert ist, wir erwähnen es immer.

Oh, und für die Neigung haben die meisten von uns JD & Coke voll ausgenutzt :)

1
Dal

Ich denke, dass es für die meisten Menschen unmöglich ist, so lange produktiv zu arbeiten, ohne lange zu schlafen.

Aber ich denke, Sie können mit nur 3-4 Stunden guten Schlaf erstaunliche Arbeit leisten. Dies funktioniert auch an mehreren aufeinanderfolgenden Tagen intensiver (intellektueller) Arbeit mit wenig Schlaf.

Für mich muss jedoch eine anschließende Erholungsphase folgen; sagen wir, ein paar Nächte mit den üblichen 7-8 Stunden Schlaf.

0
knb