C++ lernen

  • Thread-Ersteller Thread-Ersteller Evili
  • Erstellungsdatum Erstellungsdatum

Evili

L13: Maniac
Thread-Ersteller
Seit
14 Aug 2005
Beiträge
4.321
Hallo,

Ich will mal endlich eine Programmiersprache erlernen, ich hab mich für C++ entschieden...

- Wo kann ich das erlernen? Gibt es zB eine Website, ein Programm dafür?

- Braucht man zum Programmieren wiederum auch ein Programm (ausser Editor)?

Das wären mal die ersten Fragen... Vielen Dank für alle Antworten!
 
Ich hab irgendwo ein Script. Kanns dir per mail schicken.

Du brauchst außerdem nen Compiler, wie Borland C oder Dev C++, was ich dir auch schicken könnte. :)
 
Oh, das wäre sehr nett!

Du könntest die beiden Sachen mir per ICQ senden... Hoffentlich macht hier mein Trillian mit xD
 
Hätte es gerade per Mail geschickt, doch dann kam ne Fehlermeldung, dass du keine so großen daten empfangen kannst. :-?
Waren 13MB
 
Pit kennt sich damit aus. Er hat mir als ich anfangen wollte das hier empfohlen: Klick
Da ist alles drin was du zum Programmieren brauchst. Es ist gut geschrieben und ist auch für Anfänger perfekt geeignet. :)
Ich habe allerdings aufgehört, wegen mangelnder Zeit.
 
Ich würde dir zum Einstieg eher Java empfehlen. Damit erziehlt man auch sehr schnell erste Ergebnisse.
Außerdem gibt es dazu ein klasse Onlinebuch: "Java ist auch eine Insel"
Hier klicken
 
also für einsteiger kann ich C# inkl. XNA absolut empfehlen !
noch nie war Spieleprogramierung in einer höheren Programmiersprache so einfach !

Zudem sind alle Entwicklungswerkzeuge gratis von MS downloadbar - man muss nur ein Orginal Windows besitzen.

http://www.microsoft.com/xna

-> einfach alles von den Top Downloads downen, installieren - und loslegen ;)

Zudem sind die MS Tutorial sowie Foren, wie auch die externen Links (ebenfalls auf der xna site) ideal für jeden Einsteiger.

imo schlägt xna schon jetzt wie ne bombe ein !
ms hat sich mit dieser agressiven strategie programmierer anzuziehen einen grossen gefallen getan.

Ich bin jedenfalls absolut begeistert von XNA - und hab (als ich es testete) trotz extremer bekifftheit (lol) und müdigkeit innerhalb von ner halben stunde ein kleines programm geschrieben, welches sprites bewegt, ne kleine kollisionsabfrage drinn hat und den XBox360 kontroller abfrägt, sowie zum rütteln bringt :)
(wobei ich aber natürlich schon erfahrung mit c++ und directx habe...)

/me hat ms jedenfalls mit xna gefangen 8-)
 
C++ ist eine sehr gute Wahl. C# gefällt mir persönlich gar nicht, ausserdem ist C/C++ noch immer Standard in der Spieleentwicklung. Das XNA würde ich aber keinesfalls ins Visier nehmen, da bist Du zu schnell demotiviert. Erst C++ mit Textausgabe, dann vielleicht 2D mit der SDL oder Allegro und dann 3D mit OpenGL oder DirectX. Das ist meiner Meinung nach der beste Weg.
Am einfachsten ist es dir erst mal ein Buch zu besorgen. Wie bongosmasher schon sagte, dieses ist ganz gut. Da hast Du auch schon einen Compiler dabei, allerdings darfst Du die damit erstellten Programme nicht weitergeben. Mein Compiler-Favorit ist Dev-C++. Den Neuen von Microsoft gibts glaub ich in der Express Version noch für kurze Zeit kostenlos.
Dann noch ein paar gute Seiten:
www.developia.de
www.spieleprogrammierer.de
www.robsite.de
www.gamedev.net
www.devmaster.net
Die fallen mir mal spontan ein.

Und wenn Du eine Sprache willst, die sehr einfach zu erlernen ist aber schwer um damit etwas Grosses anzufangen: Brainfuck
 
Pit schrieb:
Das XNA würde ich aber keinesfalls ins Visier nehmen, da bist Du zu schnell demotiviert. Erst C++ mit Textausgabe, dann vielleicht 2D mit der SDL oder Allegro und dann 3D mit OpenGL oder DirectX. Das ist meiner Meinung nach der beste Weg.
hmmm also imo is das n absolut unnötiger umweg.

xna is dermassen einfach, dass auch ein anfänger sich sehr schnell mal kleine 2d spielchen zusammenbasteln kann, resp. zumindest mal 2d zeugs auf den bildschirm kriegt und transformieren kann.

einen umweg - vorallem noch über die textausgabe bringt imo rein gar nix.
da kann kommen wer will: ich sage, wer eigene kleine spielchen programmieren lernen will ist mit xna klar am besten bedient (wenns denn eine sprache sein soll die auf c basiert).
und demotivierend isses schonmal gar nicht ! - soviel spass hat programmieren noch nie gemacht !

klar.. wenns nicht c++ oder c# sein soll gibts ja noch x andere programmiersprachen die man nutzen könnte.

ich hab mir aus interesse z.b. mal dieses blitzbasic zeugs angeschaut - das is ebenfalls sehr nett für leute die sich nicht mit c++ oder c# durchschlagen wollen.
auch da hat man innerhalb von kurzer zeit ein eigenes kleines spielchen - und is eigentlich, um grundsätzlich mal ins programmierer-denken zu kommen gar nicht mal so schlecht.
(hab damit innerhalb von 2 tagen nen kleinen, natürlich noch sehr unausgereiften, aber funktionierenden gradius klon gebastelt)

aber eben... wer für windows was programmieren will, kommt imo an xna kaum vorbei.
/me is innerhalb von kürzester zeit zum xna fan mutiert :)
 
Ich hab mir das XNA zwar noch nicht genau angesehn, doch wie willst Du ein Spiel programmieren wenn Du nichtmal weisst wie z.b. eine while funktioniert? Jeder fängt mit der Textausgabe an. Ich kenne kein einziges Tutorial oder Buch für Anfänger, das gleich mit der Grafikausgabe beginnt. Die beginnen alle mit dem Hello world und jedes Buch oder Tutorial das sich mit Grafikausgabe beschäftigt hat den Hinweis, dass man bereits Kenntnisse in einer Sprache haben muss. Ausserdem ist es wohl besser allgemein die Sprache zu lernen anstatt sich bereits von Anfang an auf etwas spezifisches (XNA) zu konzentrieren. Sowas ist eine nette Spielerei für XBox Fans die bereits Ahnung von Spieleentwicklung haben.
 
Pit schrieb:
Ich hab mir das XNA zwar noch nicht genau angesehn, doch wie willst Du ein Spiel programmieren wenn Du nichtmal weisst wie z.b. eine while funktioniert?
naja, klar braucht es zeit bis ein anfänger mal in das programmieren reingefunden hat.
aber warum sollte man sich gleich beschränken - textausgabe, schlaufen, abfragen usw. kann man geradesogut im xna umfeld lernen, zumal man ja zum start eines programmes gleich das framework geliefert bekommt.

d.h. der ganze dx init prozess wird von xna übernommen und man kann ohne umwege direkt anfangen auf den bildschirm zu zeichnen oder eben irgenwelche inputs abzufangen.

und eben weils so einfach is, isses auch für anfänger super geeignet.
(ganz im gegensatz zu dx programmierung, welche ich keinem anfänger empfehlen würde)

Pit schrieb:
Jeder fängt mit der Textausgabe an.
so auch ich... aber damals hats halt noch nix anderes gegeben :)

Pit schrieb:
Ich kenne kein einziges Tutorial oder Buch für Anfänger, das gleich mit der Grafikausgabe beginnt. Die beginnen alle mit dem Hello world und jedes Buch oder Tutorial das sich mit Grafikausgabe beschäftigt hat den Hinweis, dass man bereits Kenntnisse in einer Sprache haben muss.
nun, das is halt so weils bisher nicht anders möglich war.
mit xna hat isch das grundlegend geändert.
nun kann ein anfänger seine ersten hello world schritte direkt im xna framework unternehmen.

Pit schrieb:
Ausserdem ist es wohl besser allgemein die Sprache zu lernen anstatt sich bereits von Anfang an auf etwas spezifisches (XNA) zu konzentrieren. Sowas ist eine nette Spielerei für XBox Fans die bereits Ahnung von Spieleentwicklung haben.
xna is nicht nur für die xbox entwicklung sondern natürlich auch für die pc spiele entwicklung.
(zudem is die programmiersprache ja ned xna sondern c# - xna is ja "nur" ein etwas erweitertes sdk)

und eben: durch das, dass einem vom xna framework schon viel arbeit abgenommen wird, und der programmierer sich somit auf das grundlegende konzentrieren kann isses eben auch so gut für anfänger geeignet.
klar kommt man an tutorials und referenzen nicht vorbei, aber imo kann man ebensogut gleich direkt mit xna beginnen statt sich zuerst mit kommandozeilenprogs auseinanderzusetzen.

am besten schaust du dir xna selbst mal n bisschen an und machst mal n kleines versuchsprogrämmchen - es wird gefallen, das kann ich fast garantieren ;)
 
XNA werd ich mir ziemlich sicher nicht ansehen, sowas gefällt mir nicht. Es ist halt der übliche Meinungsunterschied. Der Eine will, dass ihm das Framework die unnötige Arbeit abnimmt und der andere will lieber genau wissen was abläuft. Ich halte es für besser als Anfänger zu wissen, was genau man da programmiert. Es bringt einem nichts wenn man weiss, dass die Hauptschleife in einer while liegen soll, man muss verstehen warum das so ist (ich weiss ganz doofes Beispiel doch mir ist nichts besseres eingefallen).
Wenn man eine Sprache mit etwas wie dem XNA lernt, dann wird das einfach zu einer Art Standard und es ist vielleicht nicht ganz einfach später auf etwas anderes umzusteigen. Wenn man aber wirklich die Grundlagen der Sprache beherrst und sich Stück für Stück weiterarbeitet, dann hat man das volle Wissen und nachher die ganze Auswahl an API's und Engines.

Und überhaupt, warum sollte man die Textspielchen überspringen? Ich programmiere auch heute noch ganz gerne zwischendurch mal etwas in der Konsole. Da hat man einfach die schnellsten Erfolge und die Steigerung ist am grössten. Bei einem Grafikspiel läuft das Ganze wesentlich langsamer und somit gerät auch die Motivation in Gefahr.
Ich halte es für das Beste, am Anfang nur die Befehle der jeweiligen Sprache zu sehen anstatt auch schon den ganzen Frameworkkram. Doch das muss wohl jeder für sich selbst entscheiden.
 
Pit schrieb:
XNA werd ich mir ziemlich sicher nicht ansehen, sowas gefällt mir nicht. Es ist halt der übliche Meinungsunterschied. Der Eine will, dass ihm das Framework die unnötige Arbeit abnimmt und der andere will lieber genau wissen was abläuft.
nun wenn du genau wissen willst, was abläuft kannst ja den source code anschauen, nur brauchts dafür natürlich die entsprechenden kenntnisse um da durchzublicken.
(und wem das auch ned passt, kann auf das framework ja ganz verzichten und alles selbst machen und dabei das xna sdk benutzen - man is ja ned gezwungen den code zu nutzen den ms generiert)
zudem is xna ja nicht sowas wie der mfc assistent - ganz und gar nicht !

ich bin früher auch mal der meinung gewesen lieber alles selbst zu machen - aber warum soll man das gleiche immer und immerwieder programmieren ?
ne - da nütz ich lieber gleich mal n kleines framework das mir die ganze init geschichte abnimmt.

zudem sind die tutorials zu xna wirklich ideal für programmieranfänger geeignet.

Pit schrieb:
Ich halte es für besser als Anfänger zu wissen, was genau man da programmiert.
du weisst ja genau was du programmierst.
erstellst du ein xna programm und startest es nur mit dem framework kriegst nix anderes als ein leeres fenster.

Pit schrieb:
Es bringt einem nichts wenn man weiss, dass die Hauptschleife in einer while liegen soll, man muss verstehen warum das so ist (ich weiss ganz doofes Beispiel doch mir ist nichts besseres eingefallen).
naja... das sind sowiso grundsätzliche dinge die man lernen muss.
ob das nun mit einem kommandozeilen prog oder xna gemacht wird is grundsätzlich egal.

Pit schrieb:
Wenn man eine Sprache mit etwas wie dem XNA lernt, dann wird das einfach zu einer Art Standard und es ist vielleicht nicht ganz einfach später auf etwas anderes umzusteigen.
wer mit xna anfängt und reinfindet wird garantiert keine probleme haben sich auch in c++ oder java zurechtzufinden.

Pit schrieb:
Wenn man aber wirklich die Grundlagen der Sprache beherrst und sich Stück für Stück weiterarbeitet, dann hat man das volle Wissen und nachher die ganze Auswahl an API's und Engines.
ob du die grundlagen nun mit xna (resp. c#) lernst oder mit c oder mit c++ oder mit java spielt imo keine grosse rolle.
nur ists in xna imo motivierender, da man schnell mal was hat, das nach etwas aussieht.

Pit schrieb:
Und überhaupt, warum sollte man die Textspielchen überspringen? Ich programmiere auch heute noch ganz gerne zwischendurch mal etwas in der Konsole. Da hat man einfach die schnellsten Erfolge und die Steigerung ist am grössten.
klar.. so n textspielchen is einfach zu machen, aber warum soll man sich dadrauf beschränken, wenn man mit minimalen aufwand mehr schon ein 2d programm basteln kann ?
imo is das ein unnötiger schritt.

Pit schrieb:
Bei einem Grafikspiel läuft das Ganze wesentlich langsamer und somit gerät auch die Motivation in Gefahr.
nicht so mit xna ;)
ja - ich hab mich mit c++ und directx richtiggehend gequält was grafisches auf die beine zu stellen.
mit xna isses aber ne freude zu programmieren - das hat nix mehr mit dem alten komplizierten framebuffer gebastel zu tun.

Pit schrieb:
Ich halte es für das Beste, am Anfang nur die Befehle der jeweiligen Sprache zu sehen anstatt auch schon den ganzen Frameworkkram. Doch das muss wohl jeder für sich selbst entscheiden.
das is so... schlussendlich muss jeder selbst entscheiden wie er in ne programmiersprache reinkommen will.

imo is aber, wer mal eigene kleine 2d oder 3d spielchen machen möchte mit xna momentan klar am besten bedient.
 
So, das wird jetzt mein letzter Beitrag zu diesem Thema da ich mich eh nur wiederhole und ansonsten das hier noch zu einem XNA Thread wird. Die Entscheidung wird letztendlich sowieso bei PresidentEvil liegen.

Erstens wollte er ja C++ lernen, XNA ist C#. Einige bevorzugen vielleicht Letzteres, doch in der Spieleentwicklung ist (und wird wahrscheinlich bleiben) C/C++ der Standard. Ich persönlich mag C# überhaupt nicht. Die meisten Programmierer benutzen C/C++, die meisten Tutorials sind in C/C++ und ich glaube die meisten API's und Engines sind auch in C/C++ geschrieben.

Ausserdem scheint es, so wie Du das beschreibst, schon fast zu einfach zu sein. Beim Programmieren gehts doch um die Herausforderung, das Gefühl endlich etwas verstanden und geschafft zu haben. Einem Programmierer gehts doch eh nur darum seine Fähigkeiten unter Beweis zu stellen. Wenn ich den ganzen Brei auf dem Löffel serviert bekommen will, dann benutze ich GameStudio. Will ich mir beweisen, dass ich etwas kann, dann springe ich ins kalte Wasser. Das heisst jetzt natürlich nicht, dass ich XNA für einfacher als C++ halte, sondern einfach nur dass man es mit dem XNA zu einfach gemacht bekommt. Die meiste Erfahrung sammelt man doch, wenn man es endlich schafft im Internet die Erklärung zu finden, die man sucht. Es dann auch noch zu verstehen und sich Stück für Stück weiterarbeitet. Und am Ende ist man stolz auf das, was man geschafft hat und nimmt das nächste Ziel ins Visier.

Und wenn man erstmal C++ kann und etwas Erfahrung mit API's hat, dann kann man den Umgang mit einer weiteren Sprache, API oder dem XNA innerhalb von kurzer Zeit lernen. Beim XNA hat man vielleicht eher eine Grafik über den Bildschirm bewegt, doch dann wird der Berg wohl recht steil. Beim klassischen Weg dauert es vielleicht etwas länger bis man ein Sprite steuert, dafür ist der Weg nicht so steil und man kommt auf einem höheren Gipfel an.

Man braucht einfach ein Gefühl für die Sprache und das kommt mit der Erfahrung. Wenn man nach zwei Tagen ein Sprite bewegen kann, dann denkt man sich wohl dass man auch gleich 3D Spiele entwicklen kann. Doch auch wenn einem das Framework vielleicht ermöglicht, wenn die Grundlagen fehlen und man nicht weiss wie man an ein Problem rangeht und es löst, dann schaut man ziemlich blöd wenns um irgendein kleines Problem geht, wofür man einfach eine Denkweise braucht, die man erst mit der Erfahrung bekommt.
 
PresidentEvil schrieb:
- Braucht man zum Programmieren wiederum auch ein Programm (ausser Editor)?
Ich empfehle dir einen normalen Texteditor mit Syntaxhighlighting und mingw (wenn du Windows hast).
Es gibt auch IDEs, die automatisch deinen Quelltext vervollständigen, das ist aber imho eher kontraproduktiv, weil man sich dann oft nur das merkt, was man braucht und das was die IDE schreibt dann nicht.
Wie das mit Dev-C++ (ist eine IDE) ist weiß ich nicht. Damit lässt sich aber unter Windows ziemlich gut arbeiten.

Und bitte erwarte am Anfang nicht zu viel. Um (Grafik-)Spiele programmieren zu können braucht man schon ziemlich viel Ahnung. Auch normale grafische Windows-Programme sind komplizierter, als man es sich vielleicht vorstellt. ;)

Bücher usw. kann ich dir nicht empfehlen, weil ich keine kenne.
 
tu dir doch bitte nicht als allererste Sprache gleich C++ an! Ich würd an deiner Stelle mit einsteigerfreundlicheren Sprachen beginnen (um überhaupt in die Denkweise des Programmierens einzusteigen) bevor du dir so eine Monstrumsprache wie C++ antust.

Empfehlungen:

- Python - http://de.wikipedia.org/wiki/Python_(Programmiersprache)
- Ruby - http://de.wikipedia.org/wiki/Ruby_(Programmiersprache)
 
Warum wird C++ eigentlich immer als die grosse, schwere, anfängerfeindliche Sprache angesehn? Ich wollte es auch zuerst mit C versuchen und dann auf C++ umsteigen. Da mein C Buch aber, entegen dem Titel und der Beschreibung, überhaupt nicht anfängergeeignet war, hab ich dann gleich C++ genommen. Und ich hatte keine Probleme, dass es irgendwie schwerer sei. Die Grundlagen sind die Gleichen, das was etwas schwerer ist (Pointer, Klassen,...) muss man am Anfang ja nicht benutzen. Den Umweg über eine "leichtere" Sprache halte ich eher für überflüssig. überhaupt finde ich, dass C++ viel übersichtlicher und einfacher aussieht als z.b. Delphi (welches ja auch als leichter angesehn wird).

Und zur IDE: Im Dev-C++ kann man genau einstellen, ob der Editor einem Wörter vervollständigen soll, welche Farbe für was benutzt wird, usw. Compiler ist MinGW. Ich bin jedenfalls ganz zufrieden damit. Ist für Anfänger wahrscheinlich auch leichter zu benutzen, als ein separater Editor mit MinGW (Kommandozeilenbefehle und so). Ausserdem lassen sich Libs wie SDL, OpenAL,... ganz leicht mit Paketen installieren.
 
Pit schrieb:
Warum wird C++ eigentlich immer als die grosse, schwere, anfängerfeindliche Sprache angesehn? Ich wollte es auch zuerst mit C versuchen und dann auf C++ umsteigen. Da mein C Buch aber, entegen dem Titel und der Beschreibung, überhaupt nicht anfängergeeignet war, hab ich dann gleich C++ genommen. Und ich hatte keine Probleme, dass es irgendwie schwerer sei. Die Grundlagen sind die Gleichen, das was etwas schwerer ist (Pointer, Klassen,...) muss man am Anfang ja nicht benutzen. Den Umweg über eine "leichtere" Sprache halte ich eher für überflüssig. überhaupt finde ich, dass C++ viel übersichtlicher und einfacher aussieht als z.b. Delphi (welches ja auch als leichter angesehn wird).

weil man mit vorhin erwähnten Sprachen Python und Ruby relativ schnell Erfolge verbuchen kann. Man muss sich nicht um Datentypen, auf das Einhalten der besonders strikten Syntax (oder eben deine erwähnten anfänglichen Probleme: Klassen, Pointer) kümmern. Sicherlich muss man das später wenn man auf C++ umsteigen möchte nachlernen, aber man wird nicht vom ersten Moment mit technischen Kleinkram konfrontiert. Deshalb:

besser mit einer Skriptsprache programmieren lernen (und als netten Nebeneffekt auch die Programmiersprache selbst) und später (wenn dann noch nötig) auf mächtigere Sprachen wie C++ umsteigen
 
Ich brauche keine Spiele zu programmieren... Nur so simple kleine Progrämmchen, die mir das Arbeiten mit dem PC erleichtern. :)
 
PresidentEvil schrieb:
Ich brauche keine Spiele zu programmieren... Nur so simple kleine Progrämmchen, die mir das Arbeiten mit dem PC erleichtern. :)

Dann würd ich dir Visual C++ empfehlen... kostet aber ne menge Geld...
Hab ne Original Version hier zuhause, weil ich das für die Schule brauche...
Ansonsten würd ich Dir Borland C empfehlen, ist glaub ich sogar Freeware...
Und das passende Buch für einteiger und imo das beste was es gibt für Einsteiger

"C++ - Objektorientiertes Programmieren"
ISBN: 3-499-60077-3
10€ für ca 350 Seiten

Bei einem Projekt zur ansteuerung einer Eisenbahn hatte es mir sehr sehr geholfen.
mfg Nexus
 
Zurück
Top Bottom