Warum Programmieren lernen?

von

Vorwort

Programmieren wird immer so als ein Nerd-Ding verstanden. Picklige Nerds, die in dunklen Kellern hausen und deren einziger sozialer Kontakt der Pizza-Mann ist, der öfter vorbei kommt.

Der dann aber mit zwei Zeilen Code den Tag rettet, die Aliens besiegt und das Mädchen kriegt.

Nun, das entspricht zwar nicht der Wahrheit. In Wahrheit sind Programmierer zwar meist introvertiert, aber auch lebenstüchtig und kreativ.

Programmieren wird oft als Kunst bezeichnet, und oft ist es das auch. Kreative Problemlösung unter Zuhilfenahme von logischen Algorithmen.

Das ist es was Programmieren für mich ausmacht.

Heute gibt es viel mehr — und viel bessere — Programmierumgebungen als damals mit dem C=64. Doch auf dem 64’er musste man Programmieren. Selbst wenn man „nur“ ein Programm von einer Diskette laden wollte, musste man zuerst einen Basic-Befehl angeben. Das änderte sich mit GEOS 64, einer grafischen Benutzeroberfläche.

Hier soll es im Folgenden nicht nur um die Frage gehen, warum man programmieren lernen soll, sondern auch wie man es anfängt.

Wer soll programmieren lernen?

Nun, im Gegensatz zu den Medien, die behaupten, jeder müsse unbedingt programmieren lernen, bin ich der Ansicht, das nur jemand der sich für die Technik interessiert auch programmieren sollte. Die wenigsten Autofahrer sind auch KFZ-Mechaniker. Es wird ja oft behauptet, dass Programmieren das logische Denken schult. Dabei ist es genau umgekehrt: Um Programmieren zu lernen muss man logisch denken können.

Ohne das geht es nicht. Dann muss man verstehen, dass selbst bei einer „künstlichen Intelligenz“ der Computer dumm ist. Ein Computer bewertet nicht. Wenn ich ein Programm schreibe, das Additionen durchführt, aber bei der Addition von 2 + 2 sage, das der Computer 5 ausgeben soll, dann macht er das.

Das ist aber schon das Wesentliche. Der Computer macht was man will (wenn man richtig programmiert). Und das in der Regel nach einem streng logischen Regelwerk, dem Algorithmus.

Daher sollten erst einmal, nur Leute programmieren lernen, die sich dafür interessieren und logisch denken können. Mit „Gefühlen“ kommt man nicht weit.

Welche Programmiersprache soll man lernen?

Das schöne ist: Viele Programmiersprachen haben dieselben Sprachkonstrukte. If-Then Abfragen, Schleifen gehören zu den wiederkehrenden Elementen. Und darauf kommt dann ein wenig syntaktischer Zucker, fertig ist die Programmiersprache. Natürlich sieht das bei jeder Sprache anders aus, aber im wesentlichen kann man festhalten, das viele Sprachen sich ähneln.

Was sich aber häufig unterscheidet sind die Möglichkeiten der Sprache, die sich in erster Linie aus dem API ergeben. Ein API ist eine Sammlung von Funktionen oder Klassen (bei objektorientierten Sprachen), mit der man auf Systemfunktionen zugreifen kann. Ein Beispiel ist ein Fenster in Windows, Linux oder macOS mit seinen typischen Knöpfen, seinem Rahmen und seiner Titelleiste. Oder die reine Textausgabe auf dem Schirm. All dies wird meist von der API bereitgestellt.

Und da unterscheiden sich die meisten Sprachen. Vor allem in der Komplexität der API. Während man unter der Sprache „C“ eine halbe Seite Code schreiben musste, um allein ein Fenster unter Windows zu erzeugen, reichen bei anderen Sprachen eine Funktion. Object Pascal oder C# bringen so eine große API mit, bei der es ausreicht, einfach ein Fenster mit einem Editor auf den Bildschirm zu zeichnen.

Bei der Wahl einer Programmiersprache ist es auch wichtig zu erkennen, wie einfach die Sprachkonstrukte genutzt werden können. Im Folgenden eine — sicherlich nicht ganz vollständige — Liste:

  • BASIC (Visual Basic): Über lange Jahre war dies die erste Sprache, mit der man in Berührung kam. Inzwischen gibt es BASIC in der Form von Visual Basic noch, spielt aber eine eher untergeordnete Rolle. Ich empfehle, diese Sprache nicht mehr als erste Sprache zu lernen, da Sie kaum noch Chancen auf ein Berufsleben damit haben. Im Visual Studio unter Windows ist die Sprache aber noch enthalten.
  • C und C++: Die Sprache von Unix. Und genauso sperrig. Sie können in diesen Sprachen zwar vieles machen, was in anderen Sprachen nicht möglich ist und dank Zeigern direkt auf den Speicher zugreifen. Am Ende können Sie aber mehr kaputtmachen als es bringt. Daher sollten Sie mit diesen Sprachen warten, bis Sie zumindest den Einstieg ins Programmierleben gefunden haben.
  • Pascal: In den 70er und 80er Jahren war diese Sprache DIE Lehrsprache an Schulen und Universitäten. Seit es Delphi gibt, gibt es eine Menge Software, die damit geschrieben wurde und sogar noch wird. Dabei ist die Sprache zwar einfach, verlangt aber in erster Linie Struktur. Daher ist Pascal für mich auch heute noch die erste Wahl, wenn Sie anfangen wollen, Programmieren zu lernen. Mit Delphi in der Community Edition oder besser noch Lazarus und Freepascal finden Sie einen kostenlosen Einstieg.
  • Java: Von der Syntax her ähnelt Java C. Java wurde häufig in der Industrie eingesetzt und spielt immer noch eine größere Rolle. Der Vorteil ist, dass ein Javaprogramm auf jedem Rechner eingesetzt werden kann. Leider hat Oracle, der derzeitige Lizenzinhaber, die Möglichkeiten einer freien Nutzung sehr stark beschränkt, daher wird diese Sprache in den nächsten Jahren an Bedeutung verlieren. Natürlich eignet sie sich dazu, Programmieren zu lernen.
  • C#: Diese Sprache kann ihre Herkunft nicht verleugnen. Ist aber in vielen Dingen einfacher zu bedienen. Beispielsweise gibt es eine String-Klasse und keine Zeiger. Das schließt Fehler aus und macht den Einstieg leichter. Spiele lassen sich mit der Unity-Engine programmieren sowie der Engine Godot, die auch in C# programmiert werden kann. Leider kann man das volle Potential nur unter Windows ausnutzen. Da es eine kostenlose Community Edition von Visual Studio gibt, kann man sehr gut das Programmieren lernen. Meine Empfehlung, wenn Sie vor allem unter Windows unterwegs sind.
  • Swift: Ähnlich wie C# von der Syntax. Allerdings nur auf dem Mac mit der kostenlosen Xcode Umgebung. Cocoa ist als API etwas komplizierter zu nutzen, aber es lohnt sich vor allem, wenn Sie neben Mac auch iOS Programme erstellen wollen. Da ist es dann erste Wahl.
  • Python: Als letzten Kandidaten werfe ich Python in den Ring. Die Syntax ist vergleichsweise einfach, erfordert aber eine strengere Einrückung. Es gibt eine große Auswahl an APIs und Zusätzen. Nachteil ist hier, das es sich um eine Skriptsprache, die interpretiert wird, wie die alten Basicvarianten und daher langsam ist. Vorteil ist, das es auf allen Desktop-Plattformen läuft und für fast alle Anwendungszwecke ein Paket mitbringt. Als Einsteigersprache sehr gut geeignet, nur wird man ein wenig schludriger, wenn man auf andere Sprachen wechselt, da man zum Beispiel eine Variable nicht typisieren muss.
  • Kotlin, Julia, Go, etc: In den letzten Jahren kamen einige Sprachen auf den Markt, die teilweise für bestimmte Anwendungszwecke bestimmt waren. Ich würde derzeit nur wenige als Einsteigersprache empfehlen. Die Syntax ist meist der Sprache „C“ entlehnt, daher einfach zu erlernen, wenn Sie schon C oder eine andere Sprache in diesem Umfeld kennen.
  • ABAP: Gut, wenn Sie nicht gerade ein SAP-System im Hinterhof haben, können Sie mit dieser Sprache nichts anfangen. Ich habe diese Sprache eigentlich nur eingefügt, weil ich beruflich damit viel zu tun habe. Wenn Sie aber mit Pascal sich auskennen, sind einige der Elemente vertraut. Zum Beispiel deklariert man in ABAP alle Variablen am Anfang des Quellendes. Und jede Zeile wird mit einem Punkt abgeschlossen. Richtig lernen werden Sie diese Sprache entweder im Studium, wo SAP einige Kurse anbietet oder bei einem Dienstleister.

Fazit: Als richtige Einsteigersprachen sehe ich C#, Pascal und Python. C# in erster Linie für Windows, Pascal und Python auf Windows, Mac und Linux.

Welchen Computer brauche ich?

Haben Sie bereits einen Rechner? Egal ob Windows, Mac oder Linux-PC? Dann können Sie sofort loslegen.

Die meisten Rechner sind heute ausreichend schnell um die ersten Schritte in die faszinierende Welt des Programmierens zu machen. Auch gibt es die meisten Entwicklungsumgebungen kostenlos zum Download.

Für Pascal: Lazarus, CodeTyphon (englisch)

Für C#: Microsoft Visual Studio

Für Python: Python.org

Ich wünsche Ihnen viel Spaß und stehe Ihnen gerne zur Verfügung.