Zum Inhalt springen

Ist das Lernen von C++ ein Muss?


Quantus

Empfohlene Beiträge

Guten Tag,

ich lerne derzeit Programmieren im 50:50 Verhältnis von C# und C++.

Ich möchte sowohl "normale" Anwendungen als auch Spiele programmieren. Fokus sollte die GUI-Programmierung sein.

Nun ist es so, dass ich C# stark bevorzuge. Während ich in der Sauberkeit von C# gerne auch mal programmiere(nicht nur zusammenklicke), gefällt mir dieser Pointerhaufen und "dreckige" Code von C++ ganz und garnicht. Andernseits wurde mir aber gesagt, ich solle C++ auf jeden Fall lernen.

Was ist denn nun wahr? Habe ich auch ohne C++, nur mit C#, Java und eventuell noch PHP und MySQL(flexibler) Chancen auf dem Arbeitsmarkt? Oder muss man heutzutage einfach C++ können und ist ohne kein richtiger Programmierer?

Um zur Information noch einmal zur Spieleprogrammierung zu kommen. Ich habe nicht vor, irgendwelche größeren Spiele zu programmieren. Das Limit würde sich bei Aufbauspielen wie Theme Hospital begrenzen. Hauptfokus wäre wie gesagt die Gui-Programmierung.

Liebe Grüße,

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • Antworten 65
  • Erstellt
  • Letzte Antwort

Top-Benutzer in diesem Thema

Allgemein gesagt müsstest du keine Programmiersprache können, sondern die Logik dahinter verstehen. Syntax ist lernbar, aber die Operationen nicht. Diese Aussage will ich dennoch mal mit einem großen "Skepsis"-Zeichen stehen lassen.

Du kannst sowohl mit C#, Java und PHP großartige Spiele programmieren. Hierzu kann man auf das XNA Studio (C#) verweisen, Java mit seinen ganzen Onlinegames ala Travian (das müsste Java sein) und Evergore (PHP basierend).

C++ wird erst bei Spielen ala NFS und BF gebraucht.

Im Studium wirst du um C++ nicht herumkommen und da hat es eben andere Gründe, weil du mit C++ auch Maschinen ansteuern kannst. Meines Wissens ist es sogar eine Maschinensprache, wo C# eher objektorientiert ist.

Konzentriere dich also erstmal auf eine primäre Sprache. In beiden wirst du Arbeit finden, Ausbildung oder Studium vorausgesetzt.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Nun ist es so, dass ich C# stark bevorzuge. Während ich in der Sauberkeit von C# gerne auch mal programmiere(nicht nur zusammenklicke), gefällt mir dieser Pointerhaufen und "dreckige" Code von C++ ganz und garnicht.

C++ kommt eigentlich ganz gut ohne Pointerhaufen aus, wenn man's richtig macht. Was ist denn für dich "dreckig"?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich denke, der TE schmeißt hier ein bisschen ANSI-C und C++ durcheinander. ANSI-C ist der C-Dialekt, wo es noch richtig schmutzig zur Sache geht. Da gibts nichtmal n bool'schen Typ. ;)

C++ ist, wie der Name vermuten lässt, eine Erweiterung von ANSI-C. Als Maschinensprache würde ich ANSI-C (!, C++ in keinem Falle) nicht bezeichnen, allerdings kannst du recht Hardware-nahe programmieren, da du mit C Operationen durchführen kannst, die mit anderen Compilern zwar möglich, aber nicht so einfach sind. Die einzige vernünftige Maschinensprache ist immernoch Assembler.

C# ist eine Sprache für das .NET-Framework. Dass der Pascal-Entwickler an ihr mitgebastelt hat, merkt man der Sprache an, weswegen sie auch für Einsteiger recht gut zu verstehen ist.

Ich habe meine ersten Schritte damals mit Delphi gemacht, hab mich dann irgendwann mal mit C/C++ beschäftigt und bin dann bei Free Pascal (mit Lazarus) hängengeblieben. C# habe ich mir ebenfalls kurz angesehen, konnte mich aber nicht mit .NET anfreunden. Das wird sich in Zukunft wohl ändern, denn mein AG fährt darauf voll ab.

Wie robin. schon sagte, konzentriere dich auf eine Sache, bspw. C# und fuchse dich da rein. Alternativ kannst du dir auch Free Pascal anschauen, die Sprache ist für den Einsteiger leichter zu verstehen. Generell ist es aber so, sobald du die Logik hinter dem Programmieren verstanden hast, ist die Sprache nur noch das Werkzeug - und das kann man bekanntlich wechseln, auch wenn es Übung verlangt.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Im Studium wirst du um C++ nicht herumkommen und da hat es eben andere Gründe, weil du mit C++ auch Maschinen ansteuern kannst. Meines Wissens ist es sogar eine Maschinensprache, wo C# eher objektorientiert ist.

Nach der Aussage würde ich verstehen, dass C++ NICHT objektorientiert ist, was aber falsch ist.

Ich befürchte auch, dass der Fragesteller hier C++ und ANSI-C etwas durcheinander bringt, oder einfach noch keinen ordentlichen C++ Code gesehen hat. Viel hängt ja selbst bei C++ vom verwendeten Framework ab. Gerade wenn der Fokus auf GUI-Programmierung liegt, verwendet ja wohl kaum mehr jemand pures C++. MFC sah da meiner Meinung nach trotzdem immer recht "dreckig" aus, Qt dagegen find ich eigentlich ganz ordentlich.

Um die ursprüngliche Frage aufzugreifen: Ich würde sagen, man muss C++ nicht unbedingt können, aber schaden wird es sicherlich nie. Je nachdem wie man den Fokus legt, habe ich sogar den Eindruck, dass man heutzutage mit Java sogar weiter kommt als mit C++ (gefühlter Eindruck, wenn man so Stellenanzeigen durchsieht).

Link zu diesem Kommentar
Auf anderen Seiten teilen

Okay, da ich es immer und immer wieder lese, und mir immer noch nichts drunter vorstellen kann...

Jeder sagt einem "Lerne programmieren, die Syntax ist dann nur noch wie Vokabeln lernen"

WIE lerne ich denn programmieren ._.

Wenn ich hiermit jetzt den Thread hacke kann ich auch gerne nen neuen aufmachen zu dem Thema ;)

Grüße

Daij

Link zu diesem Kommentar
Auf anderen Seiten teilen

WIE lerne ich denn programmieren ._.

Kann man so nicht verallgemeinern. Mein Weg:

Sprache ausgesucht (Delphi), dann über Geschichten wie Funktionen, Prozeduren, Klassen (OOP also), Interfaces gestolpert und mich informiert, was für Ideen dahinterstecken.

Und dann angefangen, über den Tellerand zu schauen. Wie wird das in anderen Sprachen gelöst, usw. usf.

Andere setzen sich vielleicht erst mit der Theorie auseinander und lesen beispielsweise Quelltexte im Pseudo-Code, ohne, dass dabei eine richtige Sprache dahintersteckt. Das muss jeder selbst entscheiden. Der für mich beste Weg war aber der oben skizzierte.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Sprache ausgesucht (Delphi), dann über Geschichten wie Funktionen, Prozeduren, Klassen (OOP also), Interfaces gestolpert und mich informiert, was für Ideen dahinterstecken.

Zum Einen finde ich, dass das so viel einfacher klingt, als es am Anfang ist und zum Andern hast du die richtigen Grundlagen übersprungen. Welche Datentypen gibt es? Was sind Variablen, wie deklariere ich sie und wie weise ich ihnen welchen Wert zu? Wie wandle ich einen Datentyp in einen anderen um? Dann kommen die arithmetischen Ausdrücke, was kann ich damit tun, was nicht? Weiter mit Verzweigungen, Schleifen und fiesen Verschachtelungen.

Das sollte erstmal die Baustelle am Anfang sein, egal ob C++, Java or whatever, danach können Konzepte von Klassen, Objekten, Vererbungen usw. kommen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Zum Einen finde ich, dass das so viel einfacher klingt, als es am Anfang ist und zum Andern hast du die richtigen Grundlagen übersprungen.

Nun ja, hätte ich alles aufgezählt (Variablendeklaration, -typen, wie rechnet ein Computer), wäre Daij vermutlich nie wiedergekommen. Mit "Sprache aussuchen" meinte ich genau das. Denn wenn ich mich für eine Sprache entschieden haben, kommen die Grundlagen von selbst. Zumindest war das bei mir der Fall, denn man muss sich zwangsläufig mit den Grundlagen beschäftigen. Und die Grundlagen kann man dann auf alle anderen Sprachen übertragen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Jeder sagt einem "Lerne programmieren, die Syntax ist dann nur noch wie Vokabeln lernen"

Naja, das ist vergleichbar mit Mathematik. Du lernst nicht Zahlen, du lernst auch nicht auswendig, dass 1 + 2 = 3, sondern du verstehst den Gedanken dahinter. Was ist eine Zahl, was tut das +...

Wenn du das verstanden hast, ist es völlig egal, ob du mit arabischen Zahlen, mit römischen Zahlen oder mit Buchstaben rechnest. Du kannst es einfach, auch wenn du mit den ungewohnten "Zahlen" anfangs vielleicht etwas langsamer bist.

WIE lerne ich denn programmieren ._.

Genau wie Rechnen. Such dir eine (einfache) Sprache aus und übe damit. Leg den Fokus dabei nicht auf "wie schreibe ich es hin", sondern auf "was passiert, wenn ich das so hinschreibe".

Link zu diesem Kommentar
Auf anderen Seiten teilen

Naja, das ist vergleichbar mit Mathematik. Du lernst nicht Zahlen, du lernst auch nicht auswendig, dass 1 + 2 = 3, sondern du verstehst den Gedanken dahinter. Was ist eine Zahl, was tut das +...

Das ist ja mal ein schöner Vergleich :uli

Such dir eine (einfache) Sprache aus und übe damit. Leg den Fokus dabei nicht auf "wie schreibe ich es hin", sondern auf "was passiert, wenn ich das so hinschreibe".

Bei allen Posts, habt ihr meiner Ansicht nach ein ganz wichtiges Stichwort vergessen: Algorithmen. Das "was" ist genau der Algorithmus.

Der zentrale Punkt ist ja eigentlich "ich habe ein Problem, z.B. ich möchte einen drehenden Würfel in 3D in einem Fenster darstellen". Dann wäre zunächst einmal die Frage welche Tools / Frameworks benutzt man z.B. OpenGL für die graphische Darstellung, dann braucht man ja noch eine GUI z.B. Qt (Alternativen wären Java3D und Swing). Dann braucht man noch etwas lineare Algebra (Rotationsmatrizen & Vektoren). Wenn man das alles hat überlegt man sich zuerst wie man man einen Würfel mit Hilfe von Vektoren beschreibt und dann wie man mit Hilfe der Rotationsmatrix eben Vektoren rotieren kann. Wobei man sich da auch wieder überlegen muss, wie man ein Matrix-Vektor-Produkt durchführt (teilweise können hier die Frameworks weiter helfen).

Man muss das Problem eben in so kleine Stücke zerlegen, dass man eben jedes Stück in einem Befehl übersetzen kann. Diese Befehle kann man dann je nach Programmierparadigma in größere Blöcke wie Funktionen & Klassen zusammen fassen und verwenden. Die Kunst des Programmieren besteht eben darin einmal effiziente und generalisierte Blöcke (d.h. Blöcke die man häufig wieder verwenden kann) zu erstellen. Man lernt das eben dadurch, dass man sich (auch ggf ältere) Programme anschaut und versucht diese immer effizienter zu machen.

Die Sprache ist dabei wirklich nur das Werkzeug, wobei man natürlich durchaus anhand der Problemstellung diese auswählen sollte. Wenn ich Backtracking machen will, dann würde ich eher Prolog nehmen, wenn ich Hardware programmiere dann C.

Ich bin inzwischen wieder zu C++, Matlab, R und Java gekommen. In Matlab (mit Kombination von Java) und R erstelle ich das Proof-of-Concept, da ich hier schnell Algorithmen testen und entwickeln kann ohne mich z.B. um mathematische Details kümmern zu müssen. Für die Realentwicklung arbeite ich mit C++, da die Performance ein absoluter Pluspunkt ist, sowie die Kompatibilität zu Bibliotheken und diversen OS (Unter Java kann man zwar auch mit Hilfe von JNI Libs einbinden, aber es ist nicht schön). Als GUI Framework setze ich auf Qt.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Und, bitte bitte, nicht vergessen: Probieren geht über studieren. Wie oft sehe ich in diversen Programmierforen Threads, wo ich einfach nur denke: "Leute, probierts aus und guckt, was passiert."

Und um nicht eines Tages einen GAU zu erleben, legt man sich ja Backups an... :hells:

Link zu diesem Kommentar
Auf anderen Seiten teilen

Und, bitte bitte, nicht vergessen: Probieren geht über studieren. Wie oft sehe ich in diversen Programmierforen Threads, wo ich einfach nur denke: "Leute, probierts aus und guckt, was passiert."

Und vor allem, wenn irgendwas nicht das tut, was man erwartet, rauszufinden, warum es das tut, was es tut, bringt oft große Erleuchtungen.

Was für ein Satz :D

Und um nicht eines Tages einen GAU zu erleben, legt man sich ja Backups an... :hells:

Oder gleich noch besser, ein Versionskontrollsystem, SourceSafe, SVN, GIT.... hat mir schon oft das Leben gerettet. :)

Edit: äh, ja, die Versionskontrollsysteme schützen zwar davor, sich versehentlich selbst in die Wüste zu programmieren. Die VKS selbst sollte man trotzdem noch backupen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

C++ wird erst bei Spielen ala NFS und BF gebraucht

C++ ist kein Muss mehr und das sage ich als jemand, der sowohl C# als C++ spricht. Also lerne erst mal Programmieren und dann setze dir Ziele, die du auch realisieren könntest.

Bearbeitet von Darth_Zeus
gekürzt by D_Z
Link zu diesem Kommentar
Auf anderen Seiten teilen

Guten Tag,

ich lerne derzeit Programmieren im 50:50 Verhältnis von C# und C++.

Ich möchte sowohl "normale" Anwendungen als auch Spiele programmieren. Fokus sollte die GUI-Programmierung sein.

Nun ist es so, dass ich C# stark bevorzuge. Während ich in der Sauberkeit von C# gerne auch mal programmiere(nicht nur zusammenklicke), gefällt mir dieser Pointerhaufen und "dreckige" Code von C++ ganz und garnicht. Andernseits wurde mir aber gesagt, ich solle C++ auf jeden Fall lernen.

Was ist denn nun wahr? Habe ich auch ohne C++, nur mit C#, Java und eventuell noch PHP und MySQL(flexibler) Chancen auf dem Arbeitsmarkt? Oder muss man heutzutage einfach C++ können und ist ohne kein richtiger Programmierer?

Um zur Information noch einmal zur Spieleprogrammierung zu kommen. Ich habe nicht vor, irgendwelche größeren Spiele zu programmieren. Das Limit würde sich bei Aufbauspielen wie Theme Hospital begrenzen. Hauptfokus wäre wie gesagt die Gui-Programmierung.

Liebe Grüße,

Dieser Artikel dürfte Dich interessieren: Online-Artikel

Im Studium wirst du um C++ nicht herumkommen

Im Studium hatte ich kein C++, man kommt also durchaus drum herum. Allerdings hatte ich C-Programmierung unter Unix und Linux.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich glaube der Autor dieses Posts hat mit NFS _N_eed _F_or _S_peed (das PC-Spiel) gemeint, nicht Network Filesystem... von daher hat er mMn schon recht.

Achne, und mit OpenGL programmiert man Network Filesystem... nachdenken, bevor du schreibst, ich meinte auch das PC-Spiel.

Link zu diesem Kommentar
Auf anderen Seiten teilen

@Ezra

man liest es aber so oft, dass die Leute C++ lernen. Die Informatikstudenten, welche ich bisher kennen gelernt hab, hatten fast alle C++ gelernt oder danach beruflich gearbeitet.

Java hat C++ als Lehrsprache schon seit einigen Jahren ziemlich stark zurückgedrängt. Bei uns wird auch nicht mit C++ gelehrt.

Artikel: Lehrsprache Nr. 1

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich sags mal so:

Wenn man als entwickler was auf sich hält, sollte man mindestens c++ UND java oder c# (die beiden ähneln sich eben sehr) gut bis sehr gut können, dazu natürlich noch so krams wie zB python etc. Eben eine mächtige scriptsprache. Die ganzen anderen basics (SQL etc) natürlich auch. Und selbstverständlich gute softwaretechnik-kenntnisse.

Jemanden mit weniger kenntnissen würd ich nicht als kollegen haben wollen.

Jemand der sich auf irgendwas spezialisiert, der macht in 20 jahren noch den gleichen job und hofft, dass das programm, das er betreut, noch eine weile im einsatz bleibt, damit ich nicht arbeitslos wird.

Link zu diesem Kommentar
Auf anderen Seiten teilen

um die Diskussion mal wieder auf ein vernünftigeres Niveau zu bringen:

Ich werde in meiner Berufsschule als blutiger Anfänger C# lernen dürfen. Ein Bekannter meinte, dass das das pendant zu Java sei.

Gibt es irgendwelche Benachteiligungen, wenn man mit C# und nicht mit C++/Java programmiert?

Bringt mir C# was bei meiner zukünftigen Arbeit mit RPG, ILE-RPG?

Welche Erweiterungen wären mit dem Wissen dieser Programmiersprachen möglich im Bezug auf Weiterbildung, Zukunftsbildung etc.

Vor 5-7 Jahren hat mal jemand im AS/400 Forum geschrieben, dass Java + RPG zukunftsweisend auf der AS/400 wären, gibts da neue erkenntnisse?

Dankeschön :)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Mal ganz davon abgesehen "Wenn man als Entwickler was auf sich hält" .... sollte man Programmieren können und nicht eine Programmierspache auswendig können!!!!!

Das ist der springende Punkt. Es kommt nicht auf die Sprache an, sondern die Sprache richtet sich nach der Problemstellung. Für manche Probleme nimmt man eben unterschiedliche Sprachen, d.h. unterschiedliche Paradigmen

Link zu diesem Kommentar
Auf anderen Seiten teilen

ich weiß ja nicht, aber ich könnte nicht so ohne weiteres von Java auf C# umsteigen. Das sind doch grundlegend andere Zugriffe, Arbeitsschritte und Anweisungen. Vorausgesetzt ich weiß, wie ich einen Taschenrechner programmiere ist es bei Java total anders, als in C#. Das kann man also nicht einfach mal so wechseln, wie Schuhe. Nach einer langen Eingewöhnungsphase evtl., aber so wie ihr das schreibt klingt das immer nach "sofort oder binnen weniger Tage".

(nehmt halt wieder das Beispiel auseinander.)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...