C++ als Einsteiger lernen.

KAEPS133

Freizeitschrauber(in)
Hallo,

ich hab mich dazu entschlossen Programmieren lernen zu wollen. Ich würde gerne C++ lernen und später vll sogar Spiele oder Komplexere Programme zu schreiben. Wenn ich solange durchziehe.

Jetzt wollte ich von euch Wissen mit welchem Buch ich sowas gut, einfach und schnell lernen kann. Am liebsten hätte ich natürlich ein Buch das sich direkt auf Spieleprogrammieren bezieht.

Ich bin mir schon im klaren darüber das es nicht einfach wird und es schon ein schwerer Brocken wird. Deswegen frag ich euch nach einem Guten und einfachen Buch. Das solle natürlich möglichst nicht zu teuer sein, nicht das ich dann nach 100 Seiten aufhöre und ich dann ein 80€ Buch da liegen hab.

Dieses Buch hat mir auf den ersten Blick schonmal etwas zugesagt.

Bin auf Tipps von euch gespannt =)
 

Phil_5

Freizeitschrauber(in)
Ich habe recht gute Erfahrungen mit C# und XNA bezgl. Spieleprogrammierung gemacht.

Aber da du ja bei 0 anfängst, müsstest du erstmal so halbwegs mit c# klarkommen.
Ich würd da mal bei Galileo Computing :: Visual C# 2008 -- Das umfassende Handbuch anfangen zu lesen....

Wenn du das durch hast, hilft google recht gut für XNA weiter ;)

Info: XNA ist ein "Add-on" für c# welches recht einfach recht gutaussehende Spiele realisierbar macht.
 

Olstyle

Moderator
Teammitglied
Wenn du Spiele entwerfen willst solltest du dich eher mit dem Unreal 3 und Steam SDK(beides Freeware für nicht kommerziellen Gebrauch) befassen als C++ zu lernen.
So oder so finde ich dein Anliegen aber doch recht übermütig. Man lernt nicht mal eben so ein Spiel zu programmieren.

Das Buch was du da verlinkt hast befasst sich übrigens mit C# und nicht mit C++, das bringt dich also schon mal nicht weiter ;) .
 
TE
TE
KAEPS133

KAEPS133

Freizeitschrauber(in)
Das das übermütig ist weiß ich und hab ich ja auch geschrieben. Aber ich will es zumindest mal versuchen.

Ich will einfach eure Tipps haben wie ich am besten Vorgehe.
Mit dem Source SDK komme ich ansich recht gut zurecht. Aber ich würde auch so gerne noch Programme schreiben können. Grundsätzlich erstmal das Wissen in Richtung der Programmierung erweitern.
 

JOJO

Freizeitschrauber(in)
Ist schon richtig wie Du es machst. Komplexe Programme zu benutzen ist nicht immer der richtige Weg. C++ ist der richtige Anfang. Nichts spricht dagegen, wenn man zuerst mal mit einer einfachen Sprache anfängt. Wenn C++ verinnerlicht ist, versteht man auch höhere Programmiersprachen einfacher. Ich habe im Studium noch Assembler erlernen müssen, also die Sprache die direkt an der CPU verarbeitet wird. Alles was danach kam, war dann schon einfacher für mich.

Eine Buchempfehlung kann ich Dir leider nicht geben, da C++ nicht mein Resort ist...
 

Olstyle

Moderator
Teammitglied
Was den generellen Programmiereinstieg an geht finde ich die Ansicht von meinem Info Lehrer in der Schule und von meinem Prof in der Uni recht einleuchtend:
Erst mal mit Java anfangen und vernünftiges Objektorientiertes programmieren lernen. C(in welcher Form auch immer)lesen kann man danach auch und die Unterschiede und damit das Programmieren dort lernt man anschließend auch recht schnell.

Einen Fred zu passenden Büchern gibt es da auch schon:
http://extreme.pcgameshardware.de/p...834-ultimatives-java-buch-fuer-anfaenger.html
 

JOJO

Freizeitschrauber(in)
Will dir da ja nicht unbedingt widersprechen. Doch was Dozent und Prof immer raushauen ist auch nicht der Wahrheit letzter Schluss...

BASIC wäre eine mit der einfachsten Sprachen, es geht nicht grundsätzlich erst einmal um objektorientierte Programmierung!

Es geht vielmehr erst einmal darum zu verstehen, was ich mit entsprechenden Befehlen und Routinen erreichen kann!

Wenn man ganz unten anfängt, wäre es schon wichtig zu wissen, was ein PAP (Programm Ablauf Plan) ist, wie man ihn erstellt und in entsprechenden Programmiersprachen umsetzt!

Der Unterschied zwischen einem guten und schlechten Programmierer ist, dass der "Gute" fundamentales Wissen über Soft- und Hardware hat, also weis was er mit seiner Programmierung bewirkt. Der "Schlechte" wird immer an der Oberfläche mit fertigen Modulen anderer Programmierer experimentieren...
 

nahkillo94

PC-Selbstbauer(in)
Also ich hab auch erst vor einem Jahr angefangen mit C++ zu programmieren, und ich komme recht gut zurecht! Also ich kann Jojo nur recht geben! Man sollte sich erstmal am PC auskennen. Wissen für was jedes Teil da ist und grob verstehen wie es funktioniert.

Dann lernst du eine Programmiersprache. Im Eigenstudium mit Buch nicht leicht, aber mit viel ehrgeiz schaffbar. Achja setzt deine Ansprüche nicht zu hoch! Ein Spiel ist ein sehr sehr komplexes Projekt. Dazu braucht man jahrelange Erfahrung in einer OOP (zum verständniss: objekt orientierte Programmiersprache), in der DirectX-SDK und man muss sich in eine Engine einarbeiten.
Erstmal klein anfangen und traditionell ein HELLOWORLD-Programm erstellen. Dann einen Taschenrechner bis hin zum ersten 2D-Spiel.

Ich persönlich halte nix davon gleich mit SDK's wie Unreal oder Source anzufangen und erst recht nichts von XNA! Aber muss jeder selbst Wissen.

Ich kann dir dieses Buch sehr empfehlen:
Einstieg in C++: Amazon.de: Arnold Willemer: Bücher

Hab ich auch und komme sehr gut zurecht damit. Ich hoffe ich konnte dir helfen!
 

rabit

BIOS-Overclocker(in)
Also ich hab auch erst vor einem Jahr angefangen mit C++ zu programmieren, und ich komme recht gut zurecht! Also ich kann Jojo nur recht geben! Man sollte sich erstmal am PC auskennen. Wissen für was jedes Teil da ist und grob verstehen wie es funktioniert.

Dann lernst du eine Programmiersprache. Im Eigenstudium mit Buch nicht leicht, aber mit viel ehrgeiz schaffbar. Achja setzt deine Ansprüche nicht zu hoch! Ein Spiel ist ein sehr sehr komplexes Projekt. Dazu braucht man jahrelange Erfahrung in einer OOP (zum verständniss: objekt orientierte Programmiersprache), in der DirectX-SDK und man muss sich in eine Engine einarbeiten.
Erstmal klein anfangen und traditionell ein HELLOWORLD-Programm erstellen. Dann einen Taschenrechner bis hin zum ersten 2D-Spiel.

Ich persönlich halte nix davon gleich mit SDK's wie Unreal oder Source anzufangen und erst recht nichts von XNA! Aber muss jeder selbst Wissen.
Ich ziehe mein Hut vor dir, ein Beitrag der ehrlich mal das trifft worauf es ankommt.
Komisch das in unserem Studium die Elektrotechniker und die It.ler Assambler lernen mussten.
Die Mathematik nicht zu vergessen.

Also unser Prof hat gesagt das ein guter Programierer nicht an Assambler vorbeikommt.
Und die, die direkt mit Hochsprachen anfangen kennen nicht den kürzesten weg zum Ziel.
Im übertragenem Sinn sind diese Leute, keine die in der Großfertigung anfangen können weil die immer einen grösseren Speicherbereich nutzen werden als nötig und nie Zeitkritisch programieren können.
Fazit es entstehen unnötig Kosten für Hw mit grösserem Speicherbereich.
Ich bin froh das ich Assambler kann. (halbwegs)
Und wer Assambler kann, kann andere Hochsprachen mit Leichtigkeit beherschen umgekehrt wird es zu kompliziert, da die an Comfort gewohnt sind mit den Bibliotheken die man im Assambler in der Form nicht hat.
Ist das hier ein Uni Forum sind ja nur studierende oder Ings am Werk^^
Ich gehe wieder Studieren um einige Profs mal zu hören brauche wenigstens nicht in eine Comedyshow zu gehen:lol::lol::lol::lol:
Sofort mit Hightec anfangen.
Aber nicht die Grundlagen und die Architektur verstehen oh man o man
Als Erweiterung und aufbauend ist c und java echt unschlagbar kann Assambler nicht bieten zumindest nicht so überschaubar und so schnell zu programieren.
 
Zuletzt bearbeitet:

Olstyle

Moderator
Teammitglied
Architektur verstehen und Assembler programmieren(ich persönlich kann das übrigens durchaus etwas) sind zwei paar Schuhe. Die Grundlagen zu Hardware und Betriebssystem sollte man natürlich trotzdem kennen, aber das habe ich ja auch nie ausgeschlossen. ;)

Mein Prof an der Uni ist übrigens der Spezi für Embedded Systeme und Echtzeitprogrammierung, also sicher keiner der nichts mit Effizienz am Hut hat.
Nur ist es halt leichter jemandem zuerst Objektorientierung(und da ist Java nun mal Referenz da sie wie keine andere Sprache ausschließlich dazu zwingt) bei zu bringen und dann andere Programmiersprachen hinzu zu nehmen als ihn erst mal mit Bandwurmcode anfangen zu lassen um es ihm kurz darauf wieder aus zu treiben.
 

rabit

BIOS-Overclocker(in)
Ich meine nicht deinen Prof.;)
Und Profs sind auch für mich keine Referenz.:what:
Ich finde Programmierung und Architektur sind unzertrennlich.
Schliesslich programierst Du es.
Gibt bestimmt welche denen man Jahrelang gerne zuhört und bei denen man lernt..:schief:
Aber back to Topic.
Ich vergleiche das mal plastisch:
Um Formel 1 fahren zu können sollte man erstmal Karts oder normale Autos fahren können und nicht sich als unerfahrener mit 14 auf einem Lamborghini setzen und versuchen auf den Nürburgring Bestzzeiten zu fahren.
(Welche Reifen bei welchem Wetter, Fahrwerksanpassung zu seinem Fahrstil....etc.
(Ausnahmen gibt es immer)
Er soll froh sein wenn er den Wagen unbeschadet über die Ziellinie bringt.
Später wenn die HW bei seiner Programierung nicht das macht was er möchte, wie soll er Fehlersuche betreiben?
Wie soll er effizient proggen wenn er nicht weis wie und warum gestackt wird oder ein Pointer gesetzt wird oder ein Interrupt......
Oder er etwas von einer Bibliothek modifizieren möchte weil er nicht alle Bibliotheken kennt?
Oder womit soll er sein persönliches Bibliothek erweitern wenn er noch nichtmal und oder verknüpfungen kennt oder setzen und rücksetzen.....
Sofort mit iwie Engines arbeiten finde ich für eien Anfänger to much.
 
Zuletzt bearbeitet:

Olstyle

Moderator
Teammitglied
Um Formel 1 fahren zu können sollte man erstmal Karts oder normale Autos fahren können und nicht sich als unerfahrener mit 14 auf einem Lamborghini auf den Nürburgring Bestzzeiten zu fahren.
Er soll froh sein wenn er den Wagen unbeschadet in die Ziellinie bringt.
Was auch bis jetzt jeder hier geschrieben hat. ;)

Aber um in deinem Bild zu bleiben:
Natürlich sollte man mit dem Kart anfangen, aber den Motor von selbigem muss man nicht auch noch selbst bauen. ;)
 

rabit

BIOS-Overclocker(in)
Wenn du Spiele entwerfen willst solltest du dich eher mit dem Unreal 3 und Steam SDK(beides Freeware für nicht kommerziellen Gebrauch) befassen als C++ zu lernen.
.
C++ ist schon eine sehr weit oben angesiedelte Hochsprache.
Unreal und Steam ist wieder noch spezieller.
Hm ist bestimmt machbar.
Kann ur sagen alle im Studium ob Elko, It alle mussten durch Assambler jedem das seine.
Zum Abschluss: Wir wollen ihm ja alle helfen.....
 

nahkillo94

PC-Selbstbauer(in)
wow! wusste ich gar nicht, dass heute noch assembler gelernt wird, wo wir doch im zeitalter von c++ und co. leben! kann man sich das selbst beibringen oder geht das nur im studium??
 

rabit

BIOS-Overclocker(in)
Nein man kann ohne weiteres c, Monster c, C++ und was es da noch alles gibt ohne Assambler lernen.
Aber es wird oft Assambler für Mikrokontroler eingesetzt Gründe siehe in den Vorposts.;)
 

nahkillo94

PC-Selbstbauer(in)
is klar! Hab mir grad mal nen HelloWorld Quellcode angeguckt! Das is ja echt nen harter Brocken!! Bis man das flüssig drauf hat dauerts ne Weile, könnt ich mir denken! Aber ich hab keine Zeit dafür! erstmal nen ordentliches Abi!

Ob die Programmierer bei MS das können??
 

DMA

Komplett-PC-Käufer(in)
Was, Helloworldprogramme können die MS sicher. [/ironie]

Nein, aber die meisten Spiele werden heute auf irgendwelchen gekauften Engines gemacht.
Als Programmierer für Spiele muß man sich nur selten an das "Hardcoden" machen.
Die meiste Zeit scriptet man etwas für eine Engine.

Außer man wird natürlich Engine programmierer, aber ich glaub als Hobby würde das eh zuweit gehen.

Blitz Basic wäre evt. noch ein einfacher und gut dokumentierter Einstieg.
René Meyer hat da einig egute Bücher verfasst, vllt soltest du dir mal etwas in die Richtung ansehen.
 

dot

BIOS-Overclocker(in)
Ob man jetzt hier einem Interessierten der ein wenig programmieren moechte mit Assembler abschrecken muss, halte ich fuer zweifelhaft. Das mag ja ziemlich sinnvoll sein, wenn man vorallem hardwarenah (z.B. bei µC) basteln muss, aber ansonsten ist es doch einfach nur umstaendlich.
 
Oben Unten