Wie am besten C++ lernen?

mixxed_up

BIOS-Overclocker(in)
Hallo,

da ich das Thema sehr interessant finde, hab ich beschlossen in nächster Zeit C++ zu lernen, um damit auch irgendwann mal etwas zu machen. Ich bin mir im Klarem, dass dies alles andere als leicht ist und bereit, viel Zeit darin zu investieren.

Nur habe ich keine Ahnung wie man das lernt, da ich noch nicht viel Brauchbares gefunden habe.

Könnt ihr mir eine Seite oder ein Buch oder whatever empfehlen?

mfg mixxed_up
 
Dieses Buch könnte für dich interessant sein: C++ für Kids. Objektorientierte Programmierung für Einsteiger: Amazon.de: Hans-Georg Schumann: Bücher
Ich habe mit einem Buch aus derselben Reihe (Delphi für Kids) mit Programmieren angefangen. Für den Einstieg ist das sehr gut. (Aber Delphi, was mir mein Vater vorgesetzt hat, ist echt bescheiden. C++ ist eine gute Wahl.)

Später dann richtige C++-Bücher.
Es gibt auch Einsteiger-Bücher für Erwachsene, aber damit sind die allerersten Schritte nicht ganz so easy.
 
Bücher etc. sind immer so ne Sache. Zum Nachschlagen etc ganz nützlich, wobei das Internet einem da auch immer sehr schnell weiter hilft.

Richtig lernen kann man eine Programmiersprache aber finde ich nur, einfach durchs machen. Setz dich hin, überleg dir ein Problem und versuch dann dieses Problem mit einem Programm zu lösen.

Programmier doch einfach mal nen Taschenrechner, der auch Matrizen miteinander multiplizieren kann. Da haste dann schon verdammt viel drin.

Als zweites programmier für den Objekt orientierten Anteil einfach mal ne Datenbank für Autos, Grakas, etc etc.

Mit sowas haste dann eigentlich alles mehr oder weniger abgedeckt, was es an Grundlagen gibt. Mehr kannste nicht wirklich machen, solange du dich nicht mit nem konkreten Probkem beschäftigst, weil es einfach zu viel gibt und zu viele Lösungswege für viele Dinge. Ich merks selbst bei meinem Projekt im Moment, das ich zwar Grundlagen habe, aber es halt immer wieder zu langwierigen Problemen kommt, weil man halt auf so lustige Sachen wie Stack overflow etc stößt, die eigentlich in keinem Tutorial vorkommen. Sowas muss man einfach beim machen lernen.
 
Einfach beginnen geht nicht, wenn du gar nicht weißt, wie die Programmiersprache überhaupt aufgebaut ist, wie die Grundbefehle gehen, etc.
Am Anfang sollte man schon ein Schritt-für-Schritt Tutorial haben.
 
Und welches kann man da empfehlen? Bei Google gibt es zwar schon viele Tut's aber die, die ich gesehen habe fangen mMn zu extrem an, oder es sind 50+ ewig lange Seiten nur für die Grundschritte:ugly:

Willkommen in der Realitaet.:D Wenn mixxed_up dann noch mit OpenGL und OpenCL weiter machen will kommen noch sehr viel mehr Seiten dazu.:P

@Mixxed
Ich wuerde mit C# anfangen. Ich selber habe mit Java angefangen und dann mit C und C++ weiter gemacht. Danach kam C#. Mein Favorit ist C#. Die Sprache hat mir einfach am Besten gefallen von der logischen Struktur.;)
 
Hier auf der Seite sind einige OpenBooks zum Thema Programmieren aufgelistet. Vielleicht kannst du aus dem einen oder anderen etwas nützliches herauslesen.
 
Willkommen in der Realitaet.:D Wenn mixxed_up dann noch mit OpenGL und OpenCL weiter machen will kommen noch sehr viel mehr Seiten dazu.:P

@Mixxed
Ich wuerde mit C# anfangen. Ich selber habe mit Java angefangen und dann mit C und C++ weiter gemacht. Danach kam C#. Mein Favorit ist C#. Die Sprache hat mir einfach am Besten gefallen von der logischen Struktur.;)

C# ist aber nicht sooo zu empfehlen, weil du damit halt auf die .NET Umgebung angewiesen bist, genauso wie bei Java halt, nur das Java deutlich weiter verbreitet ist, und wohl auch performanter sein wird als C#, da einfach die Entwicklung schon sehr lange geht.

Was OpenCL angeht, ja da kommen noch VIELE Seiten dazu :D ich glaub ich bin bei so mittlerweile locker 400-500 Seiten :ugly:

Naja, das mit C++ ist nicht wirklich schwer von den absoluten Grundlagen. Vielleicht bin ich da aber auch einfach zu alt schon, das mir da zu viele Sachen einfach zu basic vorkommen, die garnicht sooo basic sind. Amiga/286er lassen halt grüßen :ugly:

Zitat von DAEF13
Und welches kann man da empfehlen? Bei Google gibt es zwar schon viele Tut's aber die, die ich gesehen habe fangen mMn zu extrem an, oder es sind 50+ ewig lange Seiten nur für die Grundschritte:ugly:


Was erwartest du? :D Das wie ne Fremdsprache lernen, das dauert. Zumal diese ganzen tutorials wie ich oben gesagt hab halt wirklich nur an der Oberfläche kratzen im Allgemeinen.

http://www.mathematik.uni-marburg.de/~cpp/

Fand ich jetzt garnicht sooo schlecht und kostet halt nix.

Die wirklichen extremen basic Sachen wie for, while, if/else, catch etc kennt man ja eigentlich, danach wirds dann eigentlich interessant, und das sagt dir eigentlich auch kein tutorial, da kannste wenn am Besten im Inet in Foren nach ner Lösung fürs Problem suchen und halt im Nachschlagwelzer den man sich anschaffen sollte.

Man kann einfach nicht alles wissen, weils zu viele zu spezielle Sachen gibt.
 
C# ist aber nicht sooo zu empfehlen, weil du damit halt auf die .NET Umgebung angewiesen bist, genauso wie bei Java halt, nur das Java deutlich weiter verbreitet ist, und wohl auch performanter sein wird als C#, da einfach die Entwicklung schon sehr lange geht.

Mixxed_Up nutzt aber Windows also kann es ihm latte sein ob er auf .NET angewiesen ist oder nicht. Aber du hast recht. Wenn er seine Programme Freunde geben will die Linux nutzen koennen sie seine Programme nicht nutzen.

Naja, das mit C++ ist nicht wirklich schwer von den absoluten Grundlagen. Vielleicht bin ich da aber auch einfach zu alt schon, das mir da zu viele Sachen einfach zu basic vorkommen, die garnicht sooo basic sind. Amiga/286er lassen halt grüßen :ugly:
[/I]

Jo, die Grundlagen von C++ sind wirklich nicht schwer.;)
 
Ich sehe bei .NET kein Problem und bei Java erst recht nicht. .NET läuft mittels Mono auch auf Linux/Mac und Java läuft sogar auf nem Handy.

Die Grundlagen von C++ sind nicht schwer, aber es gibt viele Sachen, die man in C++ schlecht machen kann, wenn man keine Ahnung hat.

Edit: Außerdem hat man mit C++ unter Umständen auch schlechte Karten, wenn man ein Programm portieren will. Wenn man die OS-eigenen APIs nutzt, war's das nämlich auch...
 
Zuletzt bearbeitet:
Edit: Außerdem hat man mit C++ unter Umständen auch schlechte Karten, wenn man ein Programm portieren will. Wenn man die OS-eigenen APIs nutzt, war's das nämlich auch...

Deshalb gibt es sowas was sich Standartbibliothek nennt. Die meißten wichtigen APIs sind desweiteren portierbar. Bei speziellen APis wie DX ist das, keine Frage, ein Problem z.b. ein Spiel auf Linux zu portieren.
Bei Java hat man genau das gleiche Problem wenn es keinen Java interpreter für das Zielos gibt. Letztendlich hat jede Sprache mit der Portierbarkeit zu kämpfen. Wer ein Programm explizit für Windows programmiert, programmiert eben explizit für Windows.

@TE: Besorg dir ein gutes Buch. Da gibt es zum Beispiel so eine komische Einrichtung die sich Bibliothek nennt. An jenem Ort kann man wenigstens Probelesen ;). Geh in einen Buchladen, blätter durch einige Bücher und nimm das welches dir am ehesten zusagt. Für weiterführende Themen gibt es dann wiederum Bücher oder eben spezielle Communitys.
Eine gute Anlaufstelle für z.B. 3D Programmierung wäre da zfx.info zu nennen. Hier werden auch allgemeine Fragen zur Programmierung, Algorithmen behandelt.
Stell dir für den Anfang kleine Aufgaben die du zu lösen hast. Wie schon genannt wurde, wäre ein Taschenrechner super: Ein Parser ist nötig, verschiedene Algorithmen müssen implementiert werden. Wurzeln ziehen, quadrieren, eben alles was ein "wissenschaftlicher" TR so können sollte. Im nächsten Schritt könnte man sich dann mit einer GUI beschäftigen die vielleicht sogar Funktionen zeichnen kann.
Dadurch lernt man afaik am meißten. Learning by doing. Frustration gehört dazu.
Kurse zum erlernen einer Programmiersprache halte ich für absoluten Humbug. Reine Geldverschwendung. Wenn du in der Nähe einer Uni/Fh wohnst, kannst du auch dort vorbeischauen und dir vielleicht ein Vorlesungsskript günstig schießen (max 15 Euro). Gasthören in verschiedenen Vorlesungen wäre sicher auch eine Möglichkeit aber da ich vermute dass du mit 15 noch Schüler bist, fällt das Zeitmäßig wohl eher aus.

Btw. 500 Seiten zu einem Thema zu lesen ist wirklich rein garnichts.
 
Naja 400-500 Seiten für nen bischen besseres "hallo Welt" sind schon nicht ohne wie ich finde ;)

OpenCL suckt was gutes Lernmaterial angeht :wall:
 
Deshalb gibt es sowas was sich Standartbibliothek nennt. Die meißten wichtigen APIs sind desweiteren portierbar. Bei speziellen APis wie DX ist das, keine Frage, ein Problem z.b. ein Spiel auf Linux zu portieren.
Bei Java hat man genau das gleiche Problem wenn es keinen Java interpreter für das Zielos gibt. Letztendlich hat jede Sprache mit der Portierbarkeit zu kämpfen. Wer ein Programm explizit für Windows programmiert, programmiert eben explizit für Windows.
Ich wollte ja nur darauf hinaus, dass C++ auch nicht die Universallösung ist. Klar, man kann mehr damit machen als mit Java/.NET aber das geht dann teilweise auch deutlich über Einsteigergeschichten hinaus ;)
 
Klug ist es sicherlich (zumindest wenn dein Fokus nicht auf Webanwendungen liegt). Ich würde es allerdings nicht als erste Sprache wählen, zum Einstieg gibt es Sprachen, die einfacher in der Handhabung sind. Wenn man dann die Grundlagen der Programmierung drauf hat, fällt ein Wechsel auf eine andere Sprache (z. B. C++) nicht mehr so schwer und man kann auf einem guten Vorwissen aufbauen.
 
Klug ist es sicherlich (zumindest wenn dein Fokus nicht auf Webanwendungen liegt). Ich würde es allerdings nicht als erste Sprache wählen, zum Einstieg gibt es Sprachen, die einfacher in der Handhabung sind. Wenn man dann die Grundlagen der Programmierung drauf hat, fällt ein Wechsel auf eine andere Sprache (z. B. C++) nicht mehr so schwer und man kann auf einem guten Vorwissen aufbauen.

Da die meißten Sprachen syntaktisch ähnlich zu C sind (C wiederum ist garantiert irgendwo anders inspieriert worden) finde ich den Einstieg mit C nicht schlecht.
Ich sehe vorallem nicht was schwieriger an C++ ist im Vergleich zu anderen Sprachen. Es gibt aber keine generelle Aussage ob es sinnvoll ist mit Sprache xY anzufangen. Es kommt allein auf den Einsatzzweck und die Zielsetzung an. Vorteil von C++ ist dass die Sprache "alt" ist. Daher gibt es für fast jeden Zweck eine Bibliothek sodass man mit wenig Arbeit auch schnell Ergebnisse erzielen kann. Webentwicklung wiederum ist C/C++ eher ungeeignet. So hat jede Sprache Vor- und Nachteile.
Irgendwo muss man aber anfangen daher meine Empfehlung: Nimm C/C++ und probier einfach aus ob du klarkommst. Wenn nicht probier eine andere Sprache usw.
 
Könnt ihr jetzt mal pauschal sagen, ob es klug ist C++ zu lernen oder nicht? :ugly:

Bin schon einigermaßen verwirrt.

Du hast mir gesagt du willst C++ nur zum Einstieg lernen um dann spaeter mit OpenCL weiter zu machen. Meine Empfehlung waere daher C# weil C# und OpenCL einfach hervorragend zusammen passen. C++ ist aber natuerlich auch zu empfehlen. Da kannst du nicht viel falsch machen ausser dass die OpenCL Wrapper fuer C++ etwas komplizierter sind aus meiner Erfahrung. Mit C# ist dass spaeter einfacher.;)
 
Zurück