Code für andere Leute schreiben, Teil 3

Im zweiten Teil wurden das Chunking und das Kurzzeitgedächtnis ausführlich erläutert und gezeigt, wie sich diese Themen in Entwicklungsprinzipien, Entwurfsmustern und Refactoring-Praktiken niederschlagen. Nun wendet sich Thomas Mullen dem Langzeitgedächtnis zu.

Die Struktur des Langzeitgedächtnisses und das Problem mit dem Umlernen

Die Speicherung von Gedächtnisinhalten im Langzeitgedächtnis werden erfolgreich als Entscheidungsnetzwerk modelliert. Entscheidungsnetzwerke werden unter anderem dazu verwendet, um Entscheidungsvorgänge, das Entstehen von Konzepten und das Wiedererkennen zu modellieren.

Die Theorie besagt, dass Gedächtnisinhalte in Netzwerke eingebunden werden. Bevor ein neuer Gedächtnisinhalt in ein solches Netzwerk eingefügt wird, wird erst einmal ein passender Ort dafür gesucht. Daraufhin wird das Netzwerk um das neue Element erweitert oder so modifiziert, dass das neue Element hineinpasst. Ein Knoten des Netzwerks hat neben Beziehungen zu anderen Knoten ein Image. Dieses Image kann ein Buchstabe, ein Wort, ein Ton, ein visuelles Bild oder ein Gefühl sein. Wenn Sie schon einmal eine Mind-Map gesehen haben, wird Ihnen das Prinzip vertraut sein.

Eine Mind-Map über Mind-Maps. Quelle: Wikipedia.

Der Aufbau der Netzwerke geschieht während des Trainings, nachdem diese in das Kurzzeitgedächtnis geladen wurden.Das Antrainieren von neuen Gedächtnisinhalten liegt normalerweise in der Größenordnung von einige Sekunden, allerdings können neue Inhalte das Netzwerk so umstrukturieren, dass Verbindungen zwischen bestehenden Inhalten aufgebrochen werden. Diese existierenden Elemente müssen dann abermals erlernt (umgelernt) werden, damit ein neues Netzwerk entstehen kann, dass alle bereits erlernten Inhalte umfasst. Natürlich ist jedes Umlernen mit einem Zeitaufwand verbunden und es kann für den Lernenden frustriend sein, dabei das Gefühl zu haben, sich rückwärts, also von einer neuen, bedeutsamen Erkenntnis weg zu bewegen.

Bertrand Meyer’s Erwiterungsprinzip kann man als Echo jenes mentalen Prozesses sehen, der danach trachtet, den Aufwands des Umlernens zu reduzieren. Vom Standpunkt der Evolution ist das durchaus sinnvoll. Wenn ich beispielsweise jemanden sehe, der sich vor schmerzen windet, nachdem er eine schwarze Eidechse mit gelben Flecken gegessen hat,  habe ich eine größere Überlebenschance (und damit die Chance, meine Gene weiterzugeben), wenn ich solche Reptilien meide.

Feuersalamander. Quelle: Wikipedia.

Wenn ich daraufhin jemaden eine schwarze Schlange mit gelben Flecken essen sehe, der diese Mahlzeit gut verträgt, möchte ich mich daran erinnern, das Schlangen bekömmlich sind, ohne dass ich darauf vergesse, das Eidechsen giftig sind. Ich möchte also, dass mein Geist offen für Erweiterungen aber [wo es notwendig ist] geschlossen für Änderungen ist und das ist genau das, was das Erweiterungsprinzip aussagt.

Wie bereits im letzten Artikel erwähnt hat sich unser Gehirn dahingehend entwickelt, dass es den Aufwand für das Suchen von Gedächtnisinhalten und für das Umlernen minimiert. Wenn wir also unseren Code so strukturieren, dass er unserem Langzeitgedächtnis ähnelt, wird er leichter und schneller von anderen verstanden werden. Entwicklungsprinzipien geben uns einen Einblick in die Art und Weise, wie unser Gehirn funktioniert, ganz im Gegensatz zu Regeln, die auf mathematischen Verfahren beruhen.

Vereinfachtes kognitives Modell. Quelle: Thomas Mullen.

Im nächsten Teil beschäftigen wir uns mit der kognitiven Belastung beim Lernen und worauf man aufpassen muss, wenn man diese Belastung soweit wie möglich reduzieren möchte.

Schlagwörter: , , , , , , ,

2 Antworten to “Code für andere Leute schreiben, Teil 3”

  1. Code für andere Leute schreiben, Teil 4 « Software-Sanierung Says:

    […] Software-Sanierung alles zum Thema bestehende Software « Code für andere Leute schreiben, Teil 3 […]

  2. Code für andere Leute schreiben, Teil 8 « Software-Sanierung Says:

    […] Gehirn hat sich dahingehend entwickelt, Netzwerke für das Langzeitgedächtnis aufzubauen (siehe Teil 3). Netzwerke, die für das effiziente Auffinden von Informationen und das minimieren des Aufwandes […]

Hinterlasse einen Kommentar