Grundwerkzeuge der Programmiersprachen

Vielleicht hast du schon mal von diesen Grundelementen gehört, die in jeder Programmiersprache fest verankert sind. Ohne diese Elemente wird es schwierig für dich zu programmieren, denn die nächste Ebene darunter ist bereits Maschinensprache. Selbst wenn du mit Maschinensprache programmierst musst du mit diesen Grundwerkzeugen arbeiten damit du die grundsätzliche Logik deines Programms festlegen kannst. Logik ist auch hier das richtige Stichwort, diese Grundlemente sind, wenn man diese verstanden hat, einfach zu merken und anzuwenden. In diesem Artikel möchte ich dir kurz erklären was diese Grundelemente machen und wie diese funktionieren. Dazu gibt es ein Beispiel mit der Programmiersprache Scratch damit du es besser verstehst. Wenn man es mit einer „einfachen“ grafischen Sprache erstmal verstanden hat, ist der Wechsel zu einer textbasierten Sprache wie Javascript relativ einfach. Hier ein kleiner Ausschnitt wie die Programmierumgebung von Scratch aussieht:

Programmieroberfläche von Scratch

Befehle

Ein Befehl ist eine Anweisung an den Computer, der Computer bzw. die Bibliothek, die du verwendest weiß wie man diesen Befehl abarbeitet. Schreib man mehrere Befehle untereinander weg, erhält man die sogenannte Befehlsfolge. Das bedeutet eigentlich nur, dass Befehle von oben nach unten nacheinander abgearbeitet werden. Wenn man viele Befehle immer wieder benutzen muss kann man sich neue Befehle schreiben, die aus den Befehlen bestehen.  An der Stelle sollte ich dir ein kleines Bild zeigen, dass es etwas besser erklärt. Du hast einen kleinen Roboter, den du per Programm steuerst. Das ganz sieht folgendermaßen aus:

Einzelbefehle und Befehlsfolge

Dort siehst du die 4 Befehle, die diesen kleinen Roboter steuern.

  • Warte 1 Sekunde: Das Programm wird eine Sekunde warten. Der Roboter bewegt sich nicht.
  • Drehe dich (im Uhrzeigersinn) um 90 Grad: Der Roboter dreht sich um 90 Grad (immer rechts)
  • Drehe dich (gegen den Uhrzeigersinn) um 90 Grad: Der Roboter dreht sich um 90 Grad (immer links)
  • Gehe 50er Schritt: Der Roboter „bewegt“ sich in Blickrichtung um 50 Grad

Dein Computer weiß durch das Programm, wie diese Befehle abzuarbeiten sind. Mit der Programmiersprache (hier Scratch) kannst du diese Befehle kombinieren und nacheinander abarbeiten lassen. Schaue dir folgendes Bild an. Du siehst einmal die Einzelbefehle und dazu dann die Befehle, wie sie nacheinander abgearbeitet werden sollen. Stell dir mal vor wie sich der Roboter bewegen würde, indem du die Befehle Schritt für Schritt durchgehst. Siehe folgendes Bild:

Das schöne ist, dass du mehrere Befehle zusammenfassen kannst zu neuen Befehlen und dann nur noch diese neuen Befehle ausführen musst. Lass uns mal einen neuen Befehl – geheRechts bauen, in Scratch sieht das so aus:

Neuer Befehl geheRechts

Wir würden einen neuen Befehl schreiben und diesen zum Beispiel 4 Mal aufrufen. Damit würde sich der Roboter 4 Mal im Kreis drehen. Falls du das nachher mal ausprobieren willst, den Link für das Scratchprojekt erhälst du nachher nochmal. Das ist auch schon alles was man zu Befehlen erstmal wissen muss. Bei Programmiersprachen wie Javascript kommen noch ein paar Details dazu, die man beachten muss, aber das ist dann nur noch Fleißarbeit. Wichtig ist zu verstehen wie Befehle abgearbeitet werden.

Operatoren

Ein Operator  ist Teil einer Operation, wenn ich von Operationen spreche, spreche ich von Rechenoperationen oder logischen Operationen. Das bedeutet im Klartext, dass Programme in der Lage sind Rechenaufgaben zu lösen, Größer als/Kleiner als Vergleiche durchzuführen und Verknüpfungen wie UND/ODER Operationen auszuwerten. Wofür braucht man das? Lass uns mal ein Beispiel durchgehen. Du hast ja gesehen, dass es den Befehl gibt um 50 Pixel zu gehen, welche für den Roboter dann ein Schritt wären. Möchte man hier nun mehrere Schritte gehen, müsste man den Befehl öfter aufrufen. Oder man rechnet 5*50 Und gibt diesen Wert in den Befehl ein. Und so bewegt sich der Roboter gleich um mehrere Schritte, in dem man den Wert einfach multipliziert.

Operationen und Operatoren

Es gibt viele andere Operatoren, im Bild werden dir ein paar der wichtigsten gezeigt. Diese Operationen funktionieren alle nach dem gleichen Schema.

Variablen

Stell dir vor dein Roboter müsste nach ein paar gefahrenen Schritten, alleine wieder an den Ursprungspunkt zurückkehren. Da ist ein bisschen schwierig, wenn er sich nicht merken kann, welche Schritte er bereits gefahren ist. Oder der Roboter müsste 3 Bälle aufsammeln und diese dann in ein Lager bringen. Irgendwie muss er sich bestimmte Informationen merken können. Dafür gibt es Variablen. Sobald man eine Variable definiert (also „erfindet“), kann man da Werte drin speichern und auslesen. Das ist wie, wenn man sich ein Notizblock nimmt und sich dort Informationen notiert und diese später liest. Schau dir das Bild an, dann sollte es klarer werden.

Variablen

Eingabe und Ausgabe

Hiermit ist alles gemeint wie du (also der Mensch/Computerbenutzer) mit dem Computerprogramm interagiert. Eingaben sind alles was an Daten in den Computer hineingehen, z.B. Tastatureingaben, Mausbewegung, Joystickknopf drücken. Mit der Ausgabe sieht es genau andersrum aus, hier geht es darum welche Informationen du vom Computer erhältst. Hiermit sind gemeint Bildschirmausgaben, Daten in Form von Dateien oder sogar Druckausgaben.
Jede Programmiersprache behandelt die Eingaben und Ausgaben etwas anders, aber im Prinzip gibt es in jeder Programmiersprache diese Eingaben und Ausgaben zu behandeln. Letztendlich bestimmt der Programmierer, was mit den Eingaben passieren soll und wie die Ausgabe auszusehen hat.

Tastatureingabe

Entscheidungen

Bei der Tastatureingabe gibt es bereits eine programmbasierte Entscheidung nach dem WENN …. DANN-Muster. Also Wenn etwas passiert ist, dann tue etwas. Im Fall der Tastatureingabe war das WENN Taste Leertaste gedrückt DANN gehe 50er-Schritt.

Entscheidung
Diese Entscheidungen können allerdings noch erweitert werden. Zum Beispiel kann man Zahlenvergleiche eingeben oder andere Dinge überprüfen. Man gibt also eine Bedingung ein und wenn diese erfüllt, also WAHR ist, dann sollen bestimmte Befehle ausgeführt werden. Hier können fast alle Operatoren verwendet werden, die einen WAHR oder FALSCH – Wert zurückliefern, z.B. bei Vergleichen.

Schleifen

Stell dir vor, du hast einen Befehl geschrieben in dem dein Roboter nach Bällen suchen soll. Du möchtest, dass dein Roboter SOLANGE nach Bällen sucht bis er mehr als 3 gefunden hat. Er muss also den Befehl sucheBälle wiederholen. Mit einer Schleife kann man dies erreichen und diese ist auch nicht so schwierig zu verstehen, denn sie ist ähnlich zu Entscheidung.

Schleifen bzw. Wiederholungen

Es funktioniert in etwa so: WIEDERHOLE sucheBälle SOLANGE BIS gesammelteBälle > 3. Von diesen Schleifen gibt es verschiedene Arten, diese unterscheiden sich eigentlich nur in der Art wann die Bedingung ausgewertet wird. Wichtig ist hier jedoch, dass man versteht, dass die Befehle innerhalb der Schleife wiederholt werden solange eine Bedingung erfüllt ist.

Fazit

Das war eine kurze Beschreibung der wichtigsten Grundelemente einer modernen Programmiersprache. Es gibt noch ein paar Elemente mehr, die dir Arbeit abnehmen oder dich mit der Arbeit unterstützen, aber die Grundwerkzeuge hast du nun schon mal kennengelernt. Nur durch das Kennen dieser Elemente wirst du noch lange nicht programmieren können, dafür musst du definitiv erstmal damit arbeiten. Sie finden sich in jeder Programmiersprache wieder und wenn du die Funktionsweise erstmal verstanden hast, kannst du richtig schnell auf andere Programmiersprachen wechseln. Die Grundelemente sind für sich erstmal einfach zu verstehen. Der Knackpunkt bei diesen Grundelementen ist, wie man diese kombinieren muss. Je nachdem welche Aufgaben oder welches Feature man lösen/programmieren will muss man diese Elemente miteinander verwenden. Die nächste Schwierigkeit ist dann wie man mit dessen Hilfe nun tatsächlich seine Programmidee umsetzt. Dies würde allerdings den Rahmen dieses Artikels sprengen.  Wie versprochen findest du hier noch den Link zum Scratch Projekt, am besten probierst du dort ein bisschen rum. Die Sprache Scratch ist zwar hauptsächlich für Kinder gemacht worden, aber auch als Erwachsener hilft diese Programmiersprache ein paar Grundlagen zu erlernen.

10 Puzzleteile zum Programmieren lernen

Es geht ja nicht nur um das, wie man anfängt, die Frage beim Programmieren Lernen ist ja hauptsächlich auch: „Was muss ich alles lernen damit ich sagen kann, ich kann jetzt programmieren?“ Ich möchte hier eine Übersicht geben welche Themen man beherrschen muss um sich „Programmierer“ nennen zu können. Hier fallen bereits ein paar Grundbegriffe (die ich in „8 Begriffe die du“ erklärt habe), aber die sind für Anfänger auch zu verstehen.

Das Programmiererpuzzle

Hier ein kleines Schaubild, welche Themen bzw. Puzzleteile wichtig sind.

Puzzle

Ganz wichtig, ich konzentriere mich hier auf Hochsprachen aus der 3. Generation. Was das genau bedeutet kannst du in diesem Artikel lesen: Warum die Sprache egal ist.

Entwicklungsumgebung

IDE

Screenshot einer IDE (Eclipse)

Du brauchst ein Programm in dem du deinen Quellcode eintippen kannst und aus dem dein fertige Applikation erstellt wird. Dieses Programm ist dein Hauptarbeitsplatz beim Programmieren. Es wird Entwicklungsumgebung oder auf englisch Integrated Development Environment (kurz IDE) genannt. Die IDE beinhaltet alle Werkzeuge um dein Programm fertigzustellen. Kleine Übersicht über die typischen Werkzeuge:
  • Texteditor: In diesem kannst du deinen Quellcode bearbeiten und anzeigen. Je nach Programmiersprache werden Elemente besonders hervorgehoben, damit du den Code leichter lesen kannst.
  • Compiler/Interpreter: Dein Quelltext muss in die Maschinensprache übersetzt werden. Dies kann auf verschiedene Art und Weise geschehen. Wichtig ist hierbei, dass der Compiler/Interpreter dich hinweist wenn du Fehler in deinem Quelltext hast. Er ist dann nicht in der Lage den Code zu übersetzen. Dies ist nicht schlimm, die Fehler werden dir im Texteditor angezeigt damit du diese beheben kannst.
  • Debugger: Dieses hilfreiche Werkzeug brauchst du dann, wenn dein Programm abstürzt oder nicht das macht was es machen sollte. Du kannst dein Programm also an bestimmten Stellen anhalten und in Ruhe alles überprüfen was falsch sein könnte. So löst du Schritt für Schritt jedes Problem in deinem Quellcode.

Grundelemente einer Hochsprache

Ob du Apps programmierst, Spiele entwickelst oder professionelle Büroanwendungen erstellst. Diese Grundelemente gelten für ALLE Hochsprachen. Ich erkläre diese detailliert in meinem Kurs. Hat man diese Grundelemente vollständig gelernt, steht der Programmiererkarriere nichts mehr im Wege. Hier eine kleine Übersicht, wie diese Elemente funktionieren lernst du dann in meinem kostenlosen Tutorial.
  • Folgestruktur: Jede Programmiersprache arbeitet eine Abfolge an Befehlen ab, hast du einmal gelernt in Abfolgen und Anweisungslisten zu denken bist du bereit für den nächsten Schritt.
  • Befehle und Operationen: Nun kann man nicht einfach irgendwelche Befehle in eine Folgestruktur packen, jeder Befehl muss bekannt sein. So  kommt man auch zu den Operationen. Hast du gelernt wie man die 4 Grundrechenarten in einem Programm benutzt hast du schon mal jemanden der dir immer Rechenaufgaben für dich löst.
  • Benutzereingabe und -ausgabe: Programme müssen Befehle vom Computernutzen entgegennehmen können. Außerdem müssen sie auch am Bildschirm Informationen ausgeben können. Somit ist es wichtig zu lernen, was man im Quelltext eingeben muss, damit dies möglich ist.
  • Start und Ende: Wo fängt ein Programm an und wo ist es zuende? Damit man die Orientierung beibehält, sollte man immer wissen wo das Programm startet und auch wo es zuende ist.
  • Vergleiche: Du kennst es aus der Grundschule: 6 ist größer als 2. 5 ist kleiner als 10. 3 ist gleich 3. Beim Programmieren ist es sehr wichtig diese Vergleiche benutzen zu können, aber das ist sehr leicht zu erlernen.
  • Variablen: Es wird Punkte in deinen Programmen geben, wo du dir bestimmte Sachen abspeichern musst. Dafür benutzt man Variablen. Sie speichern Daten und Werte im Arbeitsspeicher deines Computers. Damit dein Programm nicht alles vergisst!
  • Arrays: Das sind Variablen aber in Listen und Tabellenform. Ein Array kann also mehrere Variablen speichern. Hört sich doch einfach an!
  • Zeiger/Pointer: Eine Variable muss wiedergefunden werden. Also bekommt sie im Arbeitsspeicher eine eindeutige Nummer. Diese Nummer nennt man Zeiger.
  • Entscheidungen: Ab hier wird es richtig spannend, du bringst deinem Programm bei eigene Entscheidungen zu treffen. Du stellst die Bedingungen und dein Programm entscheidet.
  • Schleifen: Hier werden keine Messer geschliffen, es geht hier um Befehle die sich wiederholen. Damit du deinem Programm nicht alles 1.000 Mal programmieren musst, benutzt du Schleifen.
  • Funktionen: Es gibt Codeabschnitte die du immer wieder verwenden kannst, das hilft dir Ordnung in deinem Programm zu halten.
  • Strukturen: Strukturen braucht man um bestimmte Datengebilde im Quelltext abzubilden. Ein Rechteck hat zum Beispiel zwei Seiten und demnach immer zwei Werte die gespeichert werden müssen. Dafür benutzt man Strukturen.
  • Klasse: Dies ist eine Weiterentwicklung zur Struktur aber noch viel mächtiger! Hier programmierst du nicht nur welche Seiten dein Rechteck hat sondern kannst auch programmieren wie es zu zeichnen ist!
Mit diesen Grundelementen kannst du bereits Programmieraufgaben lösen. Es ist nicht nur wichtig diese Elemente zu kennen, du musst vor allem wissen, wann du welches Element benötigst! Wenn du gut bist, lernst du diese Themen innerhalb eines Tages! Bist du etwas langsamer, hast du das in ca. 5-10 Tagen gelernt!

Programmiersprache

Java_func_while

Java: Funktion, Klassen, Variablen und Schleife in Aktion

Die Grundelemente machen natürlich nur Sinn in einer Programmiersprache. Die Sprache ist eine Festlegung zwischen dir und deinem Computer. Die Sprache legt fest wie du die Grundelemente im Quelltext aufschreiben musst, damit der Computer diese versteht!
Somit sehen die oben genannten Grundelemente in jeder Programmiersprache etwas anders aus und auch aus diesem Grund sagt man: „Hast du eine Programmiersprache gelernt, kannst du alle!“, da sich diese Elemente in den Sprachen immer wiederholen!
Sinnvoll ist es die Grundelemente natürlich direkt in einer Programmiersprache zu lernen. Welche Programmiersprache du zum Lernen wählst ist egal, denn welche Sprache du später benutzt, hängt vom Einsatzzweck ab. Hier ist eine kleine Übersicht für dich: Mit welcher Sprache fange ich an?.

 

Grundprinzipien

Jeder Programmierer denkt anders und somit programmiert jeder anders. Damit andere Programmierer deine Programme verstehen können ist es ratsam sich an ein paar Prinzipien zu halten. Außerdem bleibt dein Quellcode somit wartbar. Stell dir vor du müsstest den Code in 5 Jahren nochmal bearbeiten, dafür gibt es diese Prinzipien. Hier eine kleine Auswahl:
  • EVA: „Eingabe“, „Verarbeitung“ und „Ausgabe“ – Hier geht es darum zu erst alles an Werten zu sammeln die bereits vorhanden sind. Erst dann werden diese verarbeitet. Das Ergebnis wird erst zum Schluss ausgerechnet und ausgegeben.
  • DRY: „Don’t Repeat Yourself!“ oder auf deutsch „Wiederhole dich nicht!“ – Hier geht es um doppelten Quellcode. Kein Programmierer kann es abstreiten, jeder wird einmal einen Code kopieren und irgendwo anders einfügen. Problem dabei: Versteckt sich in diesem Code ein Fehler  hat man diesen Fehler verdoppelt.
  • KISS: „Keep it simple stupid“ oder auf deutsch „Mach es einfach du Dummerchen!“ – Anstatt Probleme möglichst kompliziert zu lösen solltest du dich darauf konzentrieren deinen Quelltext einfach zu gestalten. In 5 Jahren wirst du dir dafür danken.
  • MVC: Model View Controller – Dieses Prinzip ist schon für sehr fortgeschrittene Programmierer. Es geht hier darum die Anzeige von Daten sowie die Daten selbst und die Verarbeitung der Daten immer in separaten Komponenten zu halten. Dies hat den Vorteil, dass sich diese einzelnen Komponenten ohne Probleme verändern lassen. Bei diesem Prinzip ist man bereit ganz schnell in der Welt der Objektorientierten Programmierung.

Objektorientiertes Programmieren (OOP)

Mit den Grundelementen kannst du bereits kleine Programme schreiben, die großen Programme und Spiele sowie Apps programmiert man objektorientiert. Dennoch MUSST du die Grundelemente drauf haben, denn darauf baut die Objektorientierung auf. In den Grundelementen taucht bereits der Begriff Klasse auf. In der OOP dreht sich alles um diese Klassen. Klassen haben Methoden, Klassen können vererben. Klassen können ihre Elemente kapseln. Sobald du anfängst grafische Oberflächen (GUIs) zu programmieren benutzt du etliche Klassen und schreibst auch selber welche.

Grafische Programmierung (GUIs)

MessageBox_OK

Ein Dialogfenster mit OK-Knopf ist auch schon eine GUI

Wenn du das hier gerade liest, sitzt du gerade am Handy oder am Computer (wenn du es ausgedruckt hast, hast du ihn vorhin benutzt). Somit hast du bereits grafische Oberflächen benutzt. Fenster, Textfelder, Buttons, Listen und Auswahlboxen. Das sind alle Steuerelemente mit denen du den Computer bedienst. Alles über Maus, Tastatur und sogar über Touchbildschirme. Lernst du Programmieren, kommst du nicht drumherum deinem Nutzer eine Oberfläche zu bieten mit der er interagieren kann. Du solltest also lernen wie du in deiner gewählten Programmiersprache und Bibliothek grafische Oberflächen programmierst.

Daten und Datenbanken

Dasselbe wie für GUIs gilt für die Daten. Ob du ein Spiel programmierst oder du eine Onlineshop entwickelst. Die Daten deiner Nutzer müssen irgendwie gespeichert und geladen werden. In der Spieleentwicklung musst du also Spielstände und Einstellungen speichern und laden können. Der Onlineshop sollte die bestellten Artikel speichern und laden können, damit die Bestellung ausgeführt werden kann. Diese Daten können in Dateien oder in Datenbanken gespeichert werden. Welche Methode man wählt ist die Frage des Einsatzzwecks. Allerdings solltest du dies beherrschen können, sonst müssen deine Spieler immer wieder von vorne anfangen und deine Bestellungen erreichen dich nie.

Bibliotheken oder APIs

Das Rad ist bereits erfunden, du musst es nicht nochmal erfinden. Genauso ist es beim Programmieren, die meisten Funktionen die du benötigst wurden bereits von anderen Programmierern entwickelt. In den Grundelementen wirst du bereits mit Bibliotheken gearbeitet haben. Sei es nur die einfache Benutzereingabe und -ausgabe oder professionelle Benutzeroberflächen. Stell dir mal vor du müsstest jedes mal den OK-Knopf selber programmieren. Solche Funktionen sind bereits entwickelt worden. Wichtig ist für dich, dass du lernst diese Bibliotheken benutzen zu können! Wie schreibt man eine Datei auf die Festplatte? Wie liest man eine Datei von der Festplatte? Solche Funktionen sind bereits fertig. Du musst nur wissen wie du diese in deinem Programm ausführen kannst. Wenn du z.B. Apps für Android schreibst benutzt du das Android SDK. Bist du mit C# unterwegs benutzt du das .NET-Framework. Für die Spielentwicklung gibt es nochmal andere Bibliotheken. Manche sind kostenlos für andere sind Lizenzgebühren fällig. Benutzt du mein Roboterprogramm verwendest du bereits eine Bibliothek!

Entwurfsmuster

Hier kommst du in den professionellen Bereich der Softwareentwicklung. Arbeitest du mit Entwurfsmustern (auf Englisch Design Pattern) versteht dich jeder Software Entwickler. Entwurfsmuster zu lernen und richtig anzuwenden ist die Profiliga der Programmierer. In der Spieleprogrammierung wirst du nicht drumherum kommen bis zu diesem Schritt zu arbeiten. Arbeitest du bei großen Softwareprojekten mit wird auch dort oft von Entwurfsmustern gesprochen. Entwurfsmuster beschreiben Standardlösungen für oft auftretende Probleme. Hast du dir schonmal Gedanken gemacht wie der Rückgängig-Befehl programmiert wird? Andere schon und dafür gibt es ein Entwurfsmuster. Beherrscht du diese sicher und hast auch schon alle anderen „Puzzleteile“ zusammen hast du nun alles was du benötigst um Programmieren zu können. Der nächste Schritt geht dann in Richtung Softwarearchitektur.

Erfahrung

Ein wichtiges Puzzleteil. Du kannst dir quasi für jedes Puzzleteil ein Buch kaufen und es durcharbeiten. Allerdings wird dir dann noch die Erfahrung fehlen. Erst wenn du anfängst die Sachen einzusetzen und Programme zu entwickeln wirst du die nötige Erfahrung sammeln die du benötigst das nächste Große Ding zu machen. Mit viel Übung passiert es auch schon vorher.

Fazit

Du siehst, es ist nicht wenig Arbeit die du investieren musst. Du brauchst viel Durchhaltevermögen und Interesse an diesen Themen. Wichtig ist auch, dass du diese Dinge nicht immer nacheinander lernen kannst. Die IDE, Programmiersprache und die Grundelemente gehören zwangsläufig zusammen, es ist schwierig diese separat zu erlernen. Das sind also die 10 Themen die du beachten musst um Programmieren lernen zu können. Jetzt geht es darum direkt anzufangen! Starte hier und verdiene dir deine ersten drei Puzzleteile! Es ist noch Platz für zwei weitere Puzzleteile, habe ich eins vergessen? Kommentiere unten den Beitrag und wir unterhalten uns darüber!

8 Begriffe die du kennen musst

 

Wenn du anfängst Programmieren zu Lernen, kommt es ganz schnell vor, dass du mit jemanden sprichst, der dir die Fachbegriffe nur so um die Ohren haut obwohl er weiß, dass er vor einem Anfänger sitzt. Ich habe da echt schlimme Erfahrungen gemacht. Ich möchte dir hier nur 8 Begriffe geben die du kennen solltest.

Programmiersprache

Computer und Programme werden programmiert mit einer Programmiersprache. Es gibt unzählige verschiedene Sprachen und Arten von Sprachen. Die Programmiersprache ist das Werkzeug, welches zum Programmieren benutzt wird.

Quelltext/Quellcode/Sourcecode

Wenn du programmierst, schreibt du Programme in Dateien. Theoretisch kann man das gesamte Programm in eine Datei schreiben, aber das wäre unübersichtlich. Also unterteilt man das Programm in mehrere Stücke. So speicherst du ein Stück Programm in einer Datei ab. Diese Dateien sind eigentlich ganz normale Textdateien. Wir Programmierer nennen diese Quelltext oder Quellcode oder SourceCode. In diesen Dateien steht das Programm in der von dir benutzten Programmiersprache.

Compiler/Interpreter

Deinen gespeicherten Quelltext versteht dein Computer noch nicht. Also muss er diesen in seine Sprache übersetzen. Dies wird erledigt entweder von einem Compiler oder einem Interpreter. Wie die sich unterscheiden erfährst du noch früh genug. Wichtig für dich ist, dass es Programme gibt die deinen Quelltext für den Computer übersetzen.

Funktion/Anweisung/Befehl

Wenn du programmierst gibt du deinem Computer Befehle und Anweisungen. Ein Quelltext besteht somit aus vielen Anweisungen/Befehlen. Dieser Liste an Anweisungen/Befehlen kann man auch zu Funktionen zusammenfassen. Somit muss man immer wiederkehrenden Listen von Anweisungen nicht doppelt im Quelltext behalten.

Variable

Eine Variable kann sich Werte wie Zahlen oder Wörter merken. Immer wenn du dir eine Zahl oder ein Wort merken musst, benutzt du eine Variable. Eine Variable braucht man, da man den Platz für den Wert zunächst reservieren muss. Stell dir das vor wie einen Merkzettel oder einen Platzhalter. Wenn du dir etwas merken willst nimmst du einen neuen Merkzettel und schreibst da deine Zahl oder dein Wort auf. Auf jeden Zettel passt allerdings immer nur ein Wert. So musst du immer in deinem Programm eine Variable nehmen wenn du dir im Programm etwas merken willst. Das Variablen Thema erkläre ich im meinem Kurs genauer.

Typ/Variablentyp

Wie schon erwähnt können Variablen Zahlen oder Wörter speichern. Da haben wir auch schon den Typ. Entweder kann eine Variable vom Typ Zahl sein oder vom Typ Wort. Wenn du in deinem Programm schreibst dass du dir etwas merken willst, also eine Variable brauchst, musst du im Programm aufschreiben von welchem Typ diese ist, quasi: Ich brauche eine Variable die eine Zahl abspeichern kann. Es gibt ganz viele unterschiedliche Typen in Programmiersprachen und man kann auch eigene Typen erstellen. Spannend was?

Operator/Operation

Eine Operation ist eine bestimmte Art von Anweisung. Wenn man mit einem Operator arbeitet ist dies bereits eine Operation. HÄ? Ich erkläre es dir genau: Immer wenn du etwas mit zwei oder mehr Variablen machst, spricht man von eine Operation. Zum Beispiel kannst du mit Zahlen rechnen, dann spricht man von einer Rechenoperation. Addierst du zwei Variablen benutzt du ein Plus-Zeichen „+“. Das Zeichen ist der Operator. Dieser zeigt an welche Operation durchgeführt werden muss. Beispiele für Operatoren sind: + – = * / und noch viele mehr!

Debugger

Du hast ja bereits von den hilfreichen Programmen wie dem Compiler gehört. Der Debugger ist noch so ein toller Helfer, aber leider unter Programmieranfängern total unbekannt. Während der Compiler für dich deinen Quelltext übersetzt, hilft dir der Debugger beim finden von Fehlern! Was heißt Debugger eigentlich?  Einen Programmierfehler oder ein Programmabsturz, nennt man unter Programmierern einen Bug. Bug kommt aus dem englischen und heißt auf deutsch Käfer. Das „De“ vor Debugger bedeutet das Umgekehrte, zu deutsch  übersetzt ist ein Debugger ein Entkäferer. Wie macht ein Debugger dies? Mit einem Debugger kannst du dein Programm anhalten und er zeigt dir an welcher Stelle im Quelltext dein Programm gerade steht. Dann kannst du in Ruhe alle Variablenwerte angucken und den Fehler finden.

Wie gehts weiter?

Das war ein kleiner Einstieg in die Begriffe die es in der Programmierwelt gibt. Natürlich gibt es noch viel mehr. Für den Anfang solltest du mit diesen Begriffen erstmal zurecht kommen. Hast du noch weitere Begriffe? Kommentiere diesen Beitrag! Ich werde dir antworten.

Wie fange ich mit dem Programmieren an?

Erst einmal freue ich mich, dass du dich für diesen Schritt entschieden hast und du bei mir gelandet bist. Wenn du fragst wie du mit dem Programmieren anfängst, möchtest du sicherlich wissen wie man programmieren lernt. Welche Themen du lernen musst und welche Möglichkeiten es gibt diese zu lernen werde ich dir kurz vorstellen.

Die altbekannte Frage

In Internetforen liest man diese Frage fast täglich. Menschen wie du, die nur mal ’ne Info haben möchten, wie man mit dem Programmieren anfängt und wie man es lernt. Auf solche Fragen folgen wahre Schlachten zwischen „Experten“, die dich davon überzeugen wollen mit welcher Sprache und welcher Methode man am besten Programmieren lernt. …Manche fragen auch auch: Was willst du denn überhaupt machen? Ganz ehrlich, das hast du doch schon bereits gefragt! Es folgen lange …
Was dir das dann geholfen hat? Du hast Angst bekommen, weil du denkst es sei zu schwierig. Es ist aber so einfach! Grundlegende Computerkenntnisse reichen aus um mit dem Programmieren anzufangen. Du kannst praktisch heute schon die ersten Schritte schaffen!

Welche Inhalte sollte man lernen? 

Das erste Thema ist die Sprache, zum Programmieren brauchen wir eine Sprache. Welche Sprache man da nimmt habe ich in einem separaten Artikel beschrieben. Ich möchte hier aber auch nicht drauf eingehen, da es meiner Meinung nach total unwichtig ist mit welcher Sprache man anfängt. Die Themen, die man zu allererst lernen muss, sind mit jeder Hochsprache zu erlernen. Aber welche Themen brauchst du nun?
Zunächst musst du lernen was Anweisungen und Anweisungslisten sind, die erste Lektion meines Kurses befasst sich damit. Diese ist kostenlos, die wäre der perfekte Einstieg für dich. Hast du das mit den Anweisungen verstanden, lernst du eigene Anweisungen zu schreiben, sogenannte Funktionen.
Kommentare sind wichtig um ein Programm verständlich zu behalten. Dann kommt das Thema Operatoren und Operationen, da lernst du die Grundrechenarten wie Addition und Subtraktion in einer Programmiersprache. Nach diesen einfachen Grundlagen lernst du weitere Themen wie: Eingabe von Tastaturbefehlen und Ausgabe auf den Bildschirm. Als weiteres Thema kommt dann das Speichern von Daten im Arbeitsspeicher dazu, dafür gibt es die Variablen, diese gibt es in Einzel, Listen und Tabellenform. Es geht noch weiter mit den Themen, aber bleibt ruhig! Das hört sich nach viel Lernstoff an, es ist aber SUPER einfach diese Themen zu erlernen. Das Problem ist, dass die meisten Bücher es so trocken lehren wie ich es jetzt in den Text geschrieben habe. Welche Themen noch wichtig sind habe ich im Artikel „10 Puzzleteile“ beschrieben. Wofür man Anweisungen braucht und was Listen damit zutun haben kann ich dir heute beibringen, schau doch mal in der ersten Lektion vorbei.

Online lernen

Im Internet gibt es unzählige Startpunkte. Leider sind dies unsere Foren, was ich von denen halte, habe ich bereits oben genannt. Dagegen gibt es wirklich hilfreiche Quellen. Ich habe mir mit 13 Jahren solche Quellen gewünscht. Ich spreche von Videoanleitungen, damit hätte ich das ganze Thema super schnell gelernt. Die Kurse die ich für gut befunden habe, habe ich leider nur auf Englisch gefunden. An diesem Beispiel habe ich mich orientiert und den ersten guten Kurs auf Deutsch produziert. Ich bin überzeugt das braucht unsere Menschheit! 🙂
Weiterhin gibt es ein paar Seiten im Internet die diese ganzen Themen als Texte beibringen wollen. Diese Texte sind Online Fachbücher und befassen sich mit einer bestimmten Sprache, nicht mit den eigentlichen Grundlagen. HÄ? Kleines Beispiel, in den Texten wird erklärt wie man eine Variable in C++ definiert und wie man die benutzt. Aber warum und wann ich eine Variable brauche und was das im Detail ist bleibt im verborgenen.
Du möchtest online etwas lesen? Dann schau dir den Artikel: 7 Feler die du vermeiden musst an

Offline lernen

Interaktivität ist offline natürlich schwierig. Mit Offline meine ich nicht getrennt vom Internet sondern getrennt vom Computer. Es ist doch ein Widerspruch an sich, man möchte lernen Computer zu programmieren aber will dies ohne Computer tun? Ich kann dich verstehen, ich wollte auch so anfangen. Das Problem? Es gibt mindestens doppelt so viele schlechte Bücher wie gute und wenn ich in mein Bücherregal gucke, finde ich kein Buch welches ich einem Anfänger empfehlen würde. Also kannst du dich auf die Suche nach einem guten Buch machen. Wenn du Glück hast ist das erst gekaufte Buch das, wo der Funke überspringt. Wie gesagt, ich habe ein Regal voll Bücher. Hunderte an Euros Lehrgeld bezahlt. Mit Büchern allein habe ich nicht programmieren gelernt.

Möglichkeiten hier

Ich habe diese Seite gegründet damit jeder Mensch einfach Programmieren lernen kann. Du kannst dich bereits glücklich schätzen auf diese Seite gestoßen zu sein. Du hast jetzt die Möglichkeit, gleich einzusteigen. Den Einstieg den du suchst findest du hier als Videokurs. Es ist deine Entscheidung, aber du hast dich bereits für eine Möglichkeit entschieden 🙂 Ich sehe dich schon beim Programmieren deines ersten Programmes! Tu es!

7 Gründe warum DU Programmieren lernen solltest

 

Ich finde ja jeder Mensch sollte in der heutigen Zeit programmieren lernen. Heute ist der Computer nicht mehr aus dem Leben wegzudenken und wir benutzen täglich Software die von anderen programmiert wurde. Ich würde jetzt nicht behaupten du musst wissen wie du einen Computer selber zusammenbaust und wie du die Mikroprozessoren herstellen kannst. Soweit sind wir noch nicht. Aber wie ein Programm funktioniert und wie man es umschreiben kann, sobald man einen Quellcode dafür hat, das sollte heute jeder Mensch können.
Die Gefahr ist groß, dass wir alle abhängig werden von Unternehmen und Programmierern die unsere Softwarewelt bestimmen. Was würde denn passieren, wenn ein Unternehmen wie Google die Android Plattform schließt? Welche Auswirkung hätte das auf unsere Welt? Wir würden uns einfach ein anderes System installieren und quasi alle Apps neu kaufen: Autsch! Aber genug der Gruselgeschichten.
Es gibt noch viel mehr Gründe warum du das Programmieren lernen solltest. Ich möchte dir 7 Gründe aufzeigen, falls du dich noch nicht entschieden hast.

Grund 1: „Es ist super einfach“

Danke an die Erfinder moderner Programmiersprachen! Die haben es geschafft, eine unverständliche Maschinensprache in für den Menschen verständliche Sprachen zu übersetzen. Programmieren bedeutet nichts anderes als Anweisungen geben oder anders gesagt Anweisungslisten zu schreiben. Wie so ne Liste aussehen kann, siehst du in meinem Kurs.

Grund 2: „Die eigenen Visionen und Ideen umsetzen“

Jeder der sich dafür entscheidet mit dem Programmieren anzufangen hat sie: Eine Vision oder eine Idee die er umsetzen will, sobald er programmieren gelernt hat. Das ist die Willenskraft die ein Mensch entwickelt, um dieses Ziel zu erreichen.

Grund 3: „Geld verdienen“

Na klar, es geht um Moneten. Es ist längst kein Geheimnis mehr, dass man mit dem Programmieren Geld verdienen kann. Ob man nun sein eigenes Programm vermarktet oder in einem Unternehmer als Software Entwickler arbeitet. Mittlerweile kann man in sogenannten App Markets seine programmierten Apps einstellen. Preis festlegen (vll. 1,77 € pro Download?) und schon kannst du Geld verdienen. Ob dein Programm das eine ist welches 1.000.000 Downloads bekommt hängt aber auch noch von anderen Faktoren ab. Ich möchte dich hier nicht mit Zahlen blenden, aber möglich ist alles.

Grund 4: „Unabhängig von anderen Programmen werden!“

Hast du schon mal stundenlang nach einem Programm gesucht, und es einfach nicht gefunden? Unglaublich, es hat sich noch kein Programmierer erbarmt die Funktion zu programmieren die du unbedingt brauchst, diese bösen Schurken! Wie wärs mit selber schreiben? Nicht immer muss man das ganze Programm selbst schreiben, man kann auch Plugins, also Zusatzmodule für Programme entwickeln. Und wenn ein Programm nicht mehr weiterentwickelt wird, kann man die Weiterentwicklung selber übernehmen oder ein Programm nach seinen Wünschen neu gestalten und programmieren.

Grund 5: „Den Computer verstehen“

Vielleicht ist das kein richtiger Grund, eher ist es eine Konsequenz. Dadurch das du Programmieren lernst, lernst du automatisch wie ein Computer arbeitet. „Ich hab 16 GB RAM“, schön. Aber was bedeutet denn 16GB Arbeitsspeicher? Und was kann der Programmierer damit machen?

Grund 6: „Karriere als Programmierer machen“

Ich hab es bereits angesprochen, möchte hier aber näher darauf eingehen. Man neben dem Geld verdienen mit eigenen Apps gibt es auch die Möglichkeit in einem Unternehmen die Karriereleiter aufzusteigen. Ob man nun als Software Entwickler anfängt oder einen anderen Bürojob hat ist egal. Der Software Entwickler programmiert Anwendungen die andere Leute brauchen. Hast du einen anderen Job, kannst du deine Arbeit mit deinen Programmen beschleunigen. Das gefällt dir, du musst nicht soviel arbeiten und deinem Chef gefällt es auch, deine Arbeit wird dennoch erledigt.
Was die Software Entwicklerbranche angeht, berichte ich in meinem persönlichen Blog, ich selbst verdiene meinen hauptsächlichen Lebensunterhalt als angestellter Software Entwickler.

Grund 7: „Man bleibt fit im Kopf“

Beschäftigt man sich mit Programmieren und schreibt Programme, beschäftigt man sich damit Probleme zu lösen. Jede Funktion kann dabei eine neue Herausforderung sein. Und jede Herausforderung erfordert eine andere neue Denkweise. Das hört sich jetzt vielleicht kompliziert und einschüchternd ein, da möchte ich dich aber beruhigen. Für jedes Problem gibt es eine passende Lösung und auch ein Programm? Wie deine Lösung aussieht entscheidest du.
Die Gründe sind vorhanden und du hast sicherlich noch andere. Aber deine Entscheidung ist bereits gefallen. Als nächstes zählt der erste Schritt.

Elterninfo: Mein Kind will programmieren lernen, was nun!?

Ich nehme an Sie haben bereits Kinder?

Zunächst möchte ich sagen, dieser Artikel ist etwas schwierig für mich, da ich selber noch keine Kinder habe. Dennoch kann ich Ihnen ein paar Infos dazu geben, schließlich war ich mal eins! WARUM? Ich war das Kind, dass Programmieren lernen wollte, nur habe ich dies noch nicht mal allen erzählt. Ich werde also erstmal erzählen wie ich zum Programmieren gekommen bin. Danach nenne ich ein paar Punkte, die mir mehr geholfen hätten schneller in die Richtung zu gehen und auch schneller das ganze zu Lernen.

Der Wille

Kurz zu mir, ich habe mit ca. 6 Jahren schon am Computer gespielt (ja wirklich, ich habe Videospiele gespielt so oft ich konnte!). Im Vergleich zu heute nichts besonderes mehr, wie ich höre macht man schon in der 1. Klasse seine Hausaufgaben am Computer. Für mich war der Computer zuerst nur ein Spielzeug, die ganzen vielen Videospiele, super! Irgendwann packte mich aber das Interesse selber ein Spiel zu programmieren. Aber was sagt man den Eltern? Ich habe mich nicht getraut, denn ein Computer ist ja zum Spielen, womit man Computerspiele macht war mir unbekannt. Die Geräte sind bestimmt 10000 mal teurer als unser Computer. Als ich mich dann mal getraut habe jemanden zu fragen, hat derjenige mir gesagt: „Wenn du das lernen willst, musst du hunderte an Blättern lesen und ganz viele Bücher kaufen“. Als kleiner Junge will man nicht hunderte Blätter lesen und auch keine Bücher kaufen! Das Thema war erledigt für mich, ich wollte das nicht mehr. Lieber weiter spielen. Schade.

Das erste Programm

Erst Jahre später stieß ich auf eine HeftCD einer bekannten Spielezeitschrift (ich habe schließlich weiterhin immer gespielt).  Da drauf war ein Textspiel, also wirklich rein Text gesteuert. Man hat seinen Namen eingegeben und im Text erschien der eigene Name. Dann konnte man durch das Wählen von A B oder C auswählen, wie man in dem Text bzw. in der Geschichte fortschreitet. Ich dachte mir, wenn ich den Text hier lesen kann muss er doch irgendwo in den Dateien stehen die zum Programm gehören.
Vielleicht kann ich diesen Text ja verändern? Und vielleicht auch die ganze Geschichte!? Neugier geweckt und tatsächlich! In einer program.bas Datei versteckte sich die ganze Geschichte. Ich habe den Text geändert und das Programm gestartet. TADAAAA! Auf einmal stand in der Geschichte mein Text! Ich habe dann nach und nach alles verändert. Die Stellen an denen der Name gespeichert wurde habe ich auch gefunden und verändert, nun konnte ich auch den Wohnort speichern!
Durch dieses Rumprobieren wurde nicht nur meiner Phantasie angeregt, ich habe nebenbei gelernt wie ein Computer Programme abarbeitet. Die Sprache hieß QuickBasic.

Wie gehts weiter?

Die ersten Erfolge habe ich durch meine Neugier und Phantasie erreicht. Ich war zu der Zeit in der 6. Klasse (ist schon ein Weilchen her). Ich stieß irgendwann an eine Grenze und kam nicht mehr weiter. Die Beispielprogramme waren so komplex, dass ich durch einfaches rumprobieren nicht mehr weiterkam. Was ich auch änderte, es verhielt sich nicht so wie ich es mir dachte. Ab da brauchte ich jemanden der mir das weitere Vorgehen zeigt.
Zwei Jahre in der Sackgasse später lernte ich dann die weiteren Konzepte der Programmierung, mein Realschullehrer hat mir einen Tipp für eine echte Programmierhilfe gegeben. Einen kleinen virtuellen Roboter, den man in der Sprache Pascal programmieren konnte. Somit habe ich die Logik von Programmen verstanden und gelernt wie man ein Problem in einer Progammiersprache löst. Aber auch da kam ich an meine Grenzen. Auch hier lernte ich weitere Aspekte der Programmiersprache durch einen wirklich sehr guten Lehrer.
Das schrittweise Lernen war gut, allerdings wäre ich bereit gewesen das ganze etwas schneller zu lernen.
  • Neugier geweckt und erste Befehle hintereinander ausgeführt.
  • Roboterprobleme/Aufgaben gelöst und die Roboterlogik programmiert, wobei meine Neugier auch schon hier abgedeckt war
  • Lösen von Problemen mit C++, Arbeiten mit dem Arbeitsspeicher.
Ich hoffe Sie können sich in etwa ein Bild machen. Aber wie geht es nun weiter? Lernen Sie es selbst und bringen Sie es Ihrem Kind bei. Wenn ich einen Lehrer gehabt hätte der mich die ganze Zeit begleitet, wäre ich schneller ans Ziel gekommen. Sie müssen kein Programmierprofi werden, aber grundlegende Dinge sollten Sie beantworten können.
Ist mein Kurs für Kinder geeignet? Die jüngsten Teilnehmer im Kurs sind knapp 10 Jahre alt, ich habe den Kurs so gemacht, wie ich ihn mir als kleiner Junge früher gewünscht hätte. Alle Ecken an denen ich stehen geblieben bin behandle ich, als wenn ich es mir nochmal beibringen müsste.
Als Mentor im CoderDojo Kassel bringe ich Kindern programmieren bei und sammele dabei Erfahrungen für meine Onlinekurse.
Dort wird zum Beispiel ein Onlinekurs angeboten: Schauen Sie sich den kostenlosen Scratch Kurs für Kinder erstmal selbst an, ob der Kurs für Ihr Kind geeignet ist kann und möchte ich nicht entscheiden. Die Entscheidung liegt an Ihnen, vielleicht lernen Sie es gemeinsam? Der komplette Kurs bringt dann die Grundlagen der Programmierung mit Javascript bei. Welche Alternativen zu den Kursen von lerneProgrammieren.de es noch gibt finden Sie in diesem Artikel.

Mit welcher Programmiersprache fange ich an?

Hast du dich einmal entschlossen, die ersten Schritte als Programmierer zu gehen, fragst du dich ganz schnell, mit welcher Sprache du nun starten solltest. Die Auswahl ist sehr breit angelegt. Wenn man im Internet selbsternannte Experten fragt, bekommt man meistens subjektive Meinungen. Jeder Programmierer hat da so seine eigene Lieblingssprache und manche Communities in verschiedenen „Sprachlagern“ (schreckliches Wort!) sind genau so verfeindet wie manche Fußballclubs. Vielleicht vergleichbar: Versuch doch mal in einem Borussia-Forum zu fragen, welcher Fußballverein für dich der beste wäre, um das Fußball Spielen zu lernen. Die Antworten kannst du dir sicherlich vorstellen.

Das „Aussehen“ von Programmiersprachen

Wie bereits erwähnt gehe ich hier hauptsächlich auf die Sprachen der 3. Generationen ein. Wie diese ausgeführt und übersetzt werden, wird hier nicht behandelt. Wichtig ist allerdings eines: Die verschiedenen Sprachen sind für verschiedene Anwendungsgebiete gut. Mit welcher man also anfängt, hängt davon ab, was man so als erstes Projekt eigentlich machen möchte.
Die Screenshots sollen dir einfach kurz zeigen, wie die verschiedenen Sprachen aussehen. Der Code ist nicht vollständig, aber soll dir zeigen inwiefern sich die Programmiersprachen ähneln. Was der Code dort macht und tatsächlich bedeutet, das lernst du dann konkret im Einsteigerkurs.

C, C++, C#

C, C++, C# kommt hauptsächlich im Server/Desktop-Umfeld vor, wird also benutzt für Programme die lokal auf einem Computer laufen. C# wurde von Microsoft entwickelt, die Programmierung wird dementsprechend unter Windows gemacht. Mit C und C++ kann man für viele Plattformen wie Linux, Mac und Windows programmieren, aber auch Hardwarenahe-Programmierung wird mit C und C++ durchgeführt.

Hier wird ein Codeausschnitt aus der Programmiersprache C gezeigt.

Codeausschnitt aus C


Hier wird ein Codeausschnitt aus der Programmiersprache C# gezeigt.

Codeausschnitt aus C#

Hier wird ein Codeausschnitt aus der Programmiersprache Java gezeigt.

Codeausschnitt aus Java

Java

Java ist eine Sprache die auf verschiedenen Plattformen läuft, für die es eine Java Virtual Machine gibt. Es gibt Leute die sagen Java nach, langsam zu sein. Ich möchte hierüber kein Urteil machen, die Geschwindigkeit ist von zu vielen Faktoren abhängig. Außerdem ist Java die Programmiersprache für Apps auf der Android Plattform. Wenn du Apps für Android Smartphones schreiben möchtest, bist du bei Java genau richtig. Genauso gut kann man damit Webanwendungen und Desktop-Applikationen sowie 3D-Spiele schreiben. Diese Sprache ist wirklich sehr vielseitig. 

Hier wird ein Codeausschnitt aus der Programmiersprache Javascript gezeigt.

Codeausschnitt aus Javascript

Javascript und PHP

Javascript und PHP, das sind die Sprachen im Internet. Im Zusammenspiel mit HTML und CSS sind dies mächtige Werkzeuge. Wenn man Programme für das Web erstellen möchte, also zum Beispiel Spiele, Webapps oder Responsive Websites kommt man um Javascript nicht drumherum.
Bei Javascript hat man einen riesigen Vorteil als Einsteiger. Wenn du einen modernen Browser wie Firefox oder Chrome nutzt, brauchst du dir am Anfang keine Gedanken über eine Entwicklungsumgebung machen. Du brauchst lediglich einen Text-Editor und kannst direkt loslegen, alle notwendigen Werkzeuge zur Programmierung sind im Browser integriert. Dies ist auch der Hauptgrund warum der lerneProgrammieren-Einsteigerkurs mit dieser Sprache arbeitet, dort lernst du neben den Grundlagen von Programmiersprachen, wie man Spiele und kleine Webanwendungen mit Javascript erstellt. 

Visual Basic bzw. Basic Sprachen

Diese Sprachen zeichnen sich hauptsächlich durch eine angeblich leichtere Lesbarkeit aus. Viele Anfänger halten die Sprache für sehr leicht verständlich. „Experten“ tun Basic schnell als Spielerei ab. In den Anfängen der Computerentwicklung wurde die BASIC-Sprache entwickelt um Anfänger die Prinzipien der Programmierung beizubringen. BASIC ist übrigens eine Abkürzung für: Beginner’s All-purpose Symbolic Instruction Code“ was so viel bedeutet wie „symbolische Allzweck-Programmiersprache für Anfänger“. Aber BASIC wurde weiterentwickelt. In Office-Programmen wie Microsoft Word, Excel, usw. kann man mit Visual Basic die Standardfunktionen um eigene Funktionen erweitern. Dies ist hilfreich, wenn man bestimmte Arbeiten in Excel oder Word automatisieren möchte.  

Andere Programmiersprachen

Dies sind natürlich noch lange nicht alle Sprachen. Schau dir mal den TIOBE Index an. Das ist eine Liste mit den beliebtesten Programmiersprachen, welche immer aktuell gehalten wird. Im Trend für Anfänger ist momentan Python. Ein paar weitere habe ich hier aufgelistet.

Muss man alle Programmiersprachen lernen?

Um den Einsteigern einen kleinen Einblick zu geben, welche Sprachen ein angehender Programmierer so lernt, zeige ich kurz meine gelernten Sprachen auf. Die ersten Schritte und Anweisungen habe ich in Quick Basic gemacht. Nachdem die ersten Versuche mit C und C++ gescheitert sind, habe ich in der Schule als nächstes Pascal gelernt, mit den so gewonnenen Kenntnissen hab ich dann auch C++ verstanden. In der Ausbildung habe ich dann die ersten Programme mit grafischer Oberfläche (GUI) mit Delphi/Object Pascal geschrieben. Dort hatte ich als Webmaster zutun und habe PHP, HTML/CSS gelernt. Als nächstes war dann C# und Java dran. Als Angestellter arbeite ich zurzeit mit Java. Für lerneProgrammieren(); habe ich mich in Javascript eingearbeitet. Das hört sich jetzt vielleicht nach einer Menge Arbeit an, aber bei den genannten Sprachen gibt es gewisse Grundelemente, welche für diese Programmiersprachen gleich sind. Hat man sich eine Programmiersprache angeeignet, kann man sehr schnell umsteigen. Der Umstieg von z.B. C# auf Java ist reine Fleißarbeit, weil man einfach ein paar Codebeispiele die man aus C# kennt in Java nachprogrammiert. Der Teufel steckt hier im Detail, wenn solche Programmiersprachen Spezialfunktionen haben, welche es bei anderen Sprachen nicht gibt. Hier gilt dann: Dokumentation durchlesen und Tutorials durcharbeiten.

Fazit

Welche Sprache man wählt ist abhängig vom Einsatzzweck. Die Sprache ist nicht mehr als ein Werkzeug. Man kann mit einer Bohrmaschine ein Loch bohren, welchen Bohrkopf man dafür nehmen muss, hängt nun mal von vielen Faktoren ab. Aber den Umgang mit einer Bohrmaschine lernt man mit egal welchem Bohrkopf. Um an sein Ziel zu kommen, muss man manchmal verschiedene Bohrköpfe aus probieren.
Ich habe hier bewusst keine Programmiersprache empfohlen, allerdings wird in meinem Kurs Javascript verwendet. Im Kurs erhält man immer wieder den Einblick in andere Sprachen. Aber du überzeugst dich am besten selbst in diesem Tutorial von lerneProgrammieren.de

Warum die Programmiersprache EGAL ist…

Fangen wir mal blöd an: In welchem Verein du das Spielen von Fußball lieben lernst ist egal. Es bleibt der gleiche Fußball (auch wenn die Meinungen hier immer auseinander gehen). Ein Spielfeld, 22 Spieler, ein Ball und zwei Tore. Das Beispiel ist jetzt nicht das allerbeste, denn es gibt bei den Programmiersprachen eine lange Historie und dementsprechend auch verschiedene Generationen. Das wohl bekannteste Beispiel hierfür ist C. Zunächst wurde C entwickelt. Daraus entstand C++ und daraus irgendwann C#. Fakt ist, dass Programmiersprachen sich in einer gewissen Art und Weise immer ähneln. Vergleicht man das zum Fußballspiel, kann es verschiedene Arten von Fußballspielen geben. Das eine Mal spielt man auf einem Bolzplatz, das andere Mal in einem Stadion. Das eine Spiel läuft in der Bundesliga, das andere in der Championsleague. Jetzt reichts aber auch mit dem Vergleich zum Fußball. Kommen wir zu den verschiedenen Generationen, dann werden die Ähnlichkeiten klarer.

Arten/Generationen von Sprachen

Jetzt keine Angst bekommen, dies muss man nicht auswendig lernen. Ich selber muss immer wieder nachgucken, wenn es um die Generationen geht. Ich gehe auf dieser Seite hauptsächlich auf Sprachen der 3. Generation ein. Außerdem ist man sich bei den 3.-5. Generationen nicht immer 100% einig welche Sprache wohin gehört. Dies soll hier aber egal sein.

1. Generation – Maschinensprache

Das ist die Sprache die jeder Computer versteht. Diese Sprache besteht nur aus Einsen und Nullen. Diese Sprache ist für den Menschen nur sehr schwer lesbar. Jeder Code aus den anderen Generationen wird am Ende übersetzt. Es bleibt immer Maschinencode übrig.

2. Generation – Assembler

Damit die Maschinensprache etwas verständlicher für den Menschen wird, haben Wissenschaftler sich Kürzel (Mnemonics), ausgedacht. Trotzdem war die Programmierung mit Assembler noch sehr schwierig und sehr problemanfällig. Wer das heute noch kann, gilt als jemand der „von der alten Schule“ kommt (wenn ihr meint). Bei den Sprachen war es kein Wunder, dass man für das Programmieren lernen noch studieren musste. Aber auch heute wird Assembler noch verwendet und möchtest du lernen wie ein Computer vom Grund auf funktioniert, lernst du Assembler.

3. Generation – Höhere Programmiersprachen

Diese Sprachen werden jedem Programmierer ans Herz wachsen. Ein kleine Auflistung: C, C++, C#, Java, Javascript, Pascal, Objective-C, PHP. Na, von mindestens einer von diesen hast du sicherlich schon gehört.
Alle Sprachen dieser Generation sind problemorientiert und alle haben fast identische Sprachelemente. Da ich hauptsächlich über diese Sprachen schreibe, findest du hier einen separaten Artikel mit einer Übersicht der Programmiersprachen.  Fast alle heutigen Programmierer fangen das Lernen in dieser Generation an (auch ich!).

4. Generation – Deskriptive Programmiersprachen

Während man in der 3. Generation noch den Lösungsweg programmieren muss, wird in diesen Sprachen nur die Aufgabenstellung programmiert. Eine bekannte Sprache für die Programmierung von Datenbanken ist z.B. SQL.

5. Generation – Sprachen der künstlichen Intelligenz

Diese Sprachen erarbeiten Ihre Lösungen anhand bestimmter definierter Regeln. Eine Sprache ist zum Beispiel PROLOG.

Generationenlos? Aber erwähnenswert!

Eingegliedert in keiner Generation aber wie ich finde eine wichtige Art von Sprache ist HTML und XML. Für viele Programmierer ein Dorn im Auge wenn man Programmieren und HTML in einem Satz nennt. Fakt ist, mit HTML und XML beschreibt man Daten und Metadaten (wenn du nicht weißt was das ist, ignoriere es zunächst), was mit den Daten geschieht ist Sache des Programms. Ein Internetbrowser zum Beispiel zeigt HTML als Webseite an. Mit XML kann man noch ein bisschen mehr machen als „nur“ Webseitengestaltung.

Auswahl der Sprache

Welche Sprache man nun benutzen möchte ist zum einen einem selbst überlassen. Es gibt Leute die meinen die eine oder andere Sprache sei gut geeignet für Anfänger. Zum zweiten ist die Auswahl der Sprache abhängig von dem WAS man später programmieren möchte. Auf der Ebene der 3. Generation ist es theoretisch egal mit welcher Sprache man lernt, denn alle Sprachen haben ähnliche Sprachkonstrukte. Hat man eine Sprache gelernt kann man die anderen Sprachen mit weitaus weniger Aufwand erlernen, ich würde sogar behaupten: Kann man eine, kann man alle. Also ist es vielleicht gar nicht so schlecht mit einer „einfachen“ anzufangen? Danach lernt man nur noch die Besonderheiten der „schweren“ Sprachen. Meine Empfehlung wäre, eine Sprache zu verwenden, mit der man möglichst wenig Zusatzsoftware benötigt um zu starten und man dennoch viele verschiedene Programmarten damit programmieren kann: Zum Beispiel kann man mit Javascript alle möglichen Arten von Computerprogrammen schreiben, wie Videospiele, Apps und vieles mehr!
Meiner Meinung nach gibt es keine „schwere“, alle Sprachen der 3. Generation sind leicht zu lernen. ABER: Was man überall lernen muss sind die Grundlegenden Techniken wie man diese Programmiersprachen benutzt. Diese grundlegenden Techniken möchte ich dir beibringen. Was du als  nächstes machst? DU lernst eine Sprache der 3. Generation! Am einfachsten startest du in dem ersten Element in meinem Tutorial. JETZT!