Ich möchte C++ programmieren anfangen?

...komplette Frage anzeigen

6 Antworten

Ich kann dir nur dazu raten, mit Java anzufangen, dann C zu lernen und erst anschließend C++. Am besten lernst du das alles mit Büchern, z. B. vom Rheinwerk-Verlag. Lass dir aber mach jeder Programmiersprache mindestens 1 Jahr Zeit, um reichlich Erfahrung zu sammeln, da Praxis wichtiger als Theorie ist.

Von etwaigen YouTube-Videos oder Online-Tutorials kann ich dir erfahrungsgemäß nur sehr stark abraten. Diese solltest du lediglich als Ergänzung zu den Büchern nutzen.

Statt Java kannst du natürlich auch C# lernen. Recherchier einfach mal, was zu deinen Vorhaben besser passt.

0

Verwende in dem Fall kein C++ sondern beschäftige dich mit C# und Unity.

C# ist C++ sehr ähnlich, aber du wirst du wirst sicherlich einige Zeit brauchen bis du die Sprache verstanden hast, suche im Internet nach beginner tutorials oder kauf dir die für Dummies Bücher, die gibts auch für Programmiersprachen und sind speziell für Einsteiger geschrieben.

Wenn du die grundlegende Sprachsyntax verstanden hast und das Konzept hinter OOP verstanden hast, beginn dich mit Unity zu spielen. Die Engine ist für private Zwecke gratis und es gibt dazu auch jede Menge tutorials wie man damit Animationen bzw spiele erstellt.

Was spricht gegen C++? Meiner Meinung nach ist C++ weit aus schöner zu programmieren als C#

0
@niki308

Das ist geschmackssache, ich finde die Speicherverwaltung bei C# einfach viel schöner als bei C++.

Bei reinem C++ also nicht C++/CLI erzeugt man sich mit dynamischer Speicherverwaltung schnell mal Memoryleaks, bei C# erledigt das meiste der Garbage Collector. Als Beispiel ist zB die verwendung von New zu nennen, wenn auf den Pointer nicht irgendwann free aufgerufen wird und der Pointer verloren geht hast du ein Memoryleak, im Fall von C# wird free implizit vom Garbage Collector aufgerufen.

Außerdem sind für meinen Geschmack die Libraries und Templates bei C# besser gelöst und übersichtlicher als bei C++. Ein weiterer großer Punkt sind fehleranfällige Pointer bei C++, einen einfachen Pointer überblickt man ja noch, wenns aber irgendwann zu dreifach Pointern werden, dann geht die Pointerarithmetik schnell mal nach hinten los, was bei C# einfach leichter zu implementieren ist.

Ebenfalls ein Vorteil, sind meiner Meinung nach die ersetzung von Funktionspointern durch Delegates. Im Prinzip ist hier das ganze Observer Pattern bereits intern durch die Delegates und Events abstrahiert und man muss sich selbst darum nicht mehr kümmern, weiters wird durch das Invoke System der Delegates bereits der threadübergreifende Zugriff teilweise synchronisiert und gesichert.

Zudem ist die Unity Engine auf C# ausgelegt und nicht C++ ausgelegt. Aufgrund der Tatsache, dass er Spiele programmieren will, wirds sicher besser gehen, wenn er eine weit verbreitete Engine nutzt, daher Unity und daher C#.

0

C++ ist nun wirklich nicht die Sprache, mit der man die ersten Erfahrungen im Programmieren sammeln sollte - die ist viel zu kompliziert.

Leider weiß ich nicht, wie "Simple Basic" von Microsoft ist - es soll für genau diesen Zweck entworfen worden sein. Wenn du zwei, drei Monate damit die ersten Erfahrungen gesammelt hast, dürfte die nächste Sprache dran sein. So was wie Visual Basic oder C#, auch wenn die immer noch zu viele Möglichkeiten für Anfänger bieten.

Außerdem würde ich Assembler empfehlen - was Pointer sind, habe ich hier gelernt, und hier kann man auch auf niedrigster Ebene wirklich verstehen, was passiert. Ohne das hätte ich nur sehr viel schwerer ein "Gefühl" für Pointer in C und abkömmlingen bekommen (und inzwischen das meiste auch wieder vergessen).

Ohne Pointer begriffen zu haben, würde ich nicht empfehlen, an C oder C++ heranzugehen.

Du rätst ihm davon ab C++ zu programmieren und schlägst ihm dann Assembler vor? Das ist so als würde jemand im Fitnessstudio 100kg Bankdrücken nicht schaffen und er soll es dann mit 500kg versuchen ^^

0
@niki308

Den Vergleich würde ich eher zwischen "100 kg Bankdrücken" und "1000 kg Auto schieben" ziehen.

Kann sein, dass ich hier sehr viel anders denke als andere, aber Pointer habe ich auf Prozessorebene sofort verstanden, im Gegensatz zu Pointern in "höheren" Programmiersprachen.

0

Wenn du C++ nicht verstehst solltest du dich erstmal an einer leichteren Sprache versuchen. Ich würde dir empfehlen mit Python anzufangen. Das ist eine sehr einsteigerfreundliche Programmiersprache mit der man unglaublich weit kommt. Mit Python kann man eigentlich alles Programmieren von einfachen Desktop Anwendungen über App und Websiten bis zu Spielen. (https://www.python.org/)

Ich empfehle Python für den Anfang gerne, da es auch eine einfache Syntax hat und man sich bei der Sprache vorerst auf das Programmieren an sich konzentrieren kann und nicht die ganze Zeit ans Klammern und Semikolon setzen denken muss.

Wenn du Python drauf hast kannst du dir gerne noch einmal C++ anschauen, ich glaube das wird dir dann leichter fallen.

Bevor du C++ anfangen möchtest kannst du dir auch noch einmal Java oder C# anschauen um Objekt Orientierte Programmierung zu lernen, wobei meiner Meinung nach Java keine wirkliche Zukunft haben wird.

LG Niklas

Spiele Programmieren ist so ziemlich das schwierigste was man sich vorstellen kann.

Arbeite doch vom leichten zum schweren: Mache C# mit MS Visual Studio. Da hast Du eine gute IDE und es gibt 1000 gute Kurse Online. (Java ist auch OK). C++ ist schon heftig wenn man überhaupt s keine Ahnung hat. Beginne Klassen zu lernen und zu verstehen. Vererbung und allgemeine Programmier-Logik. Dann bist Du halbwegs gerüstet ein erstes Programm zu schreiben - am besten was quelloffenes, GPL und auch was Leute brauchen können. Das dauert etwa 3-6 Monate. Melde dich dann wieder.

Viel Glück (Daumen Drück)

Anfänger sollten nie mit einer gut ausgestatteten IDE anfangen. Sie sollten sich am besten erstmal mit vim und den Compilern beschäftigen...

0
@niki308

Blödsinn. 

Die "Ich will doch kein Klicki Bunti" - Zeiten sind seit über 10 Jahren vorbei. 

Die werden nur noch bei der Roten Flora zelebriert ... gruselig :'|

0

Probiere zuerst Mal Python, mir der habe ich angefangen. Momentan bin ich an Java und HTML.

Was möchtest Du wissen?