Als Programmiergemeinschaft hilft freeCodeCamp vielen Menschen, die Fragen zu ihrem Code haben. Es kann ziemlich verlockend sein, dem Lernenden einfach die Antwort zu geben und weiterzumachen, aber das ist tatsächlich schädlich für den Lernprozess. Hier ist der Grund:
Wenn Sie jemandem die Antwort geben, berauben Sie ihn dieses „Aha“-Moments. Sie nehmen die Möglichkeit, selbst zu lernen, wie man zu der Schlussfolgerung gelangt, und erlauben ihm stattdessen, mit minimalem Aufwand oder Gedanken voranzukommen.
Wie können Sie also jemandem am besten mit seinem Code helfen?
Was ist die sokratische Methode?
Der griechische Philosoph Plato war ein Schüler eines anderen Philosophen, Sokrates. In Platons Werken schreibt er oft über die Debatten, die Sokrates mit seinen Kollegen und Schülern führte.
Sokrates begann diese Diskussionen, indem er gängige Überzeugungen zur Sprache brachte und sie prüfte, um deren Vereinbarkeit mit anderen Überzeugungen in Frage zu stellen und die Menschen zur Wahrheit zu führen.
Aber wie übersetzt sich das in unsere modernen Interaktionen im digitalen Zeitalter?
Lassen Sie uns ein echtes Beispiel aus einer unserer Gemeinschaften betrachten:
Sie könnten versucht sein, ihnen die direkte Antwort zu geben, wie in diesem Codebeispiel:
const sum = nums.reduce((acc, el) => acc + el, 0);
Aber indem Sie dies tun, haben Sie das logische Denken im Namen des Lernenden durchgeführt.
Stattdessen sollten Sie sich darauf konzentrieren, gezielte Fragen zu stellen, um ihnen zur Antwort zu helfen. Zum Beispiel könnten Sie damit beginnen zu fragen:
❓ Wie würden Sie die Summe einer Liste von Zahlen mit Stift und Papier finden, ohne Code?
Es mag kontraintuitiv erscheinen, dem Lernenden eine Frage zu stellen, die ihn dazu bringt, sich von dem Code zu entfernen, aber tatsächlich weist du sie auf die zugrunde liegende Logik hinter ihrer Frage hin.
Angenommen, der Lernende antwortet mit etwas wie:
Ich würde jede Zahl einzeln durchgehen und sie zur Summe der vorherigen Zahlen hinzufügen.
Wenn der Lernende beginnt, deine Fragen zu beantworten, sollte der Dialog in diesem Frage-und-Antwort-Format fortschreiten. Deine Fragen sollten mit dem Fortschritt des Lernenden hin zur Lösung zunehmend enger und gezielter werden.
Ein Beispiel für eine Reihe von Fragen könnte so aussehen:
Dozent: „Super, was ist ein Array von Zahlen?“
Student: „Eine Liste?“
Dozent: „Gut! Wie würdest du durch diese Liste iterieren?“
Student: „Mit einer for-Schleife.“
Dozent: „Und was muss deine Schleife bei jeder Iteration tun?“
Student: „Die aktuelle Zahl zur Summe hinzufügen.“
Dozent: „Wo kannst du die Summe finden?“
Student: „Ich könnte sie in einer Variablen außerhalb der Schleife speichern.“
Dozent: „Großartig, jetzt bist du bereit, den Code zu schreiben.“
— ursprüngliches Beispiel, das für diesen Artikel geschrieben wurde
An diesem Punkt wird der Lernende wahrscheinlich die Zusammenhänge erkennen und die endgültige Lösung erreichen.
Sokrates in der modernen Kultur
Die sokratische Methode zu lernen, ist schwierig. Tatsächlich begegnen viele ihr erst, wenn sie ihr Studium an der Universität beginnen. Aber es gibt Beispiele in der modernen Popkultur, die dir helfen können zu verstehen, wie die sokratische Methode funktioniert.
Die TV-Show House, M.D. ist reich an Beispielen. Nehmen Sie diesen Austausch aus der Episode mit dem Titel „Drei Geschichten“:
House: „Was würden Nierensteine verursachen?“
Student: „Blut im Urin.“
House: „Welche Farbe hat Ihr Urin?“
Student: „Gelb.“
House: „Welche Farbe hat Ihr Blut?“
Student: „Rot.“
House: „Welche Farben habe ich benutzt?“
Student: „Rot, Gelb und Braun.
House: „Und Braun. Was verursacht Braun?“
Student: „Abfall“.
— (Frapier, 2008)¹
Sie werden bemerken, wie dieser Austausch stattfand. House’ Ziel war hier nicht, dem Lernenden die Antwort zu geben, sondern deduktive Fragen zu stellen, um den Lernenden zu führen, die Antwort selbst zu finden.
Betrachten Sie den populären Film The Matrix:
Morpheus: „Hattest du jemals einen Traum, Neo, von dem du dir so sicher warst, dass er real war?“
Neo: „Das kann nicht sein…“
Morpheus: „Was sein? Real sein?“
Morpheus: „Was wäre, wenn du aus diesem Traum nicht aufwachen könntest, Neo? Wie würdest du den Unterschied zwischen der Traumwelt und der realen Welt erkennen?“
— (Wachowski & Wachowski, 1999)²
In dieser Szene wendet Morpheus die sokratische Methode an, um Neo dazu zu bringen, seine Wahrnehmung der Realität zu hinterfragen. Dies ist ein eher dramatisches Beispiel, aber das Prinzip bleibt gleich: Anstatt dem Lernenden zu sagen, wie er denken soll, führen Sie ihn dazu, die Schlussfolgerung aus eigenem Willen zu ziehen.
Schließlich schauen wir uns ein Beispiel aus Legally Blonde an:
Elle: „Wurde dein Vater erschossen, während du in der Dusche warst?“
…
Chutney: „Ja. Ich habe meine Haare gewaschen.“
Elle: „Miss Windham, können Sie uns sagen, was Sie früher am Tag gemacht haben?“
Chutney: „Ich bin aufgestanden, bin zu Starbucks gegangen, ins Fitnessstudio, habe mir eine Dauerwelle machen lassen und bin nach Hause gekommen.“
Elle: „Wo Sie in die Dusche gegangen sind.“
Chutney: „Ja.“
…
Elle: „…Hatten Sie jemals zuvor eine Dauerwelle, Miss Windham?“
Chutney: „Ja.“
Elle: „Wie viele würden Sie sagen?“
Chutney: „Zwei pro Jahr, seit ich zwölf bin. Rechnen Sie selbst.“
…
Elle: „Chutney, warum wurden die Locken von Tracy Marcinko ruiniert, als sie abgespritzt wurde?“
Chutney: „Weil sie nass wurden.“
Elle: „Das stimmt. Denn ist nicht die erste Grundregel der Pflege einer Dauerwelle, dass Sie Ihr Haar für mindestens vierundzwanzig Stunden nach dem Frisieren nicht nass machen dürfen, um das Ammoniumthiglykolat nicht zu deaktivieren? Und wäre jemand, der insgesamt – dreißig Dauerwellen? – in ihrem Leben hatte, sich dieser Regel nicht bewusst? Und wenn Sie tatsächlich nicht Ihre Haare gewaschen haben, wie ich vermute, da Ihre Locken noch intakt sind, hätten Sie dann nicht den Schuss gehört?“
—(Luketic, 2001)³
Die sokratische Methode kann oft im Recht gesehen werden, und dies dient als hervorragendes Beispiel. Durch diesen Austausch versucht Elle nicht, Chutney zu einer Schlussfolgerung zu führen, sondern vielmehr die Zuschauer (in diesem Fall die Jury). Dies ist eine wichtige Unterscheidung für eine Gemeinschaft wie die unsere: Wo die Teilnahme an einer sokratischen Diskussion mit einem Mitglied tatsächlich den aktuellen und zukünftigen Mitgliedern zugutekommen kann, die Ihr Gespräch beobachten oder erneut besuchen.
Ziel der sokratischen Methode
Es ist wichtig zu erkennen, dass das Ziel der sokratischen Methode nicht darin besteht, einen schnellen Austausch von Informationen zu präsentieren. Vielmehr besteht das Ziel darin, den Lernenden zuerst dazu zu bringen, zu erkennen, dass sie weniger wissen, als sie glauben, und sie dann durch Fragen zu der Antwort zu führen, die bestimmte Denkprozesse hervorrufen.⁴
Wenn wir dies auf das Programmieren lernen anwenden, ist es wichtig, sich an den Satz „Herausforderung deiner Annahmen“ zu erinnern. Wir gehen oft davon aus, dass wir wissen, was der von uns geschriebene Code tut, sodass unser erster Schritt, wenn er nicht funktioniert, darin besteht, diese Annahmen zu überprüfen.
Während wir die Lernenden durch den Prozess des Debuggens führen, wollen wir Fragen stellen, die dasselbe tun. Eine häufige Frage in deinem Repertoire sollte „Was macht diese Codezeile?“ sein. Wenn der Lernende mit Informationen antwortet, die ungenau sind, antworte mit Fragen, die tiefer in kleinere Komponenten des Codes eingreifen – zerlege das Problem in Teile, sozusagen.
Betrachte dieses Beispiel:
Lernender: „aber vielleicht würde das nicht funktionieren, weil ich das Buch finden muss, nicht die ID im Buch“
Dozent: „Richtig. Die gute Nachricht ist, dass wir eine Funktion haben, die das angeblich tun würde. Die schlechte Nachricht ist, dass diese Funktion das nicht tut. Was macht diese Funktion stattdessen?“
Lernender: „gibt bookId zurück“
— stammt aus unserer Discord-Community⁵
Indem der Dozent die Frage „Was macht diese Funktion stattdessen?“ stellt, hat er dem Lernenden die Richtung vorgegeben, um die richtige Schlussfolgerung zu ziehen, ohne spezifische Informationen bereitstellen zu müssen. Der Lernende wusste bereits, dass die Funktion nicht wie erwartet funktionierte, und der Dozent stellte die Frage, um die Annahme des Lernenden in Frage zu stellen, dass die Funktion tatsächlich funktionierte.
Hier ist ein weiteres Beispiel:
Dozent: „Das ist das Beispiel aus der Chalenge (sic). Hast du das Beispiel, das sie gegeben haben, verfolgt?“
Lernender: „Ja, aber ich habe die for-in Schleife nicht verstanden, ich habe nicht verstanden, was ‚(const food in refrigerator)‘ bedeutet, es war verwirrend, den String-Eigenschaftsnamen mit const oder let anzugeben (jetzt ist es nicht mehr so).“
Dozent: „Okay, lass uns hier anfangen, anstatt die vollständige Lösung der Herausforderung zu besprechen.“
Dozent: „Was macht dieser Code, wenn du ihn ausführst?“
…
Lernender: „Jeder der Schlüssel des Objekts wurde der Variablen food zugewiesen, die in der for-in Schleife erstellt wurde. Dann iteriert es durch das Objekt und protokolliert den Schlüssel und den Wert, der dem Schlüssel zugewiesen ist?“
— aus unserer Discord-Community⁶
Wieder können wir sehen, wie der Dozent darauf fokussiert ist, gezielte Fragen zu stellen, die den Benutzer dazu bringen, Lösungen durch eigenes Denken zu finden.
❗ Das ist das ultimative Ziel der sokratischen Methode: den Lernenden zu führen, damit er allein durch eigenes Denken zu einer logischen Schlussfolgerung gelangt.
Langfristige Vorteile der sokratischen Methode
Die sokratische Methode ist nicht nur vorteilhaft für die unmittelbare Lösung. Der in diesem Ansatz angewandte deduktive Denkprozess kann sich auch langfristig positiv auf den Lernenden auswirken.
Der Prozess, einem Lernenden Fragen zu stellen, um deren Annahmen und Wissen herauszufordern und sie zur Lösung zu führen, ist etwas, das ebenfalls verinnerlicht werden kann. Es ist ein mächtiges Werkzeug, das man in seinem Repertoire hat, um beim Debuggen vorzugehen, Annahmen zu isolieren und sogar zu lernen, ein Problem zu artikulieren.
Das bedeutet, dass der Lernende durch diese Frage-und-Antwort-Konversation auch in der Lage ist, sich selbst diese Fragen zu stellen. Sie können den gleichen Prozess des Stellens von zunehmend eingrenzenden Fragen als logischen Weg nutzen und mental durchlaufen, wenn sie in Zukunft auf Probleme mit ihrem Code (oder sogar in anderen Lebensbereichen) stoßen!
Fazit
Eine Lösung direkt einem Lernenden zu geben, hemmt dessen intellektuelles Wachstum und beraubt ihn der bereichernden Erfahrung, die aus dem Erreichen eigener logischer Schlussfolgerungen resultiert. Durch die Nutzung von Techniken wie der sokratischen Methode können wir ein stärkeres und effektiveres Bildungsumfeld fördern, das es Lernenden ermöglicht, zu wachsen und zu gedeihen.
💡 Wenn Ihnen dieser Artikel als Antwort auf einen Forum-Post, einen Reddit-Kommentar, eine Discord-Nachricht oder eine andere Kommunikation geschickt wurde, in der Sie einem anderen Lernenden eine funktionierende Lösung gegeben haben, ziehen Sie bitte die Vorzüge dieser Methode in Betracht.
Dieser Ansatz kann mühsam und langwierig erscheinen, und manchmal ist er es auch. Es ist viel schneller (und möglicherweise einfacher), jemandem den Code zu geben, der sein Problem löst.
Aber dieser Ansatz schadet dem Lernenden am Ende mehr, als dass er ihm nützt. Und wenn der Autor diese Anekdote verzeihen mag, habe ich gesehen, wie Menschen frustriert wurden, wenn sie das Thema eines sokratischen Ansatzes waren, oder die Geduld bei dem Hin und Her der Gespräche verloren haben. Aber ich habe nie gesehen, dass sie mit diesem Endergebnis – dem „Aha“-Moment, in dem sie die Lösung des Problems durch eigenes Nachdenken ableiten – verärgert oder enttäuscht waren.
Quellen:
-
¹ Frapier, M. (2008). Nett sein ist überbewertet: House und Sokrates über die Notwendigkeit von Konflikten. In House und Philosophie (S. 100–101). John Wiley & Sons, Inc.
-
² Wachowski, L., & Wachowski, L. (Regisseure). (1999, 24. März). Die Matrix (Z. Staenberg, Hrsg.). Warner Bros.
-
³ Luketic, R. (Regisseur). (2001, 13. Juli). Natürlich blond (A. Brandt-Burgoyne, Hrsg.). MGM Distribution Co.
-
⁴ Frapier, M. (2008). Nett sein ist überbewertet: House und Sokrates über die Notwendigkeit von Konflikten. In House und Philosophie (S. 103). John Wiley & Sons, Inc.
-
⁵ lightskingeneral & plamoni (2024, 4. Januar). [Discord-Gespräch]. Discord. Abgerufen am 6. Januar 2025 von https://discord.com/channels/692816967895220344/718214639669870683/1192488621043888198
-
⁶ lightskingeneral & jeremylt (2023, 13. November). [Discord-Gespräch]. Discord. Abgerufen am 6. Januar 2025 von https://discord.com/channels/692816967895220344/718214639669870683/1173733715109761065
Besonderer Dank geht an ArielLeslie und JeremyLT für ihre Hilfe bei diesem Artikel.
Source:
https://www.freecodecamp.org/news/how-to-help-someone-with-their-code-using-the-socratic-method/