Beiträge

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!