C++ oder eher Python als komplette Programmieranfängerin in 2023?

5 Antworten

Die Aussage von wer auch immer dir das erzählt hat ist Schwachsinn.

C++ und Python sind komplett verschiedene Sprachen mit komplett verschiedenen Einsatzorten.

Python ist seit geraumer Zeit "gehyped", weil es eine extrem einfache Syntax hat und es eine Masse an Libraries gibt, wodurch ein sehr kurzer Entwicklungszyklus zustande kommt.

Warum du kein Python zu erst lernen solltest?

  • Python ist ineffizient (Komplett interpretierte Sprache, daher sehr langsam)
  • In vielen Einsatzorten wo Python benutzt wird, sollte man es am besten nie benutzen ;)
  • C++ bringt dich gezwungener Maßen dazu deinen Code auch wirklich zu verstehen. Stichwort: Pointer, Memory-Referenzen, Stack & Heap Allocations.
  • Die Grundlagen und den Hintergrund von Methodiken der Programmierung zu verstehen ist essentiell um auf lange Zeit guten Code zu schreiben.

Ich würde folgendes behaupten:

Ein guter C/++ Programmier kommt in Python sehr leicht rein.
Ein guter Python Programmierer kommt in C++ sehr schwer rein.

Woher ich das weiß:Studium / Ausbildung – Informatik Studium / 6. Semester
nadyn0185 
Fragesteller
 27.05.2023, 16:00

Also sollte ich bei C++ bleiben, wenn ich mich so halbwegs mit der Sprache vertraut gemacht habe?

0
DubskyAnswers  27.05.2023, 18:05
@nadyn0185

Das wäre mein persöhnlicher Rat. Wenn du dich gut in C++ eingearbeitet hast, wirst du mit keiner anderen Sprache Probleme haben. Und deiner Code Qualität wird es sicherlich gut tun zu wissen warum und wieso welche Praktiken wo eingesetzt werden.

1

Hallo nadyn0185,

Die Sache ist die:

C++ wird hauptsächlich für Videospiele verwendet, da C++ einfach viel schneller läuft als z.B. Python und einem erlaubt den Speicher der für das Programm genutzt wird besser zu kontrollieren. C++ ist allerdings sehr kompliziert und nicht für Anfänger geeignet.

Lerne lieber Python, um Sachen wie Klassen, Funktionen also Unterprogramme unabhängig von der Programmiersprache usw. gut zu lernen. Damit meine ich, dass du lernst wann du am besten ein Unterprogramm schreibst, und wann eine Klasse günstig ist. Das ändert sich nicht mit der Programmiersprache.

In Python gibt es pygame mit dem man Spiele programmieren kann. Pygame ist allerdings nicht besonders schnell und daher nur für 2D Projekte geeingnet.

Zukunft:

Naja, neben C++ gibt es auch noch Rust. Allerdings bin ich mir sicher, dass für die nächsten paar Jahre C++ bei Videospielen "the way to go" bleibt.

Python kommt allerdings auch bezüglich professioneller Anwendungen zum Einsatz.

Wenn du Videospiele professionell Programmieren willst. C++

Sonst und zum lernen von Programmieren: Python

Beispiel:

print("Hallo") in Python wäre in C++:

#include <iostream>

int main(){

std::cout << "Hallo" << std::endl;

}

Woher ich das weiß:Hobby

Generell kommt es eher drauf an, was du machen willst.

Python ist hipp und für einige Anwendungsbereiche (beispielsweise KI bzw. Deep Learning) schlichtweg einzige mögliche Wahl. Es gibt auch mächtige Bibliotheken gerade im Bereich Statistik, um auch mal schnelle Arbeitsergebnisse zu produzieren. Beispielsweise einmalige Auswertungen großer Datenmengen..

Für Anfänger empfehle ich allerdings nicht unbedingt Python. Das Modulsystem und ähnliches kann manchmal zu verwirrend werden. Der Standardumfang für C++ ist aus meiner Sicht da durchaus "sauberer". Allerdings ist die Lernschwelle durchaus niedriger, weil man nicht sofort mit Klassen u.ä. konfrontiert ist. Das verleitet aber auch oft zu unsauberem Programmierstil und Beispiele im Internet in Python sind manchmal extrem unsauber statt klar strukturiert.

Wenn es um berufliche Zukunft geht, kommt es erneut stark drauf an, was du machen willst. Wenn du in Richtung Anlagenprogrammierung gehst, also für Industrieanlagen, Automobile usw., alles, wo du begrenzte Ressourcen hast, wird sich auch C und C++ noch eine lange zeit dort durchsetzen.

Im Bereich von Web-Anwendungen sind oftmals Rich-Clients (Oberflächen mit HTML, Javascript und passenden Frameworks wie Ract/VueJS und so weiter) und im Backend auch sicher auf Jahre noch Java mit Spring Boot Quasi-Welt-Standard. Es geht zwar auch teilweise mit anderen, aber das ist beruflich gesehen ein Schwergewicht.

Bei Handy-Apps gibt es diverse Sprachen und Frameworks. Das ist eher ein bunter Strauß. Desktop-Apps sind wiederum was anderes. Im Windows-Umfeld beispielsweise .NET mit den entsprechenden Derivaten und da kann dann auch C++ ein guter Startpunkt sein.

python ist klar einfacher als c++ und daher aus meiner sicht für anfänger besser geeignet. wir hatten das im studium auch als erste programmiersprache.

C++ und Python könnten kaum unterschiedlicher sein. Mit C++ bist du sehr nah an der Hardware, kannst sehr effizienten Code schreiben, dafür musst du aber auch eine Menge Dinge beachten. Außerdem braucht man in der Regel sehr viel mehr Code um das selbe zu implementieren im Vergleich zu Python.

Python dagegen ist weit weg von der Hardware, ziemlich ineffizient (wenn man nicht auf Libraries zugreift die in C geschrieben wurden) hat dafür aber eine kompakte und einfache Syntax.

Jobs wirst du mit beiden Sprachen finden, auch noch in einigen Jahren. Und ganz sicher wird C++ nie durch Python ersetzt werden weil es eben so unterschiedliche Sprachen sind.

Als erste Sprache find ich beide eher ungeeignet, C++ weil es eine der schwierigsten Sprachen ist und Python weil es eine der einfachsten Sprachen ist.

Mit C++ wirst du anfangs sehr leiden, Python dagegen bringt dir teilweise sehr wichtige Konzepte nicht gut bei (zb OOP).

An vielen Unis wird mit Java oder C# (beides auch relativ zukunftssichere Sprachen) eingestiegen und ich halte das auch für sinnvoll, weil beide Sprachen so im Mittelfeld liegen.

Aber zerbrech dir den Kopf nicht zu sehr welche Sprache du als erstes lernst. Wenn du eine Sprache mal kannst, ist das lernen von anderen Sprachen relativ leicht weil die Konzepte immer sehr ähnlich sind.

xubjan  26.05.2023, 19:03

Deinen letzten Satz würde ich aber noch etwas klarstellen bzw. ergänzen, damit man dich nicht falsch versteht: Die Konzepte sind oft ähnlich zwischen den Sprachen. Features werden auch gerne abgeguckt. Aber gerade die Laufzeitumgebunden und der Umfang von Bibliotheken/Modulen ist es auch, was man erlernen und beachten muss.

C++ zur Entwicklung einer Desktop-App ist was anderes wie C++ für eine 3D-Szenerie und wieder was anderes, wenn man damit ein Backend einer Webseite schreiben will. Nur um mal konkrete Beispiele beim Namen zu nennen :-)

1