Programmieren lernen für Anfänger – Welche Programmiersprache?
Wer sich als Anfänger vorgenommen hat, Programmieren zu lernen, für den stellt sich gleich zu Beginn eine sehr essentielle Frage: Welche Programmiersprache soll ich eigentlich als erstes lernen? In diesem Tutorial soll es darum gehen, die verschiedenen Programmiersprachen kurz vorzustellen und eine Hilfestellung dabei zu geben, welche sich gut für Anfänger eignet zum Programmieren lernen.
Unser Java-Tutorial
Programmieren lernen: Die Programmiersprachen-Kandidaten
Wir werden davon ausgehen, dass Sie gerne eine Programmiersprache lernen wollen, mit der man traditionelle Desktopanwendungen erstellen kann. Wir werden daher Skriptsprachen wie PHP und Javascript, die insbesondere zur Erstellung und zum Programmieren von dynamischen Webseiten verwendet werden, hier außen vor lassen.
Die geläufigsten Programmiersprachen für Anfänger, die zum ersten Mal Programmieren lernen möchten, sind C, C++, und Java. C gehört zu den imperativen Sprachen, während die restlichen genannten Programmiersprachen der Gattung der Objektorientierten Sprachen zuzurechnen sind. Auf diese Unterscheidung werden wir gleich auch nochmal eingehen.
Die gute Nachricht ist: Diese 3 Programmiersprachen sind sich syntaktisch relativ ähnlich, sodass man, wenn man einmal eine dieser Sprachen beherrscht auch die anderen relativ zügig programmieren lernen kann. Etwas salopp formuliert könnte man also zu einem Anfänger sagen „Kannst Du eine, kannst Du alle“. Der Teufel steckt aber im Detail und da unterscheiden sich die genannten Programmiersprachen schon noch ein wenig. Um zu entscheiden, mit welcher Sprache man beginnt beim Programmieren lernen, sollte man sich also einmal mit den Unterschieden befassen.
Programmierparadigma: Imperativ oder Objektorientiert?
Imperatives Programmieren ist das, was man als unbedarfter Anfänger sich vielleicht am ehesten unter Programmierung vorstellt, wenn man programmieren lernen möchte: ein Programm ist eine Folge von Befehlen, die vorgeben, in welcher Reihenfolge was vom Computer gemacht werden soll. Also als triviales Beispiel: Ein Programm zur Berechnung der Summe aus zwei Zahlen würde aus 4 geordneten Anweisungen bestehen:
1) Lese den ersten Summand A vom Benutzer ein 2) Lese den zweiten Summand B vom Benutzer ein 3) Berechne die Summe C = A + B 4) Gib das Ergebnis auf dem Bildschirm aus
Die imperative Programmierung ist also zunächst einmal vom Verständnis her recht intuitiv, gerade bei solch einfachen Beispielen – das kommt Anfängern, die Programmieren lernen wollen, natürlich entgegen. Problematisch wird es jedoch, wenn man komplexere Probleme lösen und umfangreichere Programme erstellen möchte: Der Programmcode wird schnell unübersichtlich und damit auch schwieriger zu verstehen und dadurch schwer zu warten. Stellen Sie sich beispielsweise einmal ein Programm wie oben vor, das nun aber nicht aus 4 Anweisungen besteht, sondern aus 10.000. Es leuchtet ein, dass ein solches Programm vom Menschen nur sehr schwer zu überblicken und zu verstehen wäre. Beim Programmieren würden vermutlich aufgrund der Komplexität oft Fehler passieren und eine spätere Erweiterung des Programmes wäre sehr aufwändig, weil man sich erstmal wieder in das komplexe Programm „hereindenken“ muss.
An dieser Stelle kommt die Objektorientierung ins Spiel. Dieses Paradigma wird jedem, der Programmieren lernen möchte, früher oder später einmal begegnen, denn es ist das derzeit am meisten verwendete Programmierparadigma. Das Ziel der Objektorientierung ist es, das Problem mit der großen Komplexität bei umfangreichen Programmen, das dazu führt, dass die Programme nur noch schwer zu verstehen sind, zu lösen.
Programmieren lernen für Dummies
Lesen Sie hier das erste Kapitel kostenlos!
Der Lösungsansatz ist dabei der folgende: Es wird versucht, das große Gesamtproblem, das man mit einem Programm lösen möchte, in mehrere kleinere, prinzipiell unabhängige Teilprobleme aufzuteilen. Nun kann man sich jedem Teilproblem einzeln widmen und braucht am Ende nur noch die Lösungen der Teilprobleme zur Gesamtlösung zusammen zu fügen. Objektorientierung bedeutet dabei, dass man ein Programm der „echten Welt“ nachempfindet: man erschafft also beim Programmieren verschiedene Objekte, die miteinander interagieren und kooperieren. Es ist dabei zu unterscheiden zwischen Klasse und Objekt: Eine Klasse fasst eine Reihe von Objekten zusammen, die einige gemeinsame Eigenschaften haben. Auf die reale Welt übertragen wäre „Auto“ z.B. eine Klasse und „Mein Mercedes Benz Baujahr 1995“ eine Instanz der Klasse „Auto“, also ein Objekt. Das hört sich zunächst einmal vermutlich sehr abstrakt an und ist für Anfänger vielleicht nicht so leicht zu verstehen, soll aber wieder mit einem Beispiel veranschaulicht werden.
Stellen Sie sich vor, Sie möchten eine Anwendung programmieren, die die Verwaltung für ein Flugbuchungssystem realisieren soll. Zentrale Bestandteile des Programmes wären die Klassen „Flugzeug“ und „Passagier“. Nun können für Flugzeug und Passagier konkrete Instanzen erstellt werden, z.B. „Boeing 737 Baujahr 1990 Seriennummer 1300“ und „Airbus 380 Baujahr 2011 Seriennummer 2501“ für Flugzeug und „Erna Müller“ und „Friedrich Maier“ für Passagier. Für jedes Flugzeug wird nun z.B. die Eigenschaft gespeichert, wie viele freie Plätze vorhanden sind und für jeden Passagier, wieviel Geld er für Flugbuchungen ausgegeben hat. Nun können wir z.B. eine Interaktion „Flugbuchung für 200 Euro“ zwischen Airbus und Erna Müller stattfinden lassen, als Resultat ist beim Objekt Airbus ein Platz weniger frei und der von Erna Müller ausgegebene Betrag für Buchungen erhöht sich um 200 Euro.
Programmieren mit Java - Einige unserer Empfehlungen
Wie Sie an diesem Beispiel sehen, stehen beim objektorientierten Programmieren die Objekte im Mittelpunkt. Die Objekte im Programm werden „realen“ Objekten nachempfunden, was die Verständlichkeit der Programme erhöht und die Komplexität verringert.
Wollen Sie Programmieren lernen, so bietet es sich an, im ersten Schritt zunächst noch auf die Objektorientierung zu verzichten, da gerade für Anfänger das rein imperative Programmieren intuitiver ist. Sobald Sie die Grundlagen der imperativen Programmierung aber verinnerlicht haben, sollten Sie auch schnell den Schritt zur Objektorientierung wagen, da diese zu einem sehr wichtigen Konzept für Programmierer geworden ist.
In der Sprache C ist keinerlei Objektorientierung (OO) enthalten. C++ ist dagegen objektorientiert, jedoch ist die Objektorientierung gewissermaßen ein „optionales Feature“. Sie können in C++ auch große Programme schreiben, ohne OO zu verwenden. In Java ist die OO dagegen stärker verwurzelt, da sich jeglicher Programmcode innerhalb von Klassen befinden muss. Selbstverständlich können Sie aber auch in Java Programme schreiben, ohne die OO detailliert anzuwenden.
In Teil 2 dieses Tutorials betrachten wir Unterschiede zwischen den Programmiersprachen hinsichtlich Speicherverwaltung und Plattformabhängigkeit.
Programmieren mit C++ - Einige unserer Empfehlungen
Direkt zu den Buchempfehlungen für C++ oder Java.
Direkt zur Empfehlung für den C++-Fernkurs oder den Java-Fernkurs.
Unsere Buchempfehlungen
Oder sehen Sie sich die vollständige Liste der Empfehlungen für Java und der Empfehlungen für C++ an.
Wir haben auch Empfehlungen für einen C++-Fernkurs und einen Java-Fernkurs parat.