Das ist eine gute Frage. Und ich denke, es sind nicht nur erfahrene Programmierer, die auf dieses Problem stoßen. Eine frühzeitige Behandlung kann für einen Lernenden eine großartige Möglichkeit sein, seine Fähigkeiten zu verbessern.
Dieses Problem hat zwei Seiten: eine schlechte und eine gute .
Schlecht - Die falsche Lösung auswählen
Hier ist ein Beispiel - als unerfahrenen Entwickler, Sie haben nur dann wirklich gelöst zwei Probleme vor, Probleme A und B . Zu diesem Zeitpunkt wissen Sie , es gibt Probleme , die Sie nicht kennen, aber die Linse der eigenen Erfahrung gegeben, viel von dem, was man sieht zu sehen , wie es sein könnte , A oder B .
Daraus ergibt sich ein neues Problem. Um Ihnen dieses neue Problem sieht wie Problem A , so lösen Sie es so , wie Sie in der Regel lösen A . Etwas fühlt sich nicht richtig, und es dauert länger, und wie Sie arbeiten Sie am Ende zu realisieren ist dies ein neues Problem, C . Es ist eine Variation von A, von der du nicht wusstest, dass es sie gibt.
Was tun Sie also, um diesen Fehler nicht noch einmal zu begehen? Zwei Dinge:
- Finden Sie heraus, was an diesem neuen Problem anders war. Finden Sie heraus, welche Ansätze möglicherweise anders ausgearbeitet haben und warum.
- Katalogisieren Sie dieses Problem und fahren Sie mit der Lösung weiterer neuer Probleme fort.
Dies sollte Ihnen natürlich helfen, dieses Problem zu lösen. Mit 10 Jahren Erfahrung sind Sie mit den Problemen von A bis Z vertraut und verfügen über ein umfangreiches Repertoire an Lösungen.
Gut - Effizienz
In der realen Welt ist es mit Fristen und begrenzten Ressourcen nicht immer schlecht, das zu nutzen, was Sie wissen:
- Zu Beginn des Problemlösungsprozesses vergleichen Sie das neue Problem mit allen bekannten Problemen.
- Sie werden versuchen, die Anzeichen zu erkennen und zu entscheiden, wie dieses Problem aussieht.
- Wenn keine 100% -ige Übereinstimmung erzielt werden kann, vergleicht ein erfahrener Entwickler das Risiko, mehr Zeit für die Ermittlung aufzuwenden, mit dem Risiko einer möglicherweise fehlerhaften Ausführung. Wenn das Risiko einer Zeitverschwendung zu hoch ist, fahren Sie einfach mit dem fort, was Sie wissen.
Das ist keine schlechte Sache - es verwendet eine Risikoanalyse, um die Effizienz mit einer Genauigkeit von über 100% zu bestimmen. Es wird jeden Tag gemacht und wir wären alle mit Dingen beschäftigt, die uns nicht weiterbringen, wenn wir es nicht tun.
Um Ihre Frage zu beantworten:
Wie kann man als Programmierer mit viel Erfahrung dieser Tendenz entgegenwirken, sich dem Lösen von Problemen immer aus "erprobten" Pfaden der Vergangenheit zu nähern?
- Suchen und katalogisieren Sie weiterhin nach neuen Problemen
- Besser bei der Auswahl der richtigen Lösung für das Problem; anstatt nur zu wissen, welche Lösung, wissen, warum es richtig ist.
- Üben und verbessern Sie Ihre Entscheidungskompetenzen. Manchmal ist Effizienz die richtige Wahl, und eine bessere Erkennung dieser Zeiten führt zu messbaren Vorteilen in der Praxis.