Mit C oder C++ anfangen
-
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)
-
@Erhard Henkes, danke für die außerordentlich interessanten Links und Tipps, die ich gerne abarbeiten und verwerten werde.