Mit C oder C++ anfangen
-
Moin Ralli,
da biste aber früh heut aufgestanden :D.
Mit 30 Jahren Programmiererfahrung hast du bestimmt die Ruhe weg und die solltest du dir auch nehmen. Ich habe selbst erst vor ca. 3 Monaten mit C++ angefangen und konnte davor aber auch schon "programmieren". Warum ich mich für C++ und nicht für C entschlossen haben? Nun ja, ich kannte schon ein wenig OOP und wollte aber schon so Lowlevel wie möglich programmieren, ohne dabei auf die Vorzüge von OOP verzichten zu müssen, und da passte C++ hervorragend.Ich habe auch in C mal ein wenig was gemacht, weil ich es einfach mal ausprobieren wollte, mehr als ein paar Miniprogramme und eine Verkettete-Liste ist aber nicht dabei rausgekommen und ich kann wenigstens ein ganz kleines bisschen bei C mitreden. Bei C muss ich mich aber um zuviele Dinge selbst kümmern und das OOP fehlte mir auch sehr. Das kann man zwar auch in C nachbasteln oder Libs dafür nutzen, aber wozu wenn es in C++ schon alles Teil der Sprache ist?
GUI habe ich, nach dem ich die Grundlagen von C++ ein wenig verinnerlichst habe ,mit Qt angefangen und bin auch gut damit klar gekommen. Zur Zeit probiere ich FLTK aus und da ich nur als Hobby programmiere werde ich sicherlich noch viel mehr probieren, da ich alle Zeit der Welt dafür habe und nicht das programmieren muss was ein Chef von mir will
Als Bücher kann ich dir empfehlen:
- Der C++ Programmierer(Anfänger)
- C++ Primer(Anfänger)
- Die C++ Programmiersprache(Fortgeschrittener)
- Effektiv C++ programmieren(Profi)Ansonsten ist das Forum hier ein wunderbarer Platz für Fragen, wo man sich selbst die Karten legt oder einfach unendlich lange recherchieren müsste um vielleicht mal auf die Lösung zu kommen. Allerdings wird hier schon erwartet viel selbst zu machen und die Frage so konkret wie möglich zu stellen.
Ich hoffe du hast genauso viel Spaß an der Sprache/n wie ich und gibst nicht gleich auf wenn mal was zu komplex erscheint. Denk dran andere kochen auch nur mit Wasser und haben auch mal angefangen.
Gruß Blue-Tec
-
Ein Danke Allen, die mir bei der Entscheidungsfindung zur Seite gestanden haben, das Votum ist ja eindeutig für C++ ausgefallen. Natürlich heißt der Autor des Buches "C von A bis Z" Jürgen Wolf, ich sollte nicht so früh schon schreiben... @blue-tec auch Dir vielen Dank, ja mit 60 Jahren kehrt tatsächlich Gelassenheit ein, vielleicht auch ein wenig Milde und hoffentlich auch eine Portion Altersweisheit.
Tatsächlich bin ich Frühaufsteher, das ist in den Genen vorprogrammiert.
Also, dann fange ich jetzt mal mit C++ an, Objekt Pascal ist ja auch objektorientiert. Dabei wird mit das Buch von Herbert Schildt doch hoffentlich wertvolle Dienste leisten. Mich wundert es, das er bei den Buchempfehlungen nicht genannt wurde, schließlich haben seine Fachbücher, die in mehreren Sprachen übersetzt wurden, eine Millionenauflage erreicht.
Aber auch hier im Forum habe ich schon einige gute Tutorials gefunden.
Als GUI Designer liebäugel ich dann später mit Glade und GTK+, eventuell kommt Anjuta als IDE in Betracht. Ja, das Forum hat es mir schon angetan, da werde ich wohl jeden morgen drin schmökern, wie es bei uns heißt. Und ich hoffe, das ich auch bald zu einem Gebenden werde und etwas zurück geben kann. Aufgeben? Nein ich werde ja fürs Ankommen irgendwann belohnt nicht fürs Anfangen!
Nochmals vielen Dank für die lebendigen Antworten. Vergeßt nicht, auch ein alter Sack ist noch lebendig..
-
Na dann viel Spaß, ich bin zwar erst um die 40 aber kann jetzt schon sagen das ich es sehr von Vorteil ist nicht mehr so jung zu sein. Der ganze Druck und das ständige Beweisen ist weg und die Familienplanung ist auch abgeschlossen. Man kann also sehr entspannt in jeden Tag gehen. Wenn ich daran denke was mir mit 20 alles wichtig war und worüber ich mir alles einen Kopf gemacht habe
. So hat jedes Alter seine Vorzüge und bin froh dass ich nicht mehr durchs Discos hüppen muss
Zu deinem Buch kann ich leider nichts sagen, ich hoffe es lehrt modernen C++ also mit STL, Standardbibliothek und vielleicht auch RAII. Wenn viel C-Code drinne vorkommt oder zb. leere Argumentenliste für Funktionen mit z.B. main(void) anstelle von main() gezeigt wird dann kannst du davon ausgehen das es nicht viel taugt in der heutigen Zeit. Wenn da jemand mehr weiß wie man modernes C++ erkennt immer her damit.
Gruß Blue-Tec
-
ralli schrieb:
Dabei wird mit das Buch von Herbert Schildt doch hoffentlich wertvolle Dienste leisten. Mich wundert es, das er bei den Buchempfehlungen nicht genannt wurde, schließlich haben seine Fachbücher, die in mehreren Sprachen übersetzt wurden, eine Millionenauflage erreicht.
Das hat eindeutige Gründe. Seine Bücher gelten als extrem schlecht. Rezensionen zu seinen Büchern findet man unter anderem auf accu.org
-
<ironie>Na, welche ein Glück, daß rally auch noch A-Z hat zum Ausweichen hat.</ironie>
http://www.c-plusplus.net/forum/viewtopic-var-t-is-272350-and-highlight-is-.htmlmngbd schrieb:
C können hilft, manche Tücken in C++ genauer zu verstehen, aber die C++-Leute beteueren, dass das zum Lernen nicht nötig ist, und man das bei Bedarf nachholen kann.
Naja, so einfach isses nicht. Ich als C++-Mann würde rally doch empfehlen, zuerst ein gutes C-Buch durchzulesen (nicht durchzuarbeiten und nicht die Übungen machen, aber auch nicht überfliegen). Ihm wird das nicht den Stil versauen, sondern nur für ein tieferes Verständnis der folgenden C++-Bücher sorgen.
-
Hyperquantensrahl schrieb:
ralli schrieb:
Ich habe hier zwei Bücher, das eine ist ein onlinebook von Fritz Wolf "C von A bis Z"
Kenn ich nicht, aber http://www.c-plusplus.net/forum/viewtopic-var-t-is-272350.html Der heisst jetzt Jürgen Wolf, aber vlt. meinst du den.
volkard schrieb:
<ironie>Na, welche ein Glück, daß rally auch noch A-Z hat zum Ausweichen hat.</ironie>
http://www.c-plusplus.net/forum/viewtopic-var-t-is-272350-and-highlight-is-.html
-
ralli schrieb:
Jürgen Wolf "C von A bis Z"
Herbert Schildt "C++ It Tutorial".Das sind beides Autoren, die keinen guten Ruf besitzen.
Herbert Schildt ist für sein "C - A Complete Reference" und den vielen Fehler darin bekannt, die zeigen, dass der Autor nicht wirklich vertraut mit dem ISO C Standard ist. Gut, die letzte Auflage ist auch schon uralt. Aber seine aktuelleren C++ Bücher sind nicht viel besser, siehe ACCU Buchbewertungen. Alle, ich wiederhole alle von den 6 Büchern, die dort aufgeführt werden und etwas mit C++ zu tun haben, sind mit dem Prädikat "not recommended" vermerkt. Die Rezensenten sind respektierte Leute der C++ Community.
Zu Jürgen Wolf kann ich nicht viel sagen. Ich kenne seine Bücher nicht. Ich habe aber nicht den Eindruck, als wenn seine Bücher etwas taugen würden, siehe hier.
Wenn schon 30 Jahre Programmiererfahrung vorhanden ist (ui!) dann wirst Du wahrscheinlich kein Problem mit dem Buch "Die C++ Programmiersprache" von Bjarne Stroustrup haben. Ich habe selbst die 4. Auflage der Übersetzung und fand das Buch (als Umsteiger von Basic/Pascal/Delphi/Java nach C++) sehr gut. Nachdem man die Sprache kennengelernt hat, zählt eigentlich auch noch Scott Meyers' "Effective C++" (dritte Auflage) zur Pflichtlektüre.
kk
-
krümelkacker schrieb:
Zu Jürgen Wolf kann ich nicht viel sagen. Ich kenne seine Bücher nicht. Ich habe aber nicht den Eindruck, als wenn seine Bücher etwas taugen würden, siehe hier.
Den gab's schon zweimal. Es gäbe aber auch noch:
http://www.c-plusplus.net/forum/viewtopic-var-t-is-254601.html
http://www.c-plusplus.net/forum/viewtopic-var-t-is-254882.html
http://www.c-plusplus.net/forum/viewtopic-var-p-is-1940812.html
...Im ersten Thread taucht auch der mysteriöse Balu Jr. auf, der nach einhelliger Auffassung mit dem Jürgen Wolf entweder verwandt oder identisch ist.
-
Noch was: auf meinem digitalen Buchstapel liegt seit gerauner Zeit "Thinking in C++", das gibt's online. Ist das in Ordnung?
-
Fange ganz einfach mit beidem parallel an. Suche dir 1 oder 2 gute Bücher für C und C++. Das Buch C++ sollte dich nicht gleich mit OOP und anderen Dingen erschlagen, das eignest dur dir später an. Dieses Thema ist hier im Forum aber heftig umstritten und das reine C oft als überholt oder gar überflüssig angesehen. Es kommt darauf an, welches Lernziel du hast und was du damit machen willst.
Fange einfach an!
-
Beste Idee: Mit C anfangen und dann auf python/ruby umsteigen. Evtl noch lisp/scheme oder gar haskell angucken. Das reicht. C++ ist unnütz, mal von der vielzahl der verfügbaren bibliotheken etc abgesehen
-
berniebutt schrieb:
Dieses Thema ist hier im Forum aber heftig umstritten und das reine C oft als überholt oder gar überflüssig angesehen.
Ich denke, die meisten haben eher was gegen "C mit Klassen" (also C++, wie es in schlechten Büchern gelehrt wird) als gegen das reine C.
-
Ach es war nicht meine Absicht zu polarisieren. Aber ich habe alle Eure Antworten mit Hingabe gelesen und habe eine Nacht darüber geschlafen. Jeder hat seine Vorlieben, der eine liebt die Mutter, der andere die Tochter und dann gibt es noch ganz Leidenschaftliche, die lieben alle beide.
Also ich werde wohl doch erst mit C anfangen. Das die beiden Autoren in Fachkreisen einen so schlechten Ruf geniessen,war mir allerdings nicht bekannt. Es gibt genug Tutorials und Vorlesungsscripte von Unis im Netz, aber ich habe mir erst Mal die hier im Forum empfohlenen runtergeladen zum Einarbeiten. Später werde ich dann mit Glade und Gtk+ die Gui's designen. Anjuta habe ich angetestet, aber das ist nicht mein Fall, ich werde erst mal alles zu "Fuß" machen mit Geany. Noch ein Mal vielen Dank für Eure tatkräftige Starthilfe. Jetzt aber geht es los. Ich arbeite unter CentOS 5.5, alle Werkzeuge und Entwicklerbibliotheken sind installiert und es kann endlich losgehen. Ich freu mich unheimlich darauf, auch das eine oder andere nützliche Konsolenprogramm zu schreiben. Zum Beispiel, um mit scanimage und tesseract (OCR) meinen Scanner anzusteuern und die Ergbnisse dann in einer sqlite Datenbank abzuspeichern.
-
ralli schrieb:
Also ich werde wohl doch erst mit C anfangen.
Kannst du ja einfach mal angehen, und mit der Zeit festlegen, wie weit du da eintauchen willst. Das kann man mit einiger Erfahrung sicher in ein paar Wochen abhandeln, ein wenig ordentliche Literatur gibt's auch online, z.B.:
http://publications.gbdirect.co.uk/c_book/
-
Mal ne andere Meinung:
Ein gutes C++ Buch fängt mit einer Einführung in objektorientierte Programmierung und Denkweise an bevor es überhaupt an die Erklärung des ersten Befehls geht.
Daher würde ich empfehlen solch ein Buch/Tutorial zuerst durchzumachen (dauert ja nicht lange). Aber wenn man sich erst ein C-Buch schnappt wird einem eine (für C++) 'falsche' Denkweise eingetrichtert wovon man sich dann nur schwer wieder entwöhnt (ich hab gerade zwei Azubis denen ich das alles wieder austreiben muss bevor man mit einer strukturierten Denke anfangen kann)
Aus Interesse kann man sicher nebenher oder nachher C lernen bzw. sich die Unterschiede anschauen. Ist aber wirklich nicht notwendig bis man in die tieferen Tiefen der Programmierung einsteigt - und meist nichtmal dann.
Der Stroustrup (also "Die C++ Programmiersprache" oder auch kurz 'die Bibel') ist sicher was für jemand mit vorheriger Programmiererfahrung. Nicht ganz leicht zu lesen aber extrem hochwertig als Nachschlagewerk.
-
antialias schrieb:
Mal ne andere Meinung:
Ein gutes C++ Buch fängt mit einer Einführung in objektorientierte Programmierung und Denkweise an bevor es überhaupt an die Erklärung des ersten Befehls geht.Nein, das sind langweilige und schlechte Bücher, finde ich. Der Gipfel war mal ein Programmierbuch für Anfänger, das ich in Händen hatte, das erst nach 170 Seiten die erste Zeile Code zeigte.
antialias schrieb:
Daher würde ich empfehlen solch ein Buch/Tutorial zuerst durchzumachen (dauert ja nicht lange). Aber wenn man sich erst ein C-Buch schnappt wird einem eine (für C++) 'falsche' Denkweise eingetrichtert wovon man sich dann nur schwer wieder entwöhnt (ich hab gerade zwei Azubis denen ich das alles wieder austreiben muss bevor man mit einer strukturierten Denke anfangen kann)
Du vergißt, WEM du hier was empfiehslt.
Er sagt: "Ich habe 30 Jahre Programmiererfahrungen sammeln dürfen von Basic über Turbo Pascal, Delphi und habe auch schon ins Qt Framework und Gtk+ hineingeschnuppert."
So einen kann ein C-Buch nicht versauen. Nichts menschliches ist ihm mehr fremd. Er soll ja nicht in C mit seinen Beschränkungen programmieren oder die Übungsaufgaben machen. Aber er kann bei C++ dann bei allen C++-Features sich denken, wie das unter der Motorhaube wohl geht, und kann von Anfang an auf elegante und einfache C++-Lösungen zurückgreifen, die so auch in C schon gingen. Du würdest sie vielleicht alte C-Lösungen nennen und sie nicht mögen.Sauwichtig ist RAII. "Zu deinem Buch kann ich leider nichts sagen, ich hoffe es lehrt modernen C++ also mit STL, Standardbibliothek und vielleicht auch RAII." war mir ein wenig schwach ausgedrückt.
Ich würde sogar "Effektiv C++ programmieren" empfehlen zu lesen *vor* Stroustrup und nach dem Primer oder Breymann. Und nach dem Stroustrup vielleicht "Exceptional C++", obwohl Sutters Schreibstil unirdisch unangenehm ist.Außerdem liest ralle im Forum mit. Da kriegt er die Wichtigkeit von RAII schon mit.
-
Jetzt tendiere ich dazu, auf unseren erfahrenen Moderator und Profi @volkard zu hören, was aber keine Abwertung von anderen gutgemeinten Ratschägen sein soll. Denn er hat es ja auch richtig erkannt, ich bin kein Anfänger sondern eher ein Quereinsteiger. Aber ich will auch nicht übermütig werden und es trotzdem von der Pike auf lernen. Jetzt werde ich loslegen und werde wohl in den nächsten Wochen und Monaten gewiss noch die eine oder andere Frage haben. Da ich mittlerweile im (Un)ruhestand bin, so habe ich natürlich auch die entsprechende Zeit. Wenn mir das jemand vor 20 jahren gesagt hätte, das ich mit 60 noch mal eine neue und wichtige Hochsprache lerne, dann hätte man mich vielleicht für verrückt erlärt. Es wird nicht einfach, aber wenn es einfach wäre, dann könnte es ja jeder. Aber das Lernen fiel mir meist leicht und ich bin eben auf alles Neue neugierig und auch offen. Natürlich habe ich auch aus Fehlern gelernt.. so jetzt muß ich mich aber beschränken, denn ich bin ein Vielschreiber und ich werde bestimmt noch oft um Hilfe fragen, wenn mich das eine oder andere her vom Verständnis zwicken sollte. Ich werde dann über die hoffentlich eintretenden Fortschritte berichten und mich den neuen Aufgaben mit Freude stellen. Denn bei aller Fachsimpelei muß es auch Freude und Spaß machen. Noch mals vielen Dank allen, die mir den Weg zeigen und das ich von solch einem Fachforum mit vielen kompetenten Informatikern begleitet werde, ist für mich eine große Ehre und ich bin auch sehr glücklich darüber.
-
volkard schrieb:
So einen kann ein C-Buch nicht versauen. Nichts menschliches ist ihm mehr fremd.
Es ist einfach am Anfang Zeitverschwendung. Man findet in einem C-Buch nichts, was man zu anfangs in C++ gebrauchen könnte.
-
~john schrieb:
volkard schrieb:
So einen kann ein C-Buch nicht versauen. Nichts menschliches ist ihm mehr fremd.
Es ist einfach am Anfang Zeitverschwendung. Man findet in einem C-Buch nichts, was man zu anfangs in C++ gebrauchen könnte.
Weil man C++ nicht braucht. q.e.d.
-
möchte mir in den nächsten Monaten die Grundlagen von C oder C++ aneignen
Das war das Ziel.
Erst wurdest du von C++ überzeugt, dann bist du zu C zurück geschwenkt. Zum Schluss wars egal wie und ob.
Daher schlage ich dir einfach vor, den historischen Weg zu beschreiten. Dieser beginnt bei C, nimmt dann die OOP features hinzu und endet bei formvollendetem C++ mit STL. Diese ganzen dicken Schmöker und Perfektionsbücher würde ich gleich links liegen lassen. Marcus Bäckmann's Buch ist eine nette Einführung in C++ mit OOP und STL, falls dir OOP noch nicht vollends klar ist. Da steckt vor allem seine praktische Erfahrung aus der Anfangszeit des Forums drinnen.
Volkard Henkel hat ein herrliches C++-Tutorial verfasst, zwar alt aber dennoch immer noch erste Klasse: http://www2.fh-augsburg.de/informatik/vorlesungen/XX/c_cplus/tutorial/henkel/ (Warum bringt dies eigentlich niemand auf den neusten Stand? Muss ja nicht Volkard selbst machen, falls er keine Kraft/Zeit dazu hat.
)
Ansonsten:
C:
http://www2.its.strath.ac.uk/courses/c/C++:
http://www.cpp-tutor.de/cpp/le01/main.html
http://www.ts.data-factory.ch/Linkliste/C++/
http://fara.cs.uni-potsdam.de/~kaufmann/?page=ProgrammingMache dir einfach selbst ein Bild. Als erfahrener Programmierer wirst Du deinen Stil schnell finden.
Hier kannst Du später bei einem "C++-Guru" vorbei schauen: http://gotw.ca/gotw/index.htm
Fange mal hier an: http://gotw.ca/gotw/004.htm (dann wirst Du schnell sehen, ob du C++ magst)