Programmieren lernen mit @DaddyChronic

Liebe Grüße. Mein Name ist Heiner Sextro. Ich programmiere seit 1985, und ich habe mir seitdem das Programmieren selbst angeeignet. Ich möchte euch hier das Programmieren schmackhaft machen.

Warum programmieren?

Ein Programmierer macht sich viel Arbeit, damit viele Leute weniger Arbeit haben. Software hilft dabei Ressourcen zu sparen und diese effektiver einzusetzen. Programmierer verbessern die Welt. Einen wichtigen Grund, warum du programmieren lernen solltest, verschweigen uns die Angehörigen der Softwareentwicklerzunft aber gerne. Der Grund lautet: Weil es einfach ist.

Programmieren ist simpel

    Ein Programmcode besteht aus nur vier verschiedenen Dingen.
  1. Zuweisungen an Variablen
  2. Bedingte Verzweigungen
  3. Schleifen
  4. Unterprogramme
Vier Konzepte sind das Grundgerüst der Programmierung. Mehr muß du nicht in deinem Kopf verankern, um die Struktur und Funktionalität einer Software zu verstehen. Verstehst du jedoch die Arbeitsweise von Etwas, dann kannst du es nachbauen. Viel besser noch. Du kannst eigene Dinge kreieren.
    Beim Handball ist es da schon viel komplizierter.
  1. Du musst laufen, auch rückwärts,
  2. springen, auch mit Ball.
  3. fangen
  4. werfen
  5. wissen, wo dein Team steht
  6. wissen, wo der Gegner steht,
  7. wissen, wo dein Tor ist,
  8. die Regeln einhalten, beim laufen mit Ball und überhaupt der ganze Scheiss.
  9. fallen können
Das sind acht Dinge, die du beherrschen musst. Und nur , wenn du das alles richtig machst, gibt es am Ende einen Treffer. Hoffentlich im Gegnertor. Wenn du das 9. Konzept auch noch verinnerlicht hast, dann holst du dir nicht einmal eine blutige Nase.

Beim Coden gibt es wie gesagt nur vier Dinge.
Natürlich wollen die Wissenden zu allen Zeiten allein bleiben. Sie ballern dich erstmal zu mit den tollsten Wörtern, die oft das gleiche bedeutet, manchmal im Kontext auch was anderes. Und natürlich immer schön in Englisch.

Geht schon mal los mit Unterprogrammen. Es gibt etliche Wörter för das Konzept Unterprogramm. Zunächst merke dir mal, dass jedes Programm, dass du erstellst, auch wieder ein Unterprogramm werden kann.

Verschiedene Namen für das Konzept Unterprogramm

Subroutine, sub, function, method, procedure und noch etliche andere Wörter benutzen die verschiedenen Programmiersprachen, um das Konzepr Unterprogramm zu benennen. Verschiedene Namen für das gleiche Konzept. In allen Sprachen haben Unterprogramme ähnliche Eigenschaften. Sie können Daten empfangen und Daten zurückliefern. Sie stellen selber Daten dar und können somit einem Etwas zugewiesen werden. Dieses etwas nennt man oft eine Variable. Womit wir beim ersten Konzept unserer Liste sind, den Zuweisungen an Variablen.

Zuweisungen

Coder nehmen immer etwas Speicherplatz, geben diesem Etwas einen Voodoozaubernamen und sagen, du bist jetzt ein Ding und du hast einen Namen, und bei diesem Namen werde ich dich jetzt rufen, und du tust, was ich dir befehle, und nichts anderes, bis in alle Zeit, aber mindestens solange Strom da ist, und Firefox JQuery nicht abschmieren lässt. Dann machen sie noch etwas Vodoo und schwupps haben sie ihrem Etwas ein komplettes Unterprogramm zugewiesen, daß ihre Drohne steuert. Meist weisst der Coder dem Ding aber simplere Sachen zu. Für das Ding gibt es natürlich auch verschiedene Bezeichnungen.
    sehr häufig benutzt werden
  1. Variable
  2. Eigenschaft
Eine Variable kannst du dir als Behälter vorstellen. In diesen Behälter kannst du etwas aufbewahren. Im folgenden Beispiel bewahre ich den Text "Heiner Sextro" in der Variablen pappas_name auf.

var pappas_name = "Heiner Sextro";

Was passiert im Beispiel?

Erstmal nimmt der Coder den Vodoostab in die Hand und schreibt ein sogenanntes Schlüsselwort.
Das Var.
Das var wird in JavaScript benutzt, um Variablen zu benennen.
Das Schlüsselwort sagt:
Hier kommt der Name einer Variablen.
Das ist die Benennung.
Stell dir die Benennung auch wie eine Zuweisung vor. Das etwas bekommt einen Namen. Genaugenommen kannst du dir var auch als Unterprogramm vorstellen. Denn var ist ein Befehl deines Codes an den Javascript-Interpreter. Dieser führt dann ein Unterprogramm aus, das Speicherplatz für deine Variable anfordert. Diesem Speicherplatz gibt das Unterprogramm dann einen Namen.

var pappas_name = "Heiner Sextro";

Ich rufe dich bei dem Namen pappas_namen .

Doch das wichtigste Zeichen in dieser Anweisung ist mal wieder das kleinste Zeichen. Dieses Zeichen ist das Gleichheitszeichen. Es sagt uns, dass wir das rechte Etwas in das linke Etwas stecken wollen. Ich trenne die Anweisungszeile links und rechts vom = in zwei Bereiche. Links steht die Variable, in die wir etwas verwahren wollen. Rechts steht das, was in die Variable, in den Behälter, hinein kommt.

var pappas_name = "Heiner Sextro";

Die Benennung und die Zuweisung wird hier in einer Anweisungszeile erledigt.
Das Etwas, dass du dem anderen Etwas zuweisen willst, steht immer rechts vom Gleichheitszeichen.

Das ist der Text in Anführungszeichen: "Heiner Sextro".

Die Aunweisungszeile endet mit dem Semikolon.
Das Semikolon ist nicht Teil der zugewiesenen Daten.
Das Semikolon sagt einfach nur, daß hier die Anweisung endet.

Wichtig ist zu verstehen: Ich hätte auch erst den Namen des Etwas vergeben können und der so erzeugten Variablen dann etwas zuweisen können.

Du kannst während des Programmablaufes den Inhalt einer Variablen jederzeit ändern. Das ist deine Hauptmagie.

Ich benenne Variablen oft erstmal in einer Zeile, und weise ihnen erst später einen Wert zu.

var pappas_name;
pappas_name = "Heiner Sextro";

Das sind dann aber eigentlich zwei Zuweisungen, die hintereinander ablaufen. Denn auch die Anweisung var Pappas_name; weist schon der Variablen einen Wert zu. Der Wert hat den Wert undefined. Undefined heisst undefiniert. Merk dir einfach, undefiniert meint, daß das Etwas zwar da ist, aber noch nicht mit einem anderem Etwas belegt wurde.

Ich sage Etwas, weil man einer Variablen so ziemlich alles zuweisen kann. Zahlen, Texte, Bilder, Töne, Videos, Livestreams, das Internet, und auch wiederum andere Unterprogramme.

Wichtig. Das Schlüsselwort var habe ich nicht noch einmal benutzt in der zweiten Zeile. var ruft man nur einmal auf, dort wo man die Variable benennt. Zuweisungen an eine bereits erzeugte Variable brauchen das var nicht mehr. Das ist aber ein beliebter Anfängerfehler und deshalb weise ich darauf so ausdrücklich hin.

Bedingte Verzweigung

Hier wird es jetzt interessant.
Der Coder ermöglicht mit bedingten Verzweigungen den Ablauf eines Programms zu steuern.

Das Voodoozauberwort heisst Boolesche Algebra, und es sollte die meisten Abschrecken, hier noch weiter in das Programmieren einzutauchen. Dabei ist boolsche Algebra nun echt einfach.
Boolsche Algebra kennt immer nur zwei Werte.
Wahr oder Falsch.
true oder false,
ja oder nein,
0 oder 1,
oder auch Heiner oder Keiner

Die Finger einer Hand abzählen ist schon schwieriger.

Beispiele für Boolsche Algebra Ausdrücke

Der Knopf ist blau oder er hat eine andere Farbe.
Es ist Tag oder es ist Nacht
Es Regnet oder es regnet nicht.
die Zahl in meiner Variablen ist kleiner als sieben oder sie ist es nicht
Der Motor läuft oder der Motor läuft nicht.

Fünf Beispiele für boolsche Ausdrücke führe ich hier an, und nur ein Ausdruck hat was mit Zahlen zu tun.

Programmierer benutzen boolsche Ausdrücke um einen Weg zu verzweigen. Generell arbeitet dein Programm die Anweisungen Zeile für Zeile ab. Kommt das Programm in eine Zeile, in der eine bedingte Verzweigung steht, muß es sich entscheiden, welchen von zwei Wegen es weitergehen will. Das Programm arbeitet hier weiter, oder es arbeitet dort weiter. Links oder rechts, oben oder unten, vor oder zurück. Der Informatiker nennt die entscheidung eine Fallunterscheidung. Mein Programmcode entscheidet, ob etwas wahr oder falsch ist. Nichts anderes. Und nach dieser Entscheidung weiss mein Programmcode, ob er links weitermachen soll, oder ob er rechts weitermachen soll. Total simples Prinzip, mit großer Magie.

An dieser Stelle möchte ich noch anmerken, dass Boolsche Algebra der einzige Mathematikteil ist, den du zum Programmieren brauchst. Eins und eins wirst du ja wohl zusammen zählen können. Und wenn du einen webshop codest, kann dir ja ein Admin bei der Prozentrechnung im Mehrwertsteuermodul helfen. Die Mär von der vielen Mathematik beim Programmieren halten die Zunftler gern aufrecht. Sicherlich, ein Coder, der eine Drohnensteuerung programmiert, implementiert viel Mathematik und Physik. Programmieren ist ein Werkzeug, um Mathematik und Physik auszudrücken. Aber Programmieren ist nicht mathematisch. Um eine Textverarbeitung zu coden, musst du nur die Grundrechenarten beherrschen. Echt.

var pappas_name;
pappas_name = "Heiner Sextro";
var pappas_alter;
pappas_alter = 53;
if ( pappas_alter > 50 ) {
   pappas_name = "alter Sack";
   }
else {
   pappas_name = "junger Sack";
   }

Du wirst jetzt denken: "Sieht das kryptisch aus, ich verstehe nichts!". Denk dran, was ich dir beibringen will. Die kleinen Zeichen sind die Wichtigen. Da ist ein neues Zeichen hinzu gekommen, die geschweifte Klammer {. Genaugenommen sind es zwei mal zwei {}{}, also vier geschweifte Klammern. In Programmiersprachen mit sogenannter C-Synthax tauchen diese Zeichen überall auf, immer paarweise. {} . Und als Programmierer liebe ich sie, denn sie geben dem Code Struktur.

Das If-Else-Konstrukt
if ( Entscheidung ) {
If-Zweig
}
else {
Else-Zweig
}
Ist das Resultat der Entscheidung wahr, so werden alle Befehle im If-Zweig ausgeführt. Ist das Resultat der Entscheidung aber falsch, werden alle Befehle ausgeführt, die im Else-Zweig liegen.

var pappas_name;
pappas_name = "Heiner Sextro";
var pappas_alter;
pappas_alter = 53;
if ( pappas_alter > 50 ) {
pappas_name = "alter Sack";
}
else {
pappas_name = "junger Sack";
}

Die bedingte Verzweigung wird in der Zeile mit dem if entschieden. Sie steht innerhalb der runden Klammern.

( pappas_alter > 50 )

Ist das Resultat der Entscheidung wahr, dann macht das Programm im If-Zweig weiter und der Else-Zweig wird ausgelassen. Ergibt das Resultat des Boolschen Ausdrucks falsch , dann wird das Programm im Else-Zweig weitermachen und der If-Zweig wird nicht berücksichtig. Die beiden Bereiche werden durch jeweils zwei geschwungene Klammern eingegrenzt. Innerhalb der Bereiche können sich beliebig viele Anweisungen befinden. das können Schleifen sein, weitere Fallunterscheidungen, Zuweisungen an Variablen und auch Unterprogrammaufrufe.

Den Boolschen Ausdruck innerhalb der beiden runden Klammern betrachten wir nun für sich allein.

pappas_alter > 50

Dort steht der Name einer Variablen.
Dann steht dort eine spitze Klammer, die nach rechts zeigt.
Diese Klammer ist sehr wichtig.
Merke: Alles was im Programm sehr klein ist, ist auch sehr wichtig.
Dann steht da eine Zahl. Die Zahl steht einfach so da. Eine sogenannte Sodazahl. Sie bedeutet genau das, was da steht. Fünfzig. Coder sagen dazu hardcodiert, ein Wert, der direkt im Code steht und somit nicht in einer Variablen existiert.

Der Boolsche Audruck fragt hier:
Ist der Wert in der Variablen pappas_alter größer als 50.
Das ist, was die Spitze Klammer, die nach rechts zeigt eigentlich fragt.
Ist das was links steht kleiner als das was rechts steht.
Wenn ja, mach im If-Zweig weiter, sonst ( englische else) mach im Else-Zweig weiter. Wenn pappas_alter also zum Beispiel 66 ist, wird nur der If-Zweig ausgeführt und der Else-Zweig gar nicht mehr.

Was macht nun das Programm mit dem Ausdruck?
Zunächst schaut es die Variable an und ermittelt den Wert in ihr.
Der Wert ist 53.
Dann sieht es den boolschen Operator >.
Wir lesen ab jetzt "größer als" , wenn wir den boolschen Operator > sehen.
Also fragt sich das Programm: Ist 53 größer als 50?
Glaubt mir, solche Fragen kann eine Rechenmaschine sehr gut beantworten. Eigentlich sind Boolsche Ausdrücke das einzige, was eine Maschine beantworten kann. Sie wird bei diesem Ausdruck sagen, ja das stimmt.
Das ist das schöne am Programmieren. Die Maschine macht keine Fehler. Sie wird dir am Tage sagen, es ist Nacht. Das sagt sie aber nur, weil du vergessen hast, den Fall der Sonnenfinsternis in deinen Fallunterscheidungen zu berücksichtigen. Programmierer machen Fehler.

Schleifen

Wenn man Schleifen betrachtet muß man sich fragen, warum das Konzept der Schleife? Die Antwort lautet: Der Programmier benutzt schleifen, weil ein guter Programmier faul ist. Nun sagst du:"Krass". Ist auch krass. Ein guter Programmierer ist immer daran interessiert, daß der Code den er erzeugt ihm Arbeit abnimmt. Wo immer es auch geht, läßt der Programmierer die Maschine die Arbeit erledigen.

Beispiel Schleife

Nehmen wir mal an du codest an einem Webshop. Dein Chef fragt dich, ob du an der Kundenübersicht etwas könntest. Er möchte nicht das jeweilige Alter der Kunden sehen, sondern nur, ob sie über dreizig oder unter dreizig Jahre alt sind. Erstellt sich das so vor: unter 30 zwei sternchen und über dreizig 3 Sternchen. du kennst das Konzept von Schleifen noch nicht und du löst das Problem mit einer Fallunterscheidung.

var kunden_name;
kunden_name = holeNameAusDatenbank();
var kunden_alter;
kunden_alter = holeAlterAusDatenbank();
if ( kunden_alter > 30 ) {
kunden_name = "***" + kunden_name;
}
else {
kunden_name = "**" + kunden_name;
}

Es gibt hier zwei Variablen. kunden_name = holeNameAusDatenbank() ist ein Beispiel, wo man sieht, wie der Rückgabewert eines Unterprogramms einer Variablen zugewiesen wird. In den beiden Fall-Zweigen verkette ich drei Sternchen mithilfe des +-operators. Je nach Alter wird nun der kunden_name zu ***Heiner Sextro oder zu **Heiner Sextro.
Dem Chef gefällt das so erstmal. Nach Wochen fällt ihm ein, daß er auch gerne wissen möchte, wer über 40 Jahre alt ist. Du machst eine weitere Fallunterscheidung.

if ( kunden_alter > 40 ) {
kunden_name = "****" + kunden_name;
}
else {
if ( kunden_alter > 30 ) {
kunden_name = "***" + kunden_name;
}
else {
kunden_name = "**" + kunden_name;
}
}

Ich habe im ersten Fall das Alter auf 40 erhüht. Dann habe ich im Else-Zweig eine zweite Fallunterscheidung gemacht.

Man könnte jetzt einen weiteren Fall aufmachen für 50, 60, 70 etc. Man könnte das Problem aber auch mit einer Schleife viel eleganter lösen.

Ich erkläre das einmal an der sogenannten For-Schleife. Der Schleifenbereich wird auch hier mit geschweiften Klammern abgegrenzt. Wichtig zu verstehen ist das Konzept der Laufvariablen bei einer For-Schleife. Die Laufvariable steuert den Abruch bzw das Verlassen der Schleife. Oft wird diese Variable einfach nur i genannt. Erinner dich: Was klein ist, ist wichtig.

var i;
i = 0;

Das i benutze ich in der Schleifenbedingung. i wird nach jedem Schleifendurchlauf verändert. In diesem Fall wird immer eins addiert. Im Schleifenkopf steht auch die Abbruchbedingung.

var i;
i = 0;
var abbruch = kunden_alter / 10;
for ( i = 0; i < abbruch; i = i + 1; ) {
kunden_name = "*" + kunden_name;
}

Das sieht doch erheblich übersichtlicher aus. Ich habe noch eine Hilfsvariable erzeugt. Sie heisst abruch. Ihr wird das Alter geteilt durch zehn zugewiesen. Das /-Zeichen steht für Division.
Im Schleifenkopf, der Bereich innerhalb der runden Klammern, sind drei Bereiche. die drei Bereiche enden jeweils am Semikolon. Der erste Bereich i= 0; initialisiert die Laufvariable mit o. Der erste Bereich wird nur einmal ausgeführt. Bei jedem weitren Durchlauf ändert sich die Laufvariable. Wie sie sich ändert, das wird im dritten Bereich entschieden mit der Zuweisung i = i + 1; In diesem Fall wird immer 1 zu dem jeweiligen Wert addiert. Der mittlere Teil, i < abbruch; , ist ein Boolscher Ausdruck. Er entscheidet, ob die Schleife ein weiteres Mal durchlaufen wird. Das passiert nur, wenn der Boolsche Ausdruck wahr ergibt. Was macht der Code mit meinem Alter? Abbruch gleich 53 geteilt durch 10 - also 5,3. Die Schleife wird zum ersten Mal durchlaufen und i auf null gesetzt. Ist 0 kleiner als 5,3? Ja , die Schleife wird durchlaufen. Ein Sternchen wird vor den Kundennamen gesetzt. Am Ende der Schleife wird i um ein erhöht und ist nun 1. wieder die Frage oben im Schleifenkopf. Nun aber mit neuem Wert für i. Ist 1 kleiner als 5.3? Ja das ist es, eine weitere Runde. einzweites Mal ein Sternchen vor den Kundennamen setzen und i dann wieder um 1 erhöhen. i ist nun 2. Wieder die Frage im Boolschen Ausdruck stellen. Ist 2 kleiner als 5.3 ? ja ist es , nächste Runde. noch ein sternchen setzen. i um eins auf drei erhühen, nöchste Runde, ist drei kleiner als 5.3 ( Ich bereue gerade, son alter Sack zu sein) nächste Runde , ist vier kleiner 5.3, nächste Runde, ist fünf kleiner als 5.3? Ja ist wahr. Noch eine Runde. Ist 6 kleiner als 5.3? Nein ist nicht wahr. Die Schleife wird verlassen und das programm hinter der Schleife fortgeführt.

Kommentieren Sie hier


Community Request
mit Gast Account betreten
#kanzlerpartei