<aside> ➡️ Oft hört man den Begriff “programmieren”. Viele haben dann ein Bild von einer Person, welche ihr Gesicht verschleiert und rätselhafte Dinge in die Tastatur tippt. Dabei sind Programmierer eigentlich nur Übersetzer. So wie ein Dolmetscher etwas übersetzt, tun es Programmierer ebenso. Genau wie bei einer fremden Sprache auch, erscheinen anfangs die Wörter ebenfalls rätselhaft, bis man sie zu verstehen lernt. Erschreckt euch also zunächst nicht, sondern lernt es zu verstehen!

</aside>

Programmierer sind also Übersetzer, sprich: Dolmetscher. Was kann man aber darunter verstehen? Zuallererst müssen wir uns ein Prinzip anschauen, welchem wir jeden Tag begegnen. Es ist so selbstverständlich, dass wir es oft vergessen und nicht bewusst wahrnehmen. Die Rede ist vom Prinzip der Ein- und Ausgabe.

Ein genaues Fachwort gibt es nicht (zumindest ist mir keins bekannt). Das ist in diesem Kontext aber auch nicht relevant. Wichtig ist nur, es zu verstehen. Dabei kennen wir es wie gesagt ja schon. Ein sehr simples Beispiel wäre der Übersetzer. Man gibt beispielsweise “hallo” auf deutsch ein und lässt es sich übersetzen. In diesem Fall gehen wir mal davon aus, dass wir es in die Englische Sprache übersetzen lassen möchten. Unsere Ausgabe wäre dann wohl “hello”. Hallo (Eingabe; Deutsch) → Hello (Ausgabe; Englisch) Außerdem: Jedes mal, wenn wir “Hallo” eingeben, kommt “Hello” raus. Das ist wichtig. Man kennt es auch von Funktionen in Mathe. Eine Funktion in Mathe bezeichnet man als Algorithmus. Dazu kommen wir aber später.

Wie schon erwähnt kennen wir dieses Prinzip schon vom Alltag. Dabei könnten es die banalsten Dinge sein. Eine Eingabe kann simpel sein, wie unser vorheriges Beispiel. Gleichzeitig kann sie aber auch sehr komplex sein. Ein Wasserhahn zum Beispiel kann man auf Kalt oder Warm stellen. Auch kann man entscheiden wie viel Wasser herausströmen soll und wie viel kaltes und wie viel warmes Wasser darin steckt. Hier gibt es schon ziemlich viele Faktoren die eine Rolle bei der Ausgabe spielen. Wenn wir aber immer die selben Eingabe-Faktoren verwenden, sollte auch immer die entsprechende Ausgabe herauskommen.

<aside> 📎 Wenn du Lust habst, dann schreib doch mal einige Beispiele auf, in welchen das Ein- und Ausgabe Prinzip vorkommt. Dabei solltest du so genau wie möglich sein. Falls du die Lösung “kontrollieren” lassen möchten, schicke sie mir gerne zu!

</aside>

Was genau hat das aber mit Programmierern zutun? Nun ja, Programmierer arbeiten immer mit Ein- und Ausgaben. Übersetzer werden sie genannt, da sie dem Computer etwas »übersetzen«. Wenn man einem Menschen sagt, schalte das Licht aus, dann denkt die Person selbst über einen Weg nach, um das Licht auszuschalten. Einem Computer muss man jedoch ganz genaue Anweisungen geben, wie dieser das Licht auszuschalten hat. Dabei darf nichts ausgelassen werden. Wir müssen also unsere “Menschensprache” in “Computersprache” umwandeln. Ein Mensch hat also als Eingabe die “Menschensprache” und muss als Ausgabe die “Computersprache” erzeugen. Oft haben wir Menschen auch Probleme, genau das hinzukriegen. Auch gibt es manche Konzepte, welche wir dem Computer (noch) nicht beibringen können. Hierbei ist auch zu beachten, dass es mehrere Wege geben kann, um zu einer Ausgabe zu kommen. Also jede Ausgabe kann mit mehreren Eingaben erreicht werden. Jede Eingabe wiederrum kann nur eine Ausgabe bilden. Das kann man sich mit folgender Funktion erklären:

<aside> 💡 Die Funktion $f(x)=x²$ hat folgende Ausgabe, wenn man 2 als Funktionswert einsetzt: $f(2)=(2)²=4$. Wenn man jetzt aber -2 in diese Funktion einsetzt, dann kommt ebenfalls 4 raus $f(-2)=(-2)²=4$. Hier ist es also so, dass die Ausgabe 4 sowohl mit $x=2$ als auch mit $x=-2$ erreicht werden kann. Unsere Eingabe wiederrum führt immer nur zu einer Ausgabe.

</aside>

Was ist Informatik?

Bevor wir uns ansehen was das programmieren eigentlich ist, müssen wir uns erst einmal das Ober-Thema von diesem anschauen:

<aside> 📌 Die Informatik ist die Wissenschaft von Computersystemen. Sie erforscht, wie Computertechnologie zur Lösung von Problemen eingesetzt werden kann. Informatiker nutzen den Computer, da dieser große und komplexe Probleme in kürzester Zeit lösen kann. Man könnte also sagen: Informatiker sind gute Problemlöser.

</aside>

Die Informatik beschäftigt sich also mit Computern und Problemen. Doch welche Ansätze gibt es und welche Verfahren werden benutzt?

Ein Problem ist sehr allgemein. In vielen Fällen könnten wir aber Probleme als problematische/unvorteilhafte Ausgaben betrachten. Womöglich funktioniert etwas nicht so, wie es sein sollte. Ebenfalls könnte etwas eleganter gelöst werden. Zumindest sehen wir, dass in jedem Fall etwas unvollständiges gemeint ist. Dabei nutzen wir sogenannte »Algorithmen«, um diese Probleme zu beseitigen. Genauer gesagt, ist ein Algorithmus eine Abfolge von Schritten, welche der Computer (oder auch wir Menschen) abarbeiten. Ein Algorithmus kann man sich wie ein Kochrezept vorstellen. Wenn man das Kochrezept befolgt, kommt immer das gleiche Gericht raus. So auch in einem Algorithmus. Wenn wir immer die gleiche Eingabe “rein tun”, dann liefert unser Algorithmus (⇒unser Programm/unsere Anwendung) auch immer die selbe Ausgabe. Auch hier sehen wir das Prinzip der Ein- und Ausgabe.

<aside> 📌 Algorithmus: Ein Algorithmus ist eine Abfolge von Schritten, welche man befolgen muss, damit ein Problem gelöst werden kann. Wenn man einem Algorithmus immer die selbe Eingabe gibt, dann erhält man auch immer die selbe Ausgabe.

</aside>

Viele Programmierer gehen beim lösen eines Problems folgendermaßen vor: Zuallerst macht man sich bewusst was für ein Problem es eigentlich ist. Kann man einen einheitlichen und eindeutigen Weg zu diesem Problem bauen? Lohnt es sich überhaupt den Computer zum lösen dieses Problems zu beanspruchen? Was brauche ich alles, um das Problem zu lösen? Danach schreibt man eine Liste von Schritten auf. Später übersetzt man dem Computer diese Schritte. Diesen Prozess nennt man »Code schreiben« (umgangssprachlich auch “coden” genannt). Dabei muss man dies nicht auf Papier machen. Nach einer gewissen Zeit entwickelt man eine einigermaßen stabile Intuition für das Ganze. So kann man das Problem (fast) vollständig in seinem Kopf lösen und muss nur noch seine Gedanken - per Code - dokumentieren und umsetzen.

<aside> 📎 Such doch ein paar Probleme aus deinem Alltag heraus und schreibe einen Algorithmus für das lösen von diesem. Wenn du ein wenig erfahrener bist, dann kannst du sogar Pseudo-Code schreiben. Zu diesem kommen wir allerdings ein andernmal. Auch werden wir im weiteren Verlauf dieser Reihe gewisse Probleme “zusammen” lösen.

</aside>

Was genau ist »programmieren« also?

<aside> 🔄 Programmierer sind Dolmetscher welche die »Menschensprache« in »Computersprache« umwandeln. Diesen Vorgang bezeichnet man als “programmieren” (⇒”coden”). Hierbei gibt es ein wichtiges Prinzip: Die Ein- und Ausgabe. Etwas wird eingegeben und etwas zugehöriges, mit der Eingabe einbezogenes Ergebnis, wird ausgegeben (unsere Ausgabe). Die Ausgabe wird (meistens) durch ein Algorithmus und der Eingabe erzeugt. Ein Algorithmus ist eine Abfolge von Schritten, die der Computer (oder auch wir Menschen) befolgen. Das programmieren bezeichnet also den Vorgang, bei welchem man Anweisungen von »Menschensprache« in die »Computersprache« übersetzt. Dies tut man meistens um Probleme zu lösen. Deswegen sind Programmierer bzw. Informatiker meist auch gute Problemlöser.

</aside>