Umgang mit Frustration, wenn etwas nicht funktioniert

62

Sie versuchen immer, etwas Einfaches zu implementieren, aber aus irgendeinem seltsamen Grund funktioniert es nicht.

Sie versuchen also eine mögliche Lösung, aber dann funktioniert etwas anderes nicht. Sie probieren immer wieder andere Problemumgehungen aus, aber jedes Mal funktioniert etwas anderes nicht.

Jedes Mal, wenn Sie einen Schritt näher kommen, sind Sie einen (oder mehrere) Schritte weiter von der Lösung dieses Problems entfernt und es sind nun 3 Stunden vergangen, in denen Sie 10 Minuten hätten brauchen sollen. Und es ist immer noch nicht gelöst.

Es gibt niemanden in Ihrer Firma, der Ihnen helfen kann, und Sie sind dabei, Ihre Faust durch Ihren Bildschirm zu schlagen.


Zu diesem Zeitpunkt sind Sie so frustriert, dass Sie nicht mehr klar über das Problem nachdenken können. Was sollten Sie an dieser Stelle tun? Oder was können Sie tun, um diesen Punkt nicht zu erreichen?

JD Isaacks
quelle
3
Ich denke du und ich hatten / haben gerade die gleiche Erfahrung.
AndrewKS
19
Leg es auf SO und biete ein Kopfgeld an.
JeffO
4
Wenn es nur so einfach wäre. Einige dieser Probleme gehören zu den vielen, vielen toten / unbeantworteten / nicht beantworteten Fragen.
Aditya P
2
Diese Frage scheint nicht zum Thema zu gehören, da sie auf arbeitsplatz.stackexchange.com
Kilian Foth
Das gleiche Problem von mir und die gleiche Frage.
Anwar

Antworten:

69

Obwohl dies ein echtes Problem ist, ist es nicht spezifisch für die Programmierung. Es ist jedoch meiner Meinung nach so wichtig, dass es einen Platz in diesem Forum verdient.

Meine Vorschläge: machen Sie eine Pause . Gehen Sie spazieren, meditieren, schlafen, sich körperlich betätigen * - machen Sie etwas völlig anderes, damit sich Ihr Gehirn entspannen und aus der geistigen Furcht befreien kann , während Sie Ihr Unterbewusstsein in Ruhe an dem Problem arbeiten lassen. Normalerweise liefert es überraschend schnell Ergebnisse - es muss Sie nur darüber informieren. Aber während Ihr Bewusstsein immer wieder dieselben Gedankengänge wiederholt, wird es nicht in der Lage sein, etwas anderes anzuhören.

Was können Sie tun, um diesen Punkt nicht zu erreichen?

Entspannungs- und Achtsamkeitstechniken sind ein Schlüssel, um die Stressreaktionen zu überwinden und Ihrem Geist zu ermöglichen, sich klar zu konzentrieren. Und diese zu üben, zahlt sich wirklich aus. Wenn jemand in diesen Bereichen Erfahrung hat, kann er bereits feststellen, dass der Stress steigt, bevor die Frustration überhand nehmen kann . Dann kann man den Gedankenkreislauf unterbrechen, zB durch ein paar tiefe Atemzüge oder ein paar Minuten Entspannungsübung. Dies kann alles sein, was an diesem Punkt benötigt wird.

* Küss deinen Partner, streichel dein Haustier - Vorschläge von meiner Frau :-)

Péter Török
quelle
12
+1, Unser Verstand versucht IMMER, Probleme zu lösen, nur weil wir nicht bewusst versuchen, sie zu lösen, ist unser Verstand immer noch in Aufruhr. Das ist der Grund, warum Sie sich scheinbar eine Stunde, nachdem Sie sich nicht erinnern konnten, an einen Namen aus heiterem Himmel erinnern. Und wach auf mit einem Problem, das mitten in der Nacht gelöst wurde. Ein großartiges Buch, das dies erklärt, ist Pragmatisches Denken und Lernen: Refactor Your Wetware
CaffGeek
+1 Könnte ich nicht besser sagen. Eigentlich steige ich aus meinem Würfel, verlasse das Büro, laufe durch die Stadt, rufe meine Frau an und gehe dann zurück ins Büro. Funktioniert fast 100% der Zeit.
Mr. Ant
9
Und arbeiten Sie nicht länger als 8 Stunden am Tag. Je müder Sie sind, desto leichter werden Sie frustriert.
HLGEM
3
Wenn ich eine Pause mache, um zu pinkeln, habe ich das Problem oft gelöst, wenn ich zurück zu meinem Schreibtisch gehe. Es ist, als ob Ihr Unterbewusstsein darauf wartet, dass Ihr Bewusstsein den Mund hält.
barrycarter
1
@junxiong, man kann diese Techniken auch unter Zeitdruck anwenden, aber das erfordert Erfahrung. Jemand, der zB seit Jahren meditiert, kann sich in wenigen Minuten oder sogar Sekunden selbst kontrollieren und beruhigen. Unter Zeitdruck etwas Neues zu lernen - und vor allem Achtsamkeit - ist sehr schwierig. Wenn alles andere fehlschlägt, nehmen Sie dies als wichtige Lektion und bereiten Sie sich nach Ablauf der Frist auf die nächste Krise vor, indem Sie Ihr Verhalten analysieren und einige der hier oder in anderen Antworten genannten Techniken anwenden.
Péter Török,
35

Es sind jetzt 3 Stunden vergangen, wenn dies 10 Minuten hätte dauern sollen.

Das Zauberwort ist sollte . Streichen Sie das aus Ihrem Wortschatz heraus.

Wer hat gesagt, dass es 10 Minuten dauern soll? Wer speziell? Was war die sachliche Grundlage für ihre Behauptung?

Wenn Sie in 3 Mal zuvor getan haben und jedes Mal, wenn Sie in der Nähe von 10 Minuten waren, haben Sie eine rationale Grundlage für eine sollte .

Wenn Sie es noch nie zuvor getan haben, sagen sollte nur setzt sich zum Scheitern verurteilt. Sie sollten heute aufhören sollten .

S.Lott
quelle
2
Natürlich gibt es viele Dinge, die Sie millionenfach getan haben und die eines Tages einfach nicht mehr funktionieren. Eine beschädigte Datei in einem automatisch generierten Code kann verdammt frustrierend sein und ist manchmal extrem schwierig zu debuggen. Ich denke an Zeiten, in denen ich versehentlich zwei Dinge gleich benannt und dann mit einem Refactoring-Tool alle Instanzen geändert habe, in denen der Name vorkam. Ich habe diese knochenköpfige Bewegung einige Male mit Klassen durchgeführt, die mit meinen durch ORM generierten Klassen in Konflikt standen. Tun Sie so etwas und hoffen Sie, dass Sie beim Einchecken gut abschneiden.
Morgan Herlocker
1
@Prof Plum: "Ich habe diesen knochenköpfigen Zug ein paar Mal gemacht". Hervorragender Punkt. Das bedeutet, dass eine Erwartung die Zeit für diesen knochenköpfigen Zug einschließen muss. Auch hier sollte das "Sollte " alle Fakten enthalten, nicht die "Wenn alles richtig lief" -Fakten, und die "Knochenbewegungs" -Fakten ausschließen.
S.Lott
22

Finden Sie jemanden, der als Resonanzboden dient

Auch wenn niemand genau weiß, woran Sie arbeiten, ist es eine gute Idee, häufig über diese Dinge zu sprechen. Schon der bloße Akt, jemanden als Resonanzboden zu benutzen, kann Sie dazu bringen, sich zu drehen. Sie werden feststellen, dass Sie an neue Dinge denken, die Sie ausprobieren sollten. Es wird auch Ihren Stress lindern, ein wenig Luft zu lassen und möglicherweise einen neuen Freund zu finden. Es ist auch im Allgemeinen nur gesund für das Team, sich wohl zu fühlen, miteinander zu teilen und sich gegenseitig zu bemitleiden, um eine teamorientierte Atmosphäre für die Lösung solcher Probleme zu erzeugen.

Doug T.
quelle
7
Auch wenn die Person keine Ahnung hat, was Sie ihr sagen, hilft schon das Aussprechen, die Dinge zu klären.
Michael Brown
2
@Mike, auch wenn diese "Person" ein Teddybär ist, funktioniert es in einem überraschend großen Prozentsatz der Fälle (es gibt eine echte Geschichte darüber im Hacker Dictionary AFAIR)
Péter Török
3
@ Mike Brown - siehe "Rubber Duck Debugging"
ocodo
1
Gummiente Debuggen? pfft. Aus diesem Grund habe ich einen Debugging Goomba auf meinem Schreibtisch, Enten sind besser für das Projektmanagement.
Glasnt
Ja, ich wollte darauf verweisen, dass ... einfach zu faul war, um den Link aufzurufen: P
Michael Brown
9

Geh eine Weile weg und tu etwas anderes. Schlafen Sie gut und kommen Sie morgens auf das Problem zurück.

Mach dich auch nicht fertig. Ihre Schätzung von zehn Minuten ist eindeutig nicht korrekt, und das passiert die ganze Zeit.

Jprete
quelle
9

Ich habe ein paar Schritte, wenn ich diesen Punkt erreicht habe. Normalerweise kann ich eine Lösung finden, wenn ich mir die Zeit nehme, zurückzutreten und nachzudenken.

Schritt 1: Gehen Sie vom Problem weg und klären Sie Ihren Kopf. Komm zurück, wenn du nicht frustriert bist und es mit einem frischen Verstand betrachten kannst.

Schritt 2: Kehren Sie zum Code zurück und prüfen Sie, ob Sie etwas übersehen haben. Lass jemanden kommen und sei ein zweites Paar Augen, wenn du es einfach nicht schaffst.

Schritt 3: Entfernen Sie den Code aus der Gleichung. Welches Problem möchten Sie lösen? Schreiben Sie es auf ein Blatt Papier oder Whiteboard. Sprechen Sie das Problem mit jemandem aus, um dessen Meinung zu dem Problem und der Lösung zu erfahren.

Schritt 4: Wenden Sie sich an die Community, um zu sehen, ob sie eine Lösung hat oder ob jemand anderes jemals die gleiche Mauer getroffen hat.

Grundsätzlich können diese als "Stop Hacking und Schritt weg vom Code" zusammengefasst werden.

Tyanna
quelle
Ich benutze das Whiteboard die ganze Zeit. Sehr nützlich für die Visualisierung beim Debuggen.
Michael K
In Schritt 3 wird die Domäne des Problems geändert, um festzustellen, ob ein paralleler Erfolg wiederverwendet werden kann. Es wird auch als Metapher bezeichnet.
Kurucu
2

Ich würde hier eine Frage stellen und von der Community bei der Lösung helfen lassen. Auf diese Weise weniger stressig.

Bernard
quelle
6
Manchmal führt nur das Schreiben der Frage zur Lösung
JoelFan
1

Ich habe eine andere Lösung - SCHLAFEN !!

Wenn Sie mit einem Problem frustriert sind, können Sie es nicht einfach lösen. Es ist also besser, wenn Sie so müde werden, das Problem zu lösen und dann einschlafen.

Wenn Sie aufwachen, haben Sie ein frisches Gefühl und können wieder klar mit dem Problem denken. Ich mache es manchmal.

Ruben
quelle
Nicht um pingelig zu sein, aber diese "andere" Lösung wurde in mindestens zwei früheren Antworten erwähnt.
Péter Török
1
was ich meinte -> mache nicht einfach eine Pause, gehe oder schlafe, sondern werde müde, versuche das Problem zu lösen und schlafe dann. denn wenn du das problem in dir hast, kommst du vielleicht nicht so leicht
raus
1

Etwas zu finden, das dabei hilft, Vertrauen aufzubauen, ist das, was ich tendenziell tue, wenn ich an diesem Punkt angelangt bin. Dies könnte das Lösen eines Sudoku- oder Kenken-Puzzles sein, eine einfache, sinnlose Verwaltungsaufgabe wie das Ausfüllen meines Arbeitszeitblattes oder ein Spaziergang. Der Schlüssel hier ist für mich, ein Gefühl der Errungenschaft zu haben, was auch immer diese kleine Ablenkung ist, um mich genug aufzupumpen, um wieder auf das Pferd zu steigen und in das wilde Blau dahinter zu reiten, um dort ein paar Metaphern zu mischen.

Um zu vermeiden, dass es so schlimm wird, würde ich wahrscheinlich eine Strategie für Time-Boxing vorschlagen. Wenn Sie glauben, dass etwas 10 Minuten dauert und es plötzlich eine Stunde später nicht mehr so ​​weit ist, würde ich aufhören und es tun eine kleine Pause, anstatt zu versuchen, meinen Kopf weiter gegen die Wand zu schlagen.

JB King
quelle
1

Ich habe einen besonderen Namen für diese Art von Situation: epische Programmierschlacht .

Wenn ich nicht mindestens einen epischen Programmierkampf mit einer bestimmten Programmiersprache oder einem bestimmten Tool hatte und das Problem gelöst habe, kann ich mir nicht sagen, dass ich eine solche Programmiersprache oder ein solches Tool verwenden kann.

Also gibt es meine Lösung: Mentalisiere es wie einen Kampf und eine Prüfung des Mutes und der Ausdauer . Wenn ich das Problem nicht lösen kann, lebe ich , um einen anderen Tag zu kämpfen .

Es mag ein bisschen lächerlich klingen, aber es wird lustiger und erfreulicher sein, so darüber nachzudenken (als ob es eine Art Spiel wäre, das Sie gewinnen müssten), anstatt den ganzen Weg zu leiden, weil Sie sich der Tatsache stellen müssen , dass Sie weiß nicht alles .

dukeofgaming
quelle
0

Nun ... ich denke, Sie brauchen eine neue Karriere oder ganz neue Erwartungen. Obwohl dies sicherlich nicht häufig der Fall ist, ist es im Softwaregeschäft keine Seltenheit, 3, 4, 8, 10 oder 40 Stunden für das zu benötigen, was Sie ursprünglich für einen 10-minütigen Job gehalten haben. Ich bin sicher, dass die meisten Entwickler, die an etwas arbeiten, das auch nur von mäßiger Komplexität ist, 2-Tage-Aufgaben zu 1-Monats-Aufgaben gemacht haben, nachdem sie sich damit befasst und das Problem verstanden haben.

Zu einem guten Entwickler gehört es, geduldig zu sein, sonst gewinnt der Computer und Sie werden eine Art schnellen Fehlerbehebungs-Hack einbauen, der kaum zu funktionieren scheint, aber unvermeidlich etwas kaputt macht, woran Sie nicht gedacht haben. Wenn geringfügige Verzögerungen so viel Stress verursachen, sollten Sie wahrscheinlich nicht in dieser Branche tätig sein.

Dunk
quelle
0

Zwei Vorschläge:

  1. Die klügste Person, die ich kenne, die zwei Doktortitel und die Berufsbezeichnung "Research Fellow" bei einem kleinen privaten Unternehmen hat, sagt dies

    Wenn Sie 15 Minuten darüber nachdenken und keine Antwort haben, machen Sie es falsch.

    Hör auf darüber nachzudenken.

    Mach ein Nickerchen. (spazieren gehen oder so)

    Die Antwort wird da sein, wenn Sie aufwachen.

  2. Holen Sie sich das Buch "Debugging" von David J Agan . Es wird Ihnen wahrscheinlich mehr über das Debuggen beibringen, sodass Sie es schnell debuggen können, wenn etwas nicht funktioniert.

Tim Williscroft
quelle
0

Immer wenn ich mit etwas konfrontiert werde, das nicht funktioniert, erinnere ich mich an dieses Zitat:

Wenn Sie in der Hölle sind, gehen Sie weiter, da dies das Beste ist, was Sie an diesem Punkt tun können.

Machen Sie eine Pause, versuchen Sie sich zu erfrischen und konzentrieren Sie sich auf Probleme mit einem neuen Energieniveau.

Rachel
quelle
0

Empfehlungen anderer wiederholen:

  • Diese Situation ist fast immer etwas Triviales, das man einfach nicht sieht . mach eine Pause
  • Ein anderes Augenpaar oder die bloße Erklärung des Problems für Ihre Katze kann Abhilfe schaffen

und Hinzufügen:

  • Überprüfen Sie Ihre Annahmen, insbesondere die nicht angegebenen, erneut. Sie haben wahrscheinlich den falschen Baum angebellt
  • Umkehren der Situation: Nehmen Sie an, dass das aktuelle Verhalten das gewünschte Ergebnis ist. Was müssen Sie also mit dem Code tun, um dies zu erreichen?
  • Schreiben Sie einen Testcode (Asserts oder Protokollierung oder bedingte Haltepunkte - halten Sie es einfach), um Ihre Annahmen entlang des Ausführungspfads zu überprüfen
Steven A. Lowe
quelle
0

Manchmal ist es am besten, nicht einfach zu versuchen, einen Weg durch ein Problem zu finden. Nehmen Sie sich etwas Zeit und schreiben Sie im Pseudocode auf, was Sie tun müssen. Ich weiß, dass es Druck gibt, Dinge so schnell wie möglich zu erledigen, aber nach dem, was ich gesehen habe, führt dieser Codierungsstil zu der Art von Situation, die Sie beschreiben. Wenn jemand Code schreibt, der nur unter bestimmten Bedingungen funktioniert und Änderungen vornimmt, führt dies zu Fehlern oder unerwarteten Aktionen.

Auch (ich hasse es, zuzugeben, dass meine Professoren damit Recht hatten ...) hilft das Dokumentieren und Testen von Einheiten. Dies würde es einfacher machen zu wissen, was ein Codeabschnitt angesichts des Satzes von Eingaben ausgeben wird. Dann ist es einfacher zu erkennen, welchen Effekt eine Änderung der Eingabe in diesen Abschnitten hat.

John
quelle
0

Müdigkeit oder Schlafmangel sind für mich kein Thema. Ich bin mehr frustriert über die mangelnde Organisation innerhalb der Branche als Ganzes und über die niedrigen Standards, die wir uns selbst gesetzt haben. Hier sind fünf Dinge, die mich frustrieren:

  1. APIs, deren Design kompliziert ist. Es ist, als würde man eine ganz neue Programmiersprache lernen. In der Tat sind einige APIs viel schwieriger zu erlernen als das Erlernen neuer Programmiersprachen. Ich bewundere Ihre Intelligenz, aber Sie hätten mir Zeit sparen können, indem Sie mir dokumentierten, dass ich einen Doktortitel in Softwareentwicklung oder Informatik brauchte, um das zu verstehen.

  2. Fehlende gute Dokumentation. Ich kann nie darüber hinwegsehen, dass so viele API-Designer viel Zeit damit verbringen, eine API nur mit minimaler Dokumentation zu veröffentlichen. Danke, aber wie verwende ich das? Was ist in dieser Situation zu tun? usw.

  3. Eigene Implementierungen. Einige proprietäre Implementierungen sind in Ordnung, aber wenn es Standards gibt, befolgen Sie diese zum Wohle der Menschheit. Nichts ist frustrierender, als Zeit damit zu verbringen, sich zu fragen, warum etwas nicht funktioniert, nur um herauszufinden, dass die Implementierung nicht den normalen Standards entspricht.

  4. Sandkastenumgebungen / Einschränkungen. Okay, vielleicht hilft das, die schlechten Leute fernzuhalten, aber meiner Meinung nach schränken Beschränkungen dessen, was ein Programmierer tun kann, nur die Kreativität und den technologischen Fortschritt ein. Viele der großartigen Ideen, die ich hatte, wurden verworfen, nachdem ich festgestellt hatte, dass ich nichts tun darf. Die Programmierbranche ist wirklich dafür gemacht, alltägliche Anwendungen zu verwirklichen, keine innovative bahnbrechende Software. Wenn Sie sich also dafür entscheiden, Programmierer zu werden, entscheiden Sie sich wirklich dafür, ein moderner Grunzer zu sein, es sei denn, Sie möchten ein einsamer Akademiker werden.

  5. Moderne Diskussionen. Die Menschen debattieren heute immer noch über die Hässlichkeit von Lisp-Klammern oder den Verdienst von Pythons Sauberkeit oder darüber, wie manche Sprachen wie Cobol oder Fortran ausgestorben sind usw. Wirklich Leute? Darüber diskutieren wir? Sprechen wir über Parallelität oder bessere Möglichkeiten, um sicherere Systeme zu entwerfen, oder wie die Logikprogrammierung unser Leben verbessern kann. Hören wir auf, wie Programmierer zu denken, und denken wir wie Designer der Welt von morgen.

Aufgrund dieser Frustrationen programmiere ich persönlich nicht mehr so ​​viel. Bis die Branche entscheidet, dass sie mehr will, als nur das nächste Facebook zu erstellen oder das Textverarbeitungsprogramm neu zu erfinden, auf das ich eingestellt bin. Ich überlasse es euch. Ehrlich gesagt kein Vergehen, es ist gutes Geld.

ärgerlich_quid
quelle