Wie oft seid ihr auf dem falschen Weg?
-
Kennt ihrs auch? Man hat sich ein Projekt oder einen Algorithmus überlegt und merkt mittendrin dass man auf dem falschen Wege ist. Dass der Algorithmus entweder garnicht funktioniert oder halt nur sehr, sehr kompliziert?
Passiert euch das auch?
Was kann man dagegen tun? Planen hilft auch nicht, da man ja nicht bis ins jede Detail vorausblicken kann.
-
wie_oft_passiert_euch_das schrieb:
Planen hilft auch nicht, da man ja nicht bis ins jede Detail vorausblicken kann.
Deswegen sind ja Papier und Bleistift bei Algorithmenaustüftelungen so super.
Skizzieren, Durchstreichen/Wegradieren, Neuanfang..Direkt im Programm herummachen ist viel schwieriger, weswegen so mancher Quellcodeabschitt aussieht, wie der reinste Flickenteppich aus 1001 Nacht.
-
Es kommt durchaus vor. Und zwischen Projekt und Algorithmus gibts denke ich auch grundlegende Unterschiede. Bei einem Algorithmus sollte denke ich weitgehend klar sein, was man will. Das kann man gut mit Bleistift und Papier duchspielen. Bei "Projekten" ist es schon anders. Kommt durchaus mal vor, dass wir zwar etwas recht genau durchplanen, dann aber doch eine Kleinigkeit auftaucht, eine versteckte Anforderung oder ein Problem oder eine Unzulänglichkeit einer fremden Komponente, wegen der man die ursprüngliche Idee über den Haufen werfen muss.
-
wie_oft_passiert_euch_das schrieb:
Kennt ihrs auch? Man hat sich ein Projekt oder einen Algorithmus überlegt und merkt mittendrin dass man auf dem falschen Wege ist.
Was kann man dagegen tun?Intelligenter werden
Intelligenz äußert sich u.a. auch darin, in Gedanken schnell zu erkennen, welche von zahlreichen möglichen Pfaden nicht zur Problemlösung führen und welche erfolgversprechend sind.
Alternativ die Zielstellung ändern. Produziert das numerische Integrationsverfahren, das man eigentlich entwickeln wollte, nur unsinnige Zahlen in wirrer Abfolge, kann man es vielleicht als Pseudozufallsgenerator verwenden.
-
wie_oft_passiert_euch_das schrieb:
Kennt ihrs auch? Man hat sich ein Projekt oder einen Algorithmus überlegt und merkt mittendrin dass man auf dem falschen Wege ist. Dass der Algorithmus entweder garnicht funktioniert oder halt nur sehr, sehr kompliziert?
Passiert euch das auch?
Klar, das passiert jedem oft. Der Trick ist es früh zu erkennen dass es ein Holzweg ist. Desto besser du darin geübt bist, desto früher erkennst du es - idealerweise schon in der Planungsphase bevor du Code geschrieben hast. Perfekt ist es, wenn du den Holzweg bereits ausschließt ohne darüber nachzudenken. Ich schau mir dazu gerne an welche Probleme eine Lösung hat anstatt wie gut sie das Problem ansich löst.
Reflexion ist da wichtig. Immer mal wieder geistig einen Schritt zurück machen und das gesamte Bild betrachten. Oft sind erste Anzeichen dass der Code weniger elegant Aussieht als geplant oder das man zuviele ifs, Klassen oder (Member-)Variablen einbaut.
Im Prinzip ist das aber nur Übung. Das wichtigste ist sich nicht festzukrallen.
-
und - wenn man erkannt hat, dass es so nix wird - außer bei endlosem Gefrickel, den Muht haben, das bisher programmierte zu löschen und ganz von vorne anfangen.
Das gilt insbsondere für Algorithmen - da verrennt man sich schon mal. Auch nicht das kleinste Teil kopieren für den neuen Versuch - komplett entsorgen.
Gilt auch für Uraltprogramme, die erweitert werden sollen. Hier passiert es besonders gerne.
-
Manches kann man nicht im Voraus wissen. Ich habe z. B. mal Aktoren in Scala ausprobiert und musst feststellen, dass die für meinen Geschmack zu viel Overhead hatten. Dabei wurden die als leichtgewichtig verkauft.
Diese Woche wollte ich von meiner selbst implementierten Binarisierung auf OpenCV wechseln und habe dabei mehrere Algorithmen ausprobiert. Es hat sich herausgestellt, dass mein Algorithmus besser ist. Mein nächster Schritt ist nun, meinen Algorithmus mit einer selbst geschriebenen Subpixel-Binarisierung zu erweitern, damit er endlich meinen Anforderungen genügt, da es momentan vorkommen kann, dass bei Echtzeitaufnahmen ein Pixel mal schwarz, mal weiß binarisiert wird, wegen dem Photonenrauschen.
-
Realität schrieb:
... Photonenrauschen.
Das Photonenrauschen wird oftmals überbewertet. Damit will ich nicht sagen, dass es unwichtig ist. Wenn man es unterschätz kann der Schuss ganz schön nach hinten losgehen.
-
nachtfeuer schrieb:
Direkt im Programm herummachen ist viel schwieriger, weswegen so mancher Quellcodeabschitt aussieht, wie der reinste Flickenteppich aus 1001 Nacht.
In Hobbyprojekten finde ich es gut, mich einfach von meiner Intuition treiben zu lassen. Heutzutage gibt es spitzenmäßige IDEs und Tools zur statischen Code-Analyse und Refactoring (IntelliJ Idea, Understand for C++, etc.), die das auch in Projekten von mehreren 10K LoC zum Kinderspiel machen. Du verlierst nie den Überblick. Damit wird Programmieren zum künstlerischen Schöpfungsakt.
-
Heutzutage gibt es spitzenmäßige IDEs und Tools
MS Visual Studio 2015?
-
Erhard Henkes schrieb:
Heutzutage gibt es spitzenmäßige IDEs und Tools
MS Visual Studio 2015?
Klar, das geht alles in diese Richtung.