Wie wichtig sind Algorithmen in der täglichen Arbeit eines Programmierers?
Ich denke, viele Leute haben eine falsche Vorstellung davon, was genau ein Algorithmus ist, und welche Bedeutung er bei der Softwareentwicklung hat.
Man stellt sich vor, Programmierer zeichnen solchen Flussdiagramme auf grossen Blätter Papier und setzen sich dann am Komputer, und setzen sie um…
Naja… das mag gelegentlich stattfinden. Aber es geht hierbei mehr um eine strukturierte Denkweise, nicht um das niederskizzieren eines Diagramms. Es geht darum, ein Problem mental zu strukturieren. Aus dieser Struktur Ablaufblöcke zu bilden. Daraus dann schliesslich Einzelschritte herauszubrechen.
Algorithmisches Denken ist eine Denkweise, nicht bloss ein Diagramm.
Ich war vor Jahrzehnte Datenbank- und Applikationsentwickler (auf Grossrechnersysteme). Ich programmiere schon lange nicht mehr. Aber diese strukturierte Denkweise ist bis heute prägend geblieben. Immer wieder werde ich eingeladen, mit Kunden eine Problemanalyse zu besprechen, und immer wieder falle ich in dieses analytische Denkmuster zurück.
Ausgang? Ziel?
Auslöser? Stopper?
Primärpfad? Ausnahmen?
Loops? Loopkontrollmechanismus?
Konditionen? Was? Wann? Wohin? Welche Daten werden weitergegeben?
Prozesskontrolle? Woher weiss ich, dass alles nach Plan läuft? Oder eben nicht?
Timing? Interferenzen von anderen Systemen?
Ressourcen?
Und so weiter. Natürlich schwafele ich das nicht so ungefiltert den Kunden entgegen (die meist nicht IT-Leute sind, sondern eher aus dem “Business” stammen). Das würde nur verwirren.
Aber übersetzt macht das dann durchaus Sinn, und die strukturierte, emotionslose Herangehensweise ist enorm hilfreich.
Aber im Grunde genommen ist diese nichts anderes als die Übersetzung eines Prozesses in einem Algorithmus.
Frage: Wie wichtig ist Algorithmus in der täglichen Arbeit eines Programmierers?