Den echten Programmierer zeichnen folgende Eigenschaften aus:
Ein
Informatikerwitz
Treffen sich zwei Bits vor einem UND Gatter. Sagt das eine zum
anderen: "UND, sind wir heute wieder HIGH?"
Informatiker sind die besten Überlebenskünstler
Man stelle sich einmal einen Informatiker im tiefsten Winter in einem dunklen Wald von hungrigen Wölfen gejagt vor. Hier ist der Informatiker geradezu in seinem Element. Er steht nämlich vor einem Problem, und solche zu lösen hat er während seiner Ausbildung sehr ausführlich und mühsam gelernt. Das Problem ist zwar bereits gegeben, aber irgendwann einmal, vor langer Zeit hat er gelernt, daß ein Problem erst spezifiziert sein will.
Er beginnt also:
Gegeben Landschaft mit 1 Informatiker und n Wölfen, double n (0..4294967925)
Gesucht Landschaft mit 1 Informatiker und 0 Wölfen
Lösungsweg Wölfe mit einem Prügel verjagen.
Sicher kann sich unser Informatiker denken, daß das Problem nicht einfach zu lösen ist, also beginnt er es in Teilprobleme zu zerlegen. Etwa in n Teilprobleme: für alle i aus (1..n) den Wolf verjagen. Nun ist unser Informatiker überglücklich. Er benutzt eine simple FOR-NEXT Schleife, in der er nacheinander die n Teilprobleme löst und somit die Teillösungen sogar schon zu einer Gesamtlösung zusammengesetzt hat. Daß der Algorithmus korrekt ist und terminiert, hat unser Informatiker schnell bewiesen. Was nun weiter geschieht ist typisch, wenngleich es zwei Möglichkeiten gibt:
Fall 1:
Wir haben einen Durchschnittsinformatiker vor uns
In Ermangelung eines Rechners benutzt er sich selbst als
Prozessor und läßt das Programm auf sich ablaufen. Er beginnt
den Wolf Nr. 1 zu verjagen, kommt zu Wolf Nr. 2, doch spätestens
jetzt hat ihn ein Wolf, der laut Algorithmus noch nicht an der
Reihe ist, ins Bein gebissen, worauf er in Panik gerät, das
ganze schöne formale Denken vergißt und einfach instinktiv die
Flucht ergreift. Später dann, wenn er wieder in Sicherheit ist
und wieder klare denken kann, bricht seine ganze Welt zusammen.
Dies kommt davon, wenn man sich als Durchschnittsinformatiker mit
praktischen Problemen beschäftigt.
Fall 2:
Ganz anders, wenn wir einen hochbegabten, mathematisch besonders
geschulten Informatiker vor uns haben. Er sieht zwar n Wölfe,
zweifelt jedoch daran, daß die Wölfe ohne sein Zutun konstant
bleiben wird. Es könnten ja während des Verjagens eine noch
nicht verjagte Wölfin Junge wirft. Um den Aufwand des
Wölfeverjagens unter diesem Aspekt abzuschätzen, muß zuerst
eine Differentialgleichung gelöst werden, ganz abgesehen davon,
daß das Problem neu spezifiziert werden muß. Mit Erschrecken
stellt der Informatiker fest, daß ab einer bestimmten Größe
von n der Algorithmus nicht mehr terminiert (das heißt es werden
in gleicher Zeit mehr Junge geworfen, als er Wöfe verjagen
kann). Er wird daher eine neue Spezifikation vornehmen:
Gegeben Ort A mit n+k Wölfen (k ist die Anzahl der zwischenzeitlich geborenen Wölfe).
Ort B ohne Wölfe mit >=1 Informatiker.
Lösungsweg Flucht von Ort A nach Ort B
Nach Ausführung seines Algorithmus trifft er dann auf unseren Durchschnittsinformatiker, der vermutlich auf eine Baumspitze geflüchtet ist, wohin er sich eilends auch begibt und wartet, bis die Wölfe wieder abziehen. Sind die Wölfe erst weg, so werden sich beide Informatiker schnell darüber einig, daß man den Baum am besten per rekursiven Abstieg herunterkommt. Da sie lange auf dem Baum saßen, waren sie stark durchfroren. Doch zum Glück kam ihnen eine alte Algorithmenentwurfsmethode entgegen, und eine Axt, die herumlag entpuppte sich als ausgezeichnetes Programmierwerkzeug.