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?
quelle
Antworten:
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.
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 :-)
quelle
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 .
quelle
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.
quelle
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.
quelle
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.
quelle
Ich würde hier eine Frage stellen und von der Community bei der Lösung helfen lassen. Auf diese Weise weniger stressig.
quelle
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.
quelle
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.
quelle
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 .
quelle
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.
quelle
Zwei Vorschläge:
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.
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.
quelle
Immer wenn ich mit etwas konfrontiert werde, das nicht funktioniert, erinnere ich mich an dieses Zitat:
quelle
Empfehlungen anderer wiederholen:
und Hinzufügen:
quelle
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.
quelle
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:
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.
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.
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.
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.
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.
quelle