Welche Programmiersprache in 2017 lernen?

8 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

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 !

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
@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!

>  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. 

Ich komme nicht weiter (Programmieren)?

Ich will Programmieren können und bin auch sehr motiviert sprachen zu lernen. Nur im moment bin ich ein wenig verzweifelt... Ich lernen jetzt seid ungefähr 2 Woche python und hab bis folge 16 bei cleverprogrammer auf youtube geschaut und alles verstanden... bei der python.org seite bin ich bis jetzt nur zum 5. kapitel gekommen weil das auf dieser seite meiner meinung nach schwer zu kappieren ist ... Ich bin verzweifelt weil ich programmieren unbedingt können will aber z.b. nicht mal weis was ich prograieren möchte und ich nicht weis was man mit python programmieren kann... Ich lerne auf der org. seite sachen aber hab keine ahnung für was ich das brauchen werde. Hat eventuell jemand eine Idee wie ich besser z.b. Python oder eine andere Programmiersprache erlernen kann ? oder wie habt ihr euch am anfang durchgeschlagen ? Danke im vorraus

...zur Frage

Python ausführbar machen - Python Programm erstellen?

Hi,

ich habe seit längerem ein bisschen mit Python experimentiert aber mich noch nicht wirklich damit befasst gehabt wie ich aus einem Script ein ausführbares Programm, das auch auf anderen Rechnern läuft, die nicht Python installiert haben, erstelle.

Jetzt habe ich gelesen das es zwar unter Linux möglich ist eine EXE per Shell zu erzeugen, aber der normale Weg zum Beispiel über C als "Umgebung" führt.

Da ich mit C nicht viel am Hut habe:

Wie könnte so eine Einbindung aussehen? Gibt es eventuell einen C Code in den man den Inhalt eines Python Scripts einfach einfügen kann und dieser wird dann ausgeführt?

Danke schonmal!

Q&Aer

...zur Frage

Python Tetris programmieren lernen?

Ich habe die Python Grundlagen gelernt und mir jetzt ein bisschen Tkinter und Canvas angeschaut. Jetzt würde ich gerne lernen, wie man so etwas wie Tetris progrmmieret. Allerdings möglichst ohne pygame, da mir das sehr kompliziert vorkommt. Ich habe schon ewig gegooglelt, aber nichts gefunden, wo man lernt Canvas zum spiele programmieren zu benutzen.

Kann mir irgendwer empfehlen, wie ich am besten lernen kann dinge wie tetris zu programmieren? Das letzte was ich programmiert habe war ein Quadratzahl / Wurzel -Rechner mit Tkinter (eigabefeld, 3 buttons mehr nicht) Daher glaube ich das ist schon noch einiges, was ich da lernen muss.

...zur Frage

Kann ich mit C anfangen?

Hallo Leute !

Ich will Programmieren lernen und wollte fragen,ob sich C zum Anfang eignet. Ich habe zuvor noch nie programmiert. Hab also keine Erfahrungen im Bereich Informatik.

Hab noch von Python gehört, will aber viel lieber mit C anfangen.

Oder sollte ich mit C# anfangen. Was ist am leichtesten von den.

Will mir noch ein Buch kaufen.

Danke im voraus

Euer Frosch2513

...zur Frage

Welche Programmiersprache sollte ich erlernen?

Sehr geehrte Gemeinde,

Also es ist so. Ich interessiere mich für das Erlernen wie man Programme bzw. Anwendungen, Scripts und sonstiges schreibt. Ich plane eine konkrete Ausbildung in einer dieser Sprachen zu machen.

Ich bin sehr interessiert daran und weiß auch das es schwer wird, das ist keine Frage.

Ich hab allerdings jetzt keine richtige Ahnung in welcher Sprache ich mein Wissen aufbauen bzw. einen Lehrgang starten soll.

Ich habe mich schon ein wenig informiert und kenne vom Namen folgende gebräuchlichen Programmiersprachen, mit einer von denen ich mich dann auch weiterbilden möchte:

C, C++, C#, Java, Visual Basic oder Visual Basic for Applications (VBA).

Des Weiteren bin an Python interessiert, weil eines meiner persönlichen Lieblingsprogramme in Python geschrieben ist. Mit Python möchte ich aber keinen Lehrgang belegen.

Es wird sich ausschließlich um eine der oberen Programmiersprachen handeln.

Kann jemand von euch, der sich vielleicht schon mit der ein oder anderen oder sogar mehreren von denen auskennt, mir Tipps geben, welche Programmiersprache, die besten Möglichkeiten (auch in der Zukunft) gibt bzw. was für Einschränkungen bei diesen bestehen?

Ich möchte einmal hochleistungsfähige Programme schreiben.

Auf der Einfachheit liegt überhaupt kein Betrachtungspunkt.

Es kann also schwer sein, wenn es dafür entsprechend flexible Möglichkeiten bietet.

Bei Java habe ich schon gehört, dass man hiermit plattformübergreifende Applikationen schreiben kann.

Vielen Dank für Eure/deine Hilfe.

...zur Frage

Was möchtest Du wissen?