Programmieren lernen: Nachhilfe mit ChatGPT

Symbolbild: zusammen lernen

Ich habe in den vorherigen ChatGPT-Artikeln gezeigt, dass ChatGPT einerseits recht guten Text und Code ausgibt. Wichtig ist hierbei zu achten, wie du die Fragen stellst. Aber dennoch passiert, es trotz präziser Fragen, dass ChatGPT Antworten gibt, wo ich denke “Gehe nach Hause ChatGPT, du bist besoffen”.

Wo ich dagegen bis jetzt immer solide Antworten bekam, war nach der Frage bei der Erklärung nach einem Code-Schnipsel. Hier ein paar Beispiele, die ich entweder durch eigenes Wissen oder Überprüfung feststellen konnte, dass es richtig ist.

0. Willst du mit mir chatten: ja, nein, vielleicht?

Hier meine Frage, um ChatGPT in den richtigen Modus zu lenken:

Stelle dir vor, du bist ein erfahrener Webentwickler und Trainer. Ich würde dir einige Fragen zu Code-Fragmenten stellen und du erklärst es so, dass auch ein Programmieranfänger es verstehen kann.

Wie sich ChatGPT verhalten soll

Gerne! Ich bin bereit, deine Fragen zu beantworten und Code-Fragmente zu erklären. Frag einfach los!

ChatGPT hat Bock 😃

1. Mobil oder nicht mobil, das ist hier die Frage

Kannst du mir erklären, was das hier ist und wofür es gut ist:

<meta name="viewport" content="width=device-width, initial-scale=1.0">

Meine erste Frage. Etwas Einfaches zum Aufwärmen.

Ja, sicher! Das ist ein sogenanntes Meta-Tag, das in den Head-Bereich einer HTML-Seite eingebunden wird. Das Meta-Tag mit dem Namen “viewport” wird häufig in responsiven Webseiten verwendet, um die Darstellung auf unterschiedlichen Geräten und Bildschirmgrößen zu optimieren.

Die Inhalte des Meta-Tags sind in diesem Fall “width=device-width” und “initial-scale=1.0”. Das bedeutet, dass die Breite des Viewports auf die Breite des Geräts eingestellt wird (damit die Webseite nicht breiter als der Bildschirm des Geräts ist) und dass der initiale Zoomfaktor auf 100% (kein Zoom) gesetzt wird.

Insgesamt sorgt dieses Meta-Tag dafür, dass die Webseite auf allen Geräten und Bildschirmgrößen optimal dargestellt wird und dass Benutzer keine horizontalen Scrollbalken verwenden müssen, um die Seite anzuzeigen.

Die erste Antwort von ChatGPT ist richtig. ✅

2. Rahmen macht die Bilder noch schöner

Kannst du mir erklären, was das hier ist:

/* Rahmen für die Artikelbilder */
.wp-post-image {border: 1px solid #eee;}
.featured-posts .wp-post-image {border: 1px solid #eee;}
Eine CSS-Frage

Sicher, gerne! Das ist CSS-Code, der verwendet wird, um Rahmen um Bilder in einem WordPress-Thema oder einer WordPress-Website hinzuzufügen.

Die ersten beiden Zeilen setzen einen Rahmen von 1 Pixel um ein Bild, das in einem WordPress-Beitrag oder einer WordPress-Seite eingebettet ist. Der Selektor “.wp-post-image” wählt das Bild-Element aus, das in einem WordPress-Beitrag als Standard-Beitragsbild verwendet wird. Die Eigenschaft “border” wird auf diesen Selektor angewendet, um den Rahmen hinzuzufügen. Die Farbe des Rahmens ist in diesem Fall ein helles Grau (#eee).

Die dritte Zeile ist eine spezifischere Anweisung, die verwendet wird, um das gleiche Rahmendesign auf einem bestimmten Bereich der WordPress-Seite anzuwenden. In diesem Fall wird der Rahmen auf Bilder angewendet, die in einem Bereich mit der Klasse “featured-posts” eingebettet sind.

Insgesamt sorgt dieser Code dafür, dass Bilder auf der WordPress-Website durch einen Rahmen hervorgehoben werden und die Darstellung der Bilder auf der Seite verbessert wird.

Die zweite Antwort ist ebenfalls richtig. ✅

3. Für eine Handvoll Browsercache

Kannst du mir erklären, wofür das gut ist:

ExpiresActive on ExpiresDefault "access plus 99 days" Header unset ETag FileETag None
Jetzt wechseln wir zu .htaccess

Das ist ein Apache-Webserver-Konfigurationscode, der verwendet wird, um die Caching-Dauer von statischen Dateien auf der Website zu erhöhen. Durch das Caching von statischen Dateien können die Besucher der Website die Inhalte schneller laden, da sie nicht jedes Mal heruntergeladen werden müssen, wenn sie die Seite besuchen.

Die erste Zeile “<FilesMatch>” definiert eine reguläre Ausdrucksübereinstimmung, um festzulegen, welche Arten von Dateien gecacht werden sollen. In diesem Fall werden Dateien mit den Endungen “.ico”, “.jpg”, “.jpeg”, “.png”, “.gif”, “.js”, “.css”, “.swf”, “.svg”, “.eot”, “.webp”, “.woff” und “.woff2” ausgewählt.

Die zweite Zeile “ExpiresActive” aktiviert das Caching-Modul auf dem Apache-Server. Die dritte Zeile “ExpiresDefault” gibt an, wie lange die Dateien im Cache gespeichert werden sollen. In diesem Fall werden sie 99 Tage lang im Cache gespeichert.

Die vierte Zeile “Header unset ETag” entfernt den ETag-Header, der normalerweise von Apache gesendet wird, um die Ressource zu identifizieren. Dies kann dazu führen, dass Browser die Ressource häufiger herunterladen, als notwendig ist, da sie denken, dass sich die Ressource geändert hat.

Die fünfte Zeile “FileETag None” deaktiviert die ETag-Generierung vollständig, um sicherzustellen, dass die Ressourcen im Cache bleiben, solange die Ablaufzeit nicht erreicht wurde.

Zusammen ermöglicht dieser Code einen schnelleren Seitenaufbau durch das Caching von statischen Dateien wie Bildern, Skripten und Stylesheets, die auf der Website verwendet werden.

Auch die dritte Antwort ist richtig. ✅

4. Viele bunte Farben

Jetzt kommen wir zu einer Frage, welche ich neulich in einem Blogartikel abgehandelt habe:

Kannst du mir erklären, was damit erreicht wird:

background: linear-gradient(90deg, rgba(0,153,170,1) 0%, rgba(0,153,170,0.35) 55%);}
Und mal wieder eine CSS-Frage

Ja, sicher! Das ist CSS-Code, der verwendet wird, um einen Farbverlauf (Gradient) als Hintergrund für ein Element auf einer Webseite zu erzeugen.

Der Code beginnt mit dem Befehl “background”, gefolgt von der CSS-Funktion “linear-gradient”. Diese Funktion erzeugt einen Farbverlauf, der horizontal verläuft (“90deg” steht für 90 Grad, was horizontal bedeutet).

Die Farben des Verlaufs sind in diesem Fall zwei verschiedene Farben von Türkis, angegeben durch die RGBA-Codes. “RGBA” steht für Rot-Grün-Blau-Alpha und ist eine Möglichkeit, Farben in CSS darzustellen. Der erste RGBA-Code gibt die vollständige Türkisfarbe ohne Transparenz an (1.0 für den Alpha-Wert), während der zweite RGBA-Code eine leicht transparente Version von Türkis mit einem Alphawert von 0,35 darstellt.

Die Prozentwerte, die jedem Farbcode folgen, geben an, wo der Farbverlauf enden und der nächste beginnen soll. In diesem Fall beginnt der Farbverlauf bei 0% in der linken Ecke des Elements und endet bei 55% des Elements, wo er in den transparenteren Türkis übergeht.

Zusammen erzeugt dieser Code einen horizontalen Farbverlauf als Hintergrund für ein Element auf einer Webseite mit einer schrittweisen Übergang von einer vollständigen Farbe zu einer transparenten Version dieser Farbe.

Kleiner Schnitzer bei der Rechtschreibung, aber in Bezug auf CSS richtige Antwort. ✅

5. Einmal Nerd, immer Nerd

Hier kommt einer Frage, die auf die 1980er-Jahre anspielt:

In meiner frühen Jugend habe ich des Öfteren diesen Code eingetippt, erkläre den Jüngern, was das ist: 😉

10 PRINT "Hallo Welt!"
20 GOTO 10
RUN
C-64 lässt grüßen

Dieser Code ist ein sehr einfaches Programm in der Programmiersprache BASIC. Es wird als “Hello World”-Programm bezeichnet und ist ein klassisches Beispiel dafür, wie man ein Programm schreibt, das eine Ausgabe erzeugt.

Der Code besteht aus zwei Zeilen. In der ersten Zeile “10 PRINT” wird der Text “Hallo Welt!” ausgegeben. Die zweite Zeile “20 GOTO 10” springt zurück zur ersten Zeile, so dass der Text in einer Schleife immer wieder ausgegeben wird.

Wenn du diesen Code ausführst, wird “Hallo Welt!” unendlich oft auf der Konsole oder dem Bildschirm ausgegeben. Es ist eine sehr einfache Demonstration der Funktionsweise von Schleifen in der Programmierung.

Dieser Code ist inzwischen sehr berühmt und hat eine gewisse kulturelle Bedeutung erlangt. Es wurde in den frühen 1980er Jahren in dem Buch “BASIC Computer Games” veröffentlicht und wird heute oft als Beispiel für die Einfachheit und Schönheit der Programmierung angesehen.

Die Antwort von ChatGPT ist nicht nur richtig, sondern gibt auch zusätzliche Erklärungen ab. ✅

Diese Antwort ist interessant. Die gibt nicht nur eine fachliche Antwort, sondern geht darüber hinaus. Ich habe die Stelle fett hervorgehoben, wo ChatGPT auch die kulturelle Bedeutung von BASIC thematisiert.

6. Für manche nur ein Name

Und was ist hiermit:

begin
i:=3;
i=i*i;
fuchs:=0.0456;
fuchs:=sqrt(fuchs);
end
Mein Name ist Pascal, Turbo Pascal

Das sieht aus wie ein Ausschnitt aus einer Programmiersprache namens Pascal. In diesem Codeausschnitt wird eine Variable namens “i” initialisiert, auf 3 gesetzt und dann mit sich selbst multipliziert. Anschließend wird eine Variable namens “fuchs” initialisiert, auf 0.0456 gesetzt und mit der Wurzel von “fuchs” neu berechnet.

Genauer gesagt bewirkt der Code Folgendes:

  • Die erste Zeile “begin” kennzeichnet den Beginn eines Codeblocks in Pascal.
  • Die zweite Zeile “i:=3” initialisiert die Variable “i” mit dem Wert 3.
  • Die dritte Zeile “i=i*i” multipliziert den Wert von “i” mit sich selbst, so dass “i” jetzt den Wert 9 hat.
  • Die vierte Zeile “fuchs:=0.0456” initialisiert die Variable “fuchs” mit dem Wert 0.0456.
  • Die fünfte Zeile “fuchs:=sqrt(fuchs)” berechnet die Wurzel von “fuchs” und weist das Ergebnis wieder der Variablen “fuchs” zu.
  • Die letzte Zeile “end” kennzeichnet das Ende des Codeblocks in Pascal.

Insgesamt ist dieser Code ein sehr einfaches Beispiel für die Verwendung von Variablen und mathematischen Operationen in Pascal.

Soweit ich es erkennen kann, ist auch hier die Erklärung richtig. Habe das Code-Beispiel hier gefunden. ✅

7. WordPress-Backend in bunt

Was ist das für ein Code und was bewirkt es?

add_action('admin_footer','posts_status_color');
function posts_status_color(){
?>
<style>
.status-draft{background: #fc9 !important;}
.status-pending{background: #cff !important;}
.status-publish{/* so lassen wie es ist */}
.status-future{background: #cf9 !important;}
.status-private{background:#f99;}
</style>
<?php
}

Dies ist ein Codeausschnitt in der Programmiersprache PHP, der eine Funktion “posts_status_color” definiert und eine Aktion “admin_footer” mit dieser Funktion verknüpft.

Wenn diese Funktion ausgeführt wird, wird ein Inline-CSS-Code generiert, der die Farbe der verschiedenen Beitragsstatus im WordPress-Backend ändert. Die CSS-Regeln werden auf bestimmte CSS-Klassen angewendet, die von WordPress verwendet werden, um den Status von Beiträgen anzuzeigen.

Der Code verwendet die CSS-Eigenschaft “background” und gibt verschiedenen Statusfarben eine spezifische Farbe. Beispielsweise wird der Entwurfsstatus (Draft) orange (#fc9) zugewiesen, der Status “Pending” ein helles Grün (#cff) und der Status “Future” ein helles Gelb-Grün (#cf9). Die “status-publish”-Klasse wird nicht verändert, so dass sie ihre Standardfarbe behält. Der Private-Status wird in ein kräftiges Rot (#f99) geändert.

Zusammengefasst bewirkt dieser Code, dass der Hintergrundfarbe der verschiedenen Beitragsstatus im WordPress-Backend unterschiedliche Farben zugewiesen werden, um den Benutzern dabei zu helfen, die Beitragsstatus schneller zu erkennen und zu unterscheiden. Dies ist insbesondere dann nützlich, wenn Sie viele Beiträge haben und den Überblick über ihre Status behalten möchten.

Auch diese Antwort ist richtig. Siehe diesen Blogartikel. ✅

8. Nur eine kleine Seite

Was macht dieser Code:

get_header();

while ( have_posts() ) :
	the_post();

	get_template_part( 'template-parts/page/content', 'page' );

	// If comments are open or we have at least one comment, load up the comment template.
	if ( comments_open() || get_comments_number() ) :
		comments_template();
	endif;

endwhile;

get_footer();
Findet sich in vielen WordPress-Themes

Das ist ein Codeausschnitt aus einer WordPress-Theme-Datei. Wenn er in einer PHP-Datei enthalten ist, bedeutet das normalerweise, dass er für die Anzeige einer Seite oder eines Beitrags in einer WordPress-Website verantwortlich ist.

Der Code beginnt mit “get_header()”, was bedeutet, dass die Header-Datei für die Seite oder den Beitrag geladen wird. Dies ist in der Regel der Bereich oben auf der Seite, der das Logo, die Menüs und andere Inhalte enthält.

Die nächste Zeile “while ( have_posts() ) :” zeigt an, dass eine Schleife für alle Beiträge oder Seiten eingerichtet wird, die auf dieser Seite angezeigt werden sollen.

Die nächste Zeile “the_post()” ruft den nächsten Beitrag oder die nächste Seite in der Schleife auf und setzt den Inhalt für die Seite oder den Beitrag.

Die nächste Zeile “get_template_part()” lädt ein Template für den Inhalt der Seite oder des Beitrags. In diesem Fall wird das Template “content-page.php” aus dem Verzeichnis “template-parts/page” aufgerufen.

Die Zeilen, die mit “// If comments are open…” beginnen, dienen dazu, zu überprüfen, ob Kommentare für diese Seite oder diesen Beitrag aktiviert sind. Wenn dies der Fall ist, wird das Template “comments.php” geladen, um Kommentare anzuzeigen.

Die Schleife endet mit “endwhile;” und schließt den Loop für die Anzeige aller Beiträge oder Seiten auf der Seite.

Schließlich wird der Code mit “get_footer();” beendet, was bedeutet, dass die Footer-Datei für die Seite geladen wird. Dies ist in der Regel der Bereich unten auf der Seite, der Copyright-Informationen, Links und andere Inhalte enthält.

Auch die letzte Antwort ist richtig. ✅

Fazit zu ChatGPT als Lernhilfe

Das waren jetzt acht Fragen und alle Antworten waren richtig und sind meiner Meinung nach in der Lage einen Anfänger nach vorn zu bringen. Das ist natürlich aber noch lange kein Freifahrtschein, um ChatGPT blind zu vertrauen. Es macht allerdings Spaß und die konversationelle Natur erleichtert den Zugang. Du hast das Gefühl, du sprichst mit einer Person. Das könnte vielen Leuten beim Lernen helfen. ChatGPT als zusätzliches Lerntool.

Wir arbeiten seit 20 Jahren mit WordPress und bieten diverse Dienst­leistungen rund um das System an. Kontaktiere uns für weitere Informationen oder für ein Angebot.

Verwandte Beiträge:

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert