Welche Programmiersprache in 2017 lernen?

...komplette Frage anzeigen

5 Antworten

Ich möchte mich jetzt schon einmal mit Programmiersprachen anfreunden

Das halte ich für eine sehr gute Idee.

Jetzt ist eben nur die Frage, die sich mir stellt, welche der zu Verfügung stehenden Sprachen sich lohnt in 2017 anzufangen zu lernen.

Von den allgemein bekannten Sprachen schadet dir auf jeden Fall keine. Alle lohnen sich und bringen dich weiter.

Auch wenn c++ deutlich komplexer ist

Deswegen würde ich nicht mit C++ einsteigen, sondern es erst später lernen.

Bei Python war ich mir unsicher, ob es sich überhaupt lohnt zu lernen, weil die maximal zu erreichende Komplexität anscheinend nicht so toll sein soll.

Das kann man so pauschal nicht sagen. Sicherlich ist die Sprache wesentlich einfacher gehalten, jedoch kann man trotzdem viel damit tun. Gerade im Bereich AI wird in letzter Zeit immer mehr auf Python gesetzt.

Ansonsten kannst du Python sehr universell einsetzen (GUI-Programme, Webdevelopment, Schnittstelle zwischen verschiedenen Programmiersprachen, wissenschaftlicher Einsatz, einfache Spiele, AI und Machine Learning, Robotik, ...). Zudem ist die Sprache plattformunabhängig.


Bei c++ bin ich mir jetzt nach zwei Wochen jedoch unsicher, ob es sich überhaupt lohnt diese Sprache zu lernen, da es z.B. wie mit Python schon viel modernere Sprachen gibt.

Die Sache ist, es sind zwei vollkommen verschiedene Sprachen.

Python ist eine interpretierte Sprache, d.h. der Code an sich ist nicht ausführbar, sondern wird von einem anderen Programm, dem Interpreter, ausgeführt. Dadurch kann man nicht wirklich auf hardwarenahe Features zugreifen. Zudem muss dieser Interpreter zwingend installiert sein.

C++ ist dagegen eine kompilierte Sprache, d.h. der Code wird vom Compiler in Maschinencode übersetzt, der vom PC direkt ausgeführt werden kann. Dies hat zur Folge, dass das Programm nicht plattformunabhängig ist, also für jede Plattform neu geschrieben werden muss. Dafür ist man deutlich hardwarenäher und die Programme werden viel schneller ausgeführt.

C++ ist heute somit eine sehr wichtige Sprache, um hardwarenahe oder zeitkritische Anwendungen zu erstellen. Sie wird hauptsächlich für große Projekte eingesetzt, bei denen Skalierbarkeit besonders im Vordergrund steht. 

Die Anwendungsbereiche sind sehr vielfältig (Systeme, 3D-Spiele, Konsolenspiele, Compiler oder Virtuelle Maschinen, zahlreiche GUI-Software, Browser, Apps, Multimedia, hardwarenahe OS-Tools, wissenschaftliche Programmierung, teilweise Webdevelopment, Embedded Systems, ...).

Du kannst letztendlich alles mit C++ machen, es ist eine sehr mächtige Programmiersprache. Dennoch halte ich sie als erste Sprache für ungeeignet, eben aufgrund der großen Komplexität.


Grundlegend möchte ich an sich keine Spiele programmieren, um das einfach mal gesagt zu haben.

Was hast du sonst vor? (Wenn du das schon weißt)

ich meine momentan habe ich mich auf noch keine Sprache beschränkt, das heißt ich habe bei diesem Thema jetzt definitiv volle Auswahl

Das halte ich für eine gute Entscheidung.

da 3 Wochen in diesem Sinne absolut 0 aussagekräftig sind, wenn man die Zeitspanne sieht, die es benötigt um solch ein Programm ordentlich zu lernen.

Ich stimme dir vollkommen zu. Es gibt manche Leute, die in drei Wochen die gesamten Grundlagen "gelernt" haben und dann hier mit Fragen unter Beweis stellen, dass sie eigentlich noch nichts verstanden haben. Ich finde es gut, dass Du von allein erkennst, dass drei Wochen zu wenig Zeit sind.


Um deine Frage nun zu beantworten, empfehle ich dir für den Einstieg die Programmiersprache Java. Heutzutage ist nämlich das Prinzip der objektorientierten Programmierung (OOP) sehr essentiell. Gerade bei größeren Programmen ist es sinnvoller, anstatt prozedural (Zeile für Zeile, alle Befehle hintereinander) oder funktional (häufig vorkommende Prozeduren oder Funktionen auslagern, um sie mehrfach verwenden zu können, anstatt sich ständig zu wiederholen), objektorientiert zu programmieren.

Dabei werden Objekte genutzt, die den Objekten in der Realität entsprechen: Jedes Objekt hat gewisse Eigenschaften und Methoden. Diese werden in einer Klasse festgelegt, welche sozusagen ein Bauplan für Objekte darstellt. Aus diesem Bauplan können schließlich mehrere Objekte "gebaut" werden.

Das klingt zwar erst einmal sehr theoretisch, jedoch erleichtert es die Lesbarkeit größerer Projekte und ermöglicht die einfachere Wiederverwendbarkeit bereits entworfener Problemlösungen.

Diese objektorientierte Programmierung ist in Python nur teilweise umgesetzt, viele wichtige Features fehlen vollkommen. Java dagegen unterstützt nur OOP und keinen anderen Stil. Zudem ist Java wesentlich strenger und erlaubt dir bestimmte Dinge nicht, bei denen dir Python einen gewissen Freiraum bietet. Diesen Freiraum nutzen Anfänger aufgrund von Bequemlichkeit sehr gerne und erlernen somit einen "pfuschigen"/unsauberen Programmierstil.

Um jedoch ordentlich Programmieren zu lernen und gleichzeitig das zukunftsentscheidende Prinzip der objektorientierten Programmierung kennen zu lernen, würde ich auf eine Sprache setzen, die dir diese Möglichkeiten bietet.

Java tut das und ist darüber hinaus wesentlich einfacher gehalten als C++. Aus diesem Grund empfehle ich dir diese Sprache für den Einstieg. Sie ist ebenfalls eine Interpreter-Sprache wie Python, also auch plattformunabhängig. Allerdings wird nicht der Java-Code interpretiert, sondern der Bytecode, in den der Programmcode zuvor kompiliert wird, was Java wesentlich schneller als Python macht.

Zudem ist die Sprache sehr universell und kann in vielen Bereichen eingesetzt werden, z.B. GUI-Programmierung, einfache Spiele, Android-Apps, Webdevelopment, AI und Machine Learning, Minecraft Plugins, Robotik, Datenbank-Programmierung, Netzwerk-Programmierung, wissenschaftliche Programmierung, Cloud-Development, etc.


Zum Lernen von Programmiersprachen rate ich von etwaigen Videos und Tutorials ab, siehe meine andere Antwort hier: https://www.gutefrage.net/frage/java-nach-tutorial-lernen

Stattdessen empfehle ich dir dieses Buch zum Einstieg:

https://www.amazon.de/Programmieren-lernen-mit-Java-WindowBuilder/dp/3836241307/ref=sr\_1\_1?ie=UTF8&qid=1503873351&sr=8-1&keywords=programmieren+lernen+mit+java

Anschließend heißt es jede Menge Erfahrung sammeln (mindestens ein Jahr). Die primäre Lernquelle wird immer die Erfahrung sein. Über die Bücher lernst du nur die Theorie. Allgemein sollte das Motto "Learning by doing" sein, denn Theorie allein nützt einem rein gar nichts.

Zur Erweiterung deiner Kenntnisse eignet sich dann folgendes Buch:

https://www.amazon.de/Java-auch-eine-Insel-Java-Entwickler/dp/3836241196/ref=sr\_1\_1?s=books&ie=UTF8&qid=1503873413&sr=1-1&keywords=java+insel

Und falls du vollends ein Java-Profi werden willst, auch noch dieses:

https://www.amazon.de/Java-SE-Standard-Bibliothek-Entwickler-Computing/dp/3836228742/ref=sr\_1\_2?s=books&ie=UTF8&qid=1503873413&sr=1-2&keywords=java+insel

Ansonsten kann auch die App-Entwicklung (Android), die ebenfalls mit Java vonstatten geht, interessant sein:

https://www.amazon.de/Android-Praxisbuch-Entwickler-Android-Funktionen-Datenbanken/dp/3836242001/ref=sr\_1\_1?s=books&ie=UTF8&qid=1503873507&sr=1-1&keywords=android+7

Diese ist aber erst dann zu erlernen, wenn du Java sehr sicher im Schlaf beherrscht. Gleiches gilt für Webdevelopment und co.

Diese Bücher gibt es übrigens in vielen Bibliotheken, sodass du nicht unbedingt Geld ausgeben musst.


Zum Nachschlagen eignet sich bei Java wunderbar Google. Vor allem die Docs

https://docs.oracle.com/en/

und Stackoverflow

https://stackoverflow.com/

sind gute Anlaufstellen.


Allgemein ist es besser, wenn man mehrere Programmiersprachen beherrscht. Nachdem du Java gelernt hast, kannst und solltest du auch mit Python, C und C++ etc. weiter machen. Jede Sprache hat ihre Daseinsberechtigung und wird für verschiedene Anwendungsbereiche verstärkt genutzt. Es gibt keine "beste" Programmiersprache. Deswegen sollte man nicht nach einer aufhören, sondern besser sein Wissen erweitern.

Letztendlich sind diese Programmiersprachen aber nur das Mittel zum Zweck. Viel wichtiger sind die Konzepte und das "Drumherum", was man dabei lernt. Diese Erfahrung macht einen guten Entwickler aus. Andere Sprachen zu lernen, sollte sowieso kein großes Problem darstellen, wenn man bereits eine beherrscht. Man sollte sich schnell in unbekannte Felder einarbeiten können.


Ich wünsche dir viel Spaß und Erfolg !

Antwort bewerten Vielen Dank für Deine Bewertung
Klossar086000 11.10.2017, 19:45

Toll formulierte und detailierte Antwort, freut mich wirklich sehr solche Antworten zu bekommen.

Ich werde jetzt anfgänglich mit Python beginnen, da mir das Programmieren in der Sprache wahrscheinlich einfach am meisten Spaß macht und ich so einfach am besten lernen kann.

Java ist an sich eine tolle Sprache, jedoch dauert mir diese einfach zu lange. Sprachen wie c++ oder Python sind da in meinen Augen einfach deutlich schneller was das angeht.

Gegen C++ habe ich mich jetzt im Endeffekt entschieden, weil es wie  zu schon sagtest einfach noch viel zu komplex und kompliziert für den Anfang ist, ich denke ich sollte erst einmal lernen wie programmieren überhaupt abläuft. ^^

lg

0
tavkomann 11.10.2017, 20:19
@Klossar086000

Ich werde jetzt anfgänglich mit Python beginnen, da mir das Programmieren in der Sprache wahrscheinlich einfach am meisten Spaß macht und ich so einfach am besten lernen kann.

Spaß ist natürlich auch ein entscheidender Faktor.

Java ist an sich eine tolle Sprache, jedoch dauert mir diese einfach zu lange. Sprachen wie c++ oder Python sind da in meinen Augen einfach deutlich schneller was das angeht.

C++ ist wesentlich komplexer als Java, aber ähnlich streng. Python ist definitiv eine einfach Sprache, verleitet jedoch auch zum Pfuschen, wie ich bereits schrieb:

Zudem ist Java wesentlich strenger und erlaubt dir bestimmte Dinge nicht, bei denen dir Python einen gewissen Freiraum bietet. Diesen Freiraum nutzen Anfänger aufgrund von Bequemlichkeit sehr gerne und erlernen somit einen "pfuschigen"/unsauberen Programmierstil.

Da du dich mit Python angefreundet hast, würde ich also dies zunächst lernen. Vielleicht ist es auch der einfachere Weg. Anschließend würde ich aber wirklich zu Java übergehen, um den Programmierstil zu verbessern sowie das Konzept der objektorientierten Programmierung besser kennen zu lernen.

0

Also auf das Jahr kommt es garnicht so sehr an. Vielmehr darauf, was genau du Machen willst. Ältere weiterhin genutzte Sprachen haben entgegen von neuen eine deutlich größere und ausgereiftere Bibliothek zu bieten.

Spiele hast du ja schon ausgegrenzt. Wenn dein Fokus auf den typischen Windowsapplikationen liegen würde ich dir C# und XML mitsamt der WPF und generell dem .NET Framework empfehlen.

Vorallem mit der WPF wirst du schnell einfache Anwendungen mit anschaulichen Oberflächen schreiben können.

Egal wie du dich entscheidest: Beschäftige dich lieber zunächst mit einer Sprache in aller Tiefe. Dann fällt das lernen anderer Sprachen viel leichter, den das Rad wird nie neu erfunden.

Außerdem finde ich es generell gut, wenn man sich dem Konzept von OOP und einer der Sprachen in dieser Richtung widmet. OOP ist und bleibt sehr beliebt.

Zuletzt noch sei gesagt, dass sich Fachbübher lohnen! Es geht über nichts als einen guten Programmierstil!

Antwort bewerten Vielen Dank für Deine Bewertung

>  Bei Python war ich mir unsicher, ob es sich überhaupt lohnt zu lernen,

> weil die maximal zu erreichende Komplexität anscheinend nicht so toll

> sein soll.

Die Komplexität von C++ ist heutzutage schon eher zum Problem geworden, weil über Jahrzehnte hinweg immer mehr Features hinzugefügt wurden. Den Wert einer Sprache an ihrer Komplexität zu messen wäre falsch.

Ich würde ins Auge fassen: Java, C#, auch JavaScript wird momentan sehr viel verwendet. 

Antwort bewerten Vielen Dank für Deine Bewertung

Ich würde dir C# empfehlen, da es an sehr vielen Informatik Schulen als Advanced Kurs verwendet wird. 

Antwort bewerten Vielen Dank für Deine Bewertung

Ganz klar Python.

Die beliebteste Sprache überhaupt, im TIOBE-Index auf den Top 5, in sehr vielen Bereichen vertreten: Games, Webentwicklung, Data Science, KI, ...

Google, YouTube, NASA und viele andere benutzen Python.

Antwort bewerten Vielen Dank für Deine Bewertung

Was möchtest Du wissen?