C++ Wie das Programmieren anfangen?

LaserDiscDude

Captain
Registriert
Apr. 2007
Beiträge
3.745
Hallo,

zuerst möchte ich sagen, dass ich die FAQ komplett durchgelesen habe.

Ich möchte mir C++ beibringen, aber möchte damit kein 3D-HighEnd Game oder ein neues OS programmieren, sondern eher kleine programme oder kleine Mods für Spiele. Auf der Arbeit habe ich einen Programmierer, der aber nur JAVA programmiert und auf die Frage wie ich am besten C++ beginnen sollte, sagte er zu mir, erst mit JAVA anfangen.

Ist das wirklich ein guter Anfang? Oder eher Zeitverschwendung wenn ich eh mit c++ arbeiten möchte. Ich selber komme eher auf der Grafik und Web schiene, also kenne mich mit HTML und JS aus und weniger mit Hochsprachen.

Als "Schulbuch" würde ich das Internet und für:

JAVA = Java ist auch eine Insel
C++ = C++ für Spieleprogrammierer , http://www.amazon.de/gp/product/3446421408/ref=ox_sc_sfl_title_2?ie=UTF8&smid=A3JWKAKR8XB7XF

nehmen.
 
Hi,

nicht mit JAVA anfangen. Fang mit dem an was du lernen willst / musst. In der FAQ stehen doch auch genug Links für Anfänger drin. Wenn du sie gelesen hast kannst du doch damit direkt losstarten?!

VG,
Mad
 
Lerne das, was du lernen willst.

Konzepte aus Java sind nicht in C++ enthalten und vice versa. Das ist keine Pauschal Aussage, aber für einige fundamentalen Entscheidungen in diesen beiden Sprachen sehr treffend, vergleiche Pointer Arithmetik, Polymorphismus und anderes.

Zu Buchempfehlungen habe ich schon oft hier im Forum was bei C++ geschrieben, und es wurde in den letzten Wochen echt oft durchgekaut..

Er wird dir Java empfehlen, weil er Java kann, beherrscht, liebt, für seine Anwendungszwecke geeignet ist.
Frag 10 Entwickler, erhalte vielleicht 6-7 unterschiedliche Antworten..
 
Bist du schon mit grundlegenden Programmierkonzepten vertraut? Welche Sprachen hast du schon vorher erlernt? Als Erstsprache kann ich C++ nur sehr bedingt empfehlen, da gibt es andere Sprachen, welche wesentlich einfacher zu erlernen sind und es ermöglichen sich auf das wesentliche zu konzentrieren. Python ist z.B. als Anfängersprache empfehlenswert und du musst dich dort nicht wie bei C++ oder C mit Pointern rumschlagen. C# wird als Anfängersprache auch oft empfohlen.
 
Hallo World, damit fangt man normalerweise an :O

Sonst kauf dir ne gute Lektüre :P hab mehr oder weniger alles von Büchern gelernt ^^
 
Madman1209 schrieb:
Hi,

nicht mit JAVA anfangen. Fang mit dem an was du lernen willst / musst. In der FAQ stehen doch auch genug Links für Anfänger drin. Wenn du sie gelesen hast kannst du doch damit direkt losstarten?!

VG,
Mad

Genau, das könnte ich ich :-)

eri schrieb:
Openbooks:
Java 7 - Mehr als eine Insel
Objektorientierte Programmierung
Einstieg in Visual Basic 2010

Ich würde auch eher sagen, dass du nicht mit Java anfängst... C++ oda VB wären glaub ich einfacher.

Vielen Dank für die Links!

Keepers schrieb:
Zu Buchempfehlungen habe ich schon oft hier im Forum was bei C++ geschrieben, und es wurde in den letzten Wochen echt oft durchgekaut.

Nein brauchst du nicht, war auch nicht meine direkte Frage.

mvBarracuda schrieb:
Bist du schon mit grundlegenden Programmierkonzepten vertraut? Welche Sprachen hast du schon vorher erlernt? Als Erstsprache kann ich C++ nur sehr bedingt empfehlen, da gibt es andere Sprachen, welche wesentlich einfacher zu erlernen sind und es ermöglichen sich auf das wesentliche zu konzentrieren. Python ist z.B. als Anfängersprache empfehlenswert und du musst dich dort nicht wie bei C++ oder C mit Pointern rumschlagen. C# wird als Anfängersprache auch oft empfohlen.

Ich selber kann nur JS und etwas PHP. Hab mich aber informiert wie die Objekto. Sprachen funktionieren.
 
Dann mach doch mal ein wenig OO in PHP ;-) Eine gar nicht so üble Implementation in meinen Augen.
 
das c++ was zu oben erwähnt ist gut, habe ich auch irgendwann mal durchgearbeitet. gibt nen guten einblich - danach solltest du dir evtl galioleo openbooks mal schauen.

bei c# gibt es auch komplexe konstrukte gerade im zusammenspiel mit wp/silverlight&co - die auch locker and c++/c konzepte herankommen ;)
 
Du tippst in den browser c++ tutorial. Dann lesen, lesen, lesen. Am Anfang verstehst du gar NICHTS.

Der beste Weg um C++ zu lernen ist AUSDAUER. Es gibt nicht den schnellsten Weg, denn jedes Buch, jedes Tutorial beinhaltet Informationen für dich. Umso häufiger sich diese wiederholen, umso besser für dich als Anfänger. Du warst da Wochen und Monate brauchen.
Bestimmte Konzepte oder Fachbegriffe würde ich mir mit einem Satz notieren, und dies immer wieder auffrischen.
 
Also ich denke es ist eine gute Idee mit C++ einzusteigen. Wenn man es richtig angeht, umgeht man einige, m.M.n. schlechte Programmierstile und -angewohnheiten, die man sich sonst mit z.B. Java aneignet.

C++ ist sehr offen angelegt: Man kann viel falsch machen, was den Einstieg ein bisschen schwieriger gestaltet. Wenn man die Sprache aber gemeistert hat, dann steht einem aber so gut wie jede Möglichkeit offen, Probleme zu lösen. Und ich bin mir nicht sicher, ob man am Ende nicht noch mal sehr viel Zeit investieren müsste, um von Java auch gutes C++ umzusteigen.

Mein Tip: http://cre.fm/cre063 (Ist schon was älter, C++11 hat die Sprache noch mal einen guten Schritt weitergebracht, aber man erfährt viel über die Ideen, die hinter C++ stehen.)

Und wenn es noch ein Buch sein darf: http://www.amazon.com/Programming-P.../ref=cm_cr_pr_product_top/189-0588991-6907616
Wenn du das in der nächsten Bibliothek findest, wäre es wohl einen guten Blick wert ;)
 
Zuletzt bearbeitet:
Vielen Dank an euch alle für die Super infos, dann kann ich mir langsam auf den langen Weg machen :-)
 
Mit VB würde ich nicht anfangen, sondern gleich eine Sprache mit einer allgemein besser verbreiteten Syntax nehmen (Java, C#, C++ etc.).
 
Ich möchte nicht Garbage Collection als Gesamtes verteufeln. GC ist eine tolle Sache, wenn es als zusätzliches Netz gegen Speicherlecks benutzt wird. Eine Sache, die ich jedoch immer schlimm finde, ist, wenn man jedes sorgsame Programmieren über Bord wirft und die GC alles machen lässt.

Es ist ungefähr so wie beim Autofahren lernen: Man kann von Anfang an nur Automatik fahren, hat aber ein Problem, wenn man aus irgendeinem Grund eine manuelle Gangschaltung hat. Oder man fährt in der Fahrschule nen manuellen Wagen. Die Fahrstunden sind dann etwas schwieriger, man kann auch in der Prüfung mal abwürgen, kann aber nach der Prüfung einfach in einen Automatikwagen einsteigen oder in einen manuellen. Und meine Beobachtung ist, dass Leute, die Schaltwagen fahren, den Verkehr besser beobachten, da um richtig und vorausschauend Fahren zu können, die Verkehrssituation beobachtet werden muss.

Damit will ich sagen: Wenn man vernünftige Speicherverwaltung von Anfang an lernt, dann ist man nicht nur flexibler, sondern neigt auch dazu sauberen Code zu schreiben. Wenn man richtig C++ oder C kann, dann braucht man gar keinen GC mehr, der auch immer Rechnerleistung schluckt. Und bei Java wird ja noch nicht mal garantiert, dass der GC zeitig ausgeführt wird und finalize aufruft.
Java fördert m.M.n. das Hinwerfen von Objekten und man muss sich drauf verlassen, dass der GC seine Arbeit richtig macht.

Oder RTTI: Es nimmt dem Programmierer die Arbeit ab, den Typ der Objekte immer zu kennen. Dabei kostet es dadurch, dass es zur Laufzeit ausgeführt wird, wieder Leistung.
Es ist unter Umständen (nicht zwangsläufig) schwieriger statisch typisierte Programme zu schreiben, wenn man es aber kann, kann man es. Im Notfall kann man in C++ sogar RTTI mit dynamic_cast oder typeid zuschalten. Es gibt aber einen Grund, warum es eher nicht gemacht wird: Hat man sich an feste Typen gewöhnt, ist es vllt. gar nicht mehr notwendig.


Java ist eine gute Programmiersprache, die ihre Anwendungsgebiete hat. Ich denke auch, dass C++ der steinigere Weg ist, man aber, wenn man C++ gut kann, flexibler ist, was ich mit dem Zitat sagen wollte. ;) Komfortmittel zusätzlich zu nutzen ist einfacher, als sie standardmäßig zu nutzen und plötzlich ohne sie da zu stehen. Und wenn der Programmierstil dadurch gefördert wird, dass man, aufgrund fehlender Komfortfunktionen, sauber arbeiten muss, finde ich das begrüßenswert. ;)
 
RAII gibts NUR in C++, nicht in Java, da dort der Destruktor fehlt.
Sag mir ein Feature in Java, was es so nicht in C++11 gibt (abgesehen vom GC).
Ach ja, C++ ist leichert als Java, da du dort bequem Prozedural anfangen kannst und dann, je mehr du durchblickst, einfach mal ein bisschen OO reintun kannst.

@TE: Mach dein Weg, das wird jetzt sicherlich bald ne OT-Diskussion :).
 
Zurück
Oben