Gutes C(/C++)-Buch gesucht (C11)



  • Hallo zusammen,
    Ich bin mir nicht vollkommen sicher, ob das Thema hier hinein gehört, aber es war meiner Meinung nach das passendste.
    Ich wüsste gerne, welches C-Buch sowohl für C-Anfänger als auch für fortgeschrittene Programmierung geeignet ist. Bisher habe ich leider nur den namenlosen Autor gelesen, wurde allerdings durch dieses Forum rechtzeitig gewarnt,((Sorry, offtopic), dessen Qt4-Buch aber doch recht gut sein soll?)
    Sollte jemand zufällig auchnoch ein gutes C++-Buch kennen, wäre das Top.
    Ich stelle mir aktuell ein Buch-Paket zusammen, das bei C beginnen soll und mit Qt4 enden soll, daher der Vermerk zu JMs Qt4-Buch(ich hoffe, da hat niemand was gegen einzuwenden?)
    Sorry, falls ich hier im falschen Bereich bin, in dem Fall bitte verschieben.
    MfG


  • Mod

    C++-Büchertipps findest du in meiner Signatur und im C++-Forum verlinkt. Für C gibt es natürlich immer den K&R. Sooo gewaltig sind die Unterschiede zwischen C89, C99 und C11 nicht. Das sind hauptsächlich Erweiterungen der Standardbibliothek, die man sich mal angucken kann. Da gibt es eben mehr Funktionen fertig in math.h und ähnliches. Außerdem ein paar kleine Verbesserungen der Syntax (Zum Beispiel dass man Variablen auch innerhalb eines Codeblocks deklarieren kann, nicht nur am Anfang), die man sich einmal anguckt und dann gelernt hat.
    Die größte Spracherweiterung in C99 sind sicherlich die VLAs (variable length arrays), die dann in C11 prompt wieder zu einem optionalen Feature degradiert wurden. Das ist auch eine Feature, das man einmal zur Kenntnis nimmt und dann entweder nutzt oder nicht.
    In C11 ist auch rudimentärer Threadsupport hinzu gekommen. Das ist aber ohnehin kein Anfängerthema. Selbst wenn, dann sollten sich die üblichen Multithreadingbibliotheken, die man in C89/C99 nutzt, nicht zu sehr von der C11-Implementierung unterscheiden*. Es ist eben Teil der Standardbibliothek, keine eigene Bibliothek. Aber vor allem ist es wieder eine Erweiterung der Standardbibliothek. Als Anfänger lernt man die Sprache, nicht die hunderten von Spezialfunktionen der Standardbibliothek und die Sprache hat sich nicht sehr verändert.

    *: Ich habe den C11-Multithreadsupport noch nicht benutzt, daher gebe ich diese Aussage mal unter Vorbehalt. Ich habe aber durchaus schon von Kritik an der C11-Umsetzung gehört, die ich aber nicht weiter gelesen habe.



  • Wie genau ist das mit K&R gemeint?



  • TizZel schrieb:

    Wie genau ist das mit K&R gemeint?

    Kernighan & Ritchie (die Erfinder von C)

    Wichtig: Second Edition

    Die deutsche Übersetzung ist nicht so gut. Lieber das Original.

    http://www.amazon.de/C-Programming-Language-2nd-Edition-ebook/dp/B009ZUZ9FW/ref=sr_1_3?ie=UTF8&qid=1386795154&sr=8-3&keywords=kernighan+ritchie

    Tip: Gibt's auch als PDF im Netz.



  • Im K&R wird die Sprache beschrieben.

    Es ist eine Einführung in die Sprache C.

    Der ist nicht zum programmieren lernen da.



  • DirkB schrieb:

    Im K&R wird die Sprache beschrieben.

    Es ist eine Einführung in die Sprache C.

    Der ist nicht zum programmieren lernen da.

    Ok. Aber mit ein wenig Programmiererfahrung kann man sich gut damit in C einarbeiten.


  • Mod

    DirkB schrieb:

    Der ist nicht zum programmieren lernen da.

    Doch schon. Ich kenne genügend Leute, die vorher noch kein Wort programmiert haben und damit gelernt haben. Man braucht natürlich Motivation und gutes Verständnis, das ist nichts "für Dummies". Wenn man das hat, ist das ein exzellentes Lehrbuch. Wenn man das nicht hat, nun ehrlich, bleibt man dann überhaupt länger beim Programmieren?



  • Hmm, klingt gut.
    Gibt es eine entsprechende Version auch zu C++, und wenn ja, wie finde ich die?
    Bishierhin auch schonmal ein danke an alle Poster, hat mir alles schon sehr geholfen.
    (Habe jetzt ein Buchpaket aus C++ Prime, Qt4-GUI-Entwicklung mit C++ und diesem Buch beisammen: http://www.c-plusplus.net/forum/p2342377#2342377 - spricht da was gegen?(C++ beherrscht doch Multi-threaing, oder?)
    MfG


  • Mod

    TizZel schrieb:

    Gibt es eine entsprechende Version auch zu C++, und wenn ja, wie finde ich die?

    Dem K&R in C entspricht in C++ am ehesten der Stroustrup 😃 . "The C++ programming language", nicht das andere (das andere ist eher ein Lehrbuch für absolute Anfänger. Was vielleicht auch nicht verkehrt wäre)

    Bishierhin auch schonmal ein danke an alle Poster, hat mir alles schon sehr geholfen.
    (Habe jetzt ein Buchpaket aus C++ Prime, Qt4-GUI-Entwicklung mit C++ und diesem Buch beisammen: http://www.c-plusplus.net/forum/p2342377#2342377 - spricht da was gegen?(C++ beherrscht doch Multi-threaing, oder?)
    MfG

    Gegen das Qt-Buch spricht ganz entschieden der Autor! Ein bekannter Stümper. Das dritte Buch ist mir in letzter Zeit auch mehrmals negativ aufgefallen, bin aber nicht 100% sicher ob das am Buch liegt oder ob das eine zufällige Häufung an eher untalentierten Lesern war. Das Inhaltsverzeichnis an sich sieht relativ vernünftig aus.

    Ja, C++ kann Multithreading. Seit C++11 ganz offiziell, vor C++11 gab es natürlich jede Menge Bibliotheken dafür (und ähnlich bei C).

    Was mir gerade auffällt ist, dass du dir gerade wahnsinnig viel auf einmal vornimmst. C und C++ sind ganz unterschiedliche Sprachen. C++ mit Qt ist ebenfalls praktisch eine eigene Sprache. Multithreading ist nochmal ein ganz neues Kapitel für das man schon einiges an Erfahrung haben sollte. Ich würde es an deiner Stelle wenigstens etwas langsamer angehen und vielleicht nur eines davon machen, das aber richtig.



  • Ich habe nicht vor, alles auf einmal durchzuarbeiten - im Gegenteil.
    Es ist nur so, dass ich C als Vorbereitung für C++ lernen will (und auch generell), und mit C++ dann später, in ferner Zukunft, auch mit der GUI-Entwicklung anfangen will.
    Keine Sorge, ich achte drauf, mich nicht zu übernehmen.
    Okay, dann muss ich mich wohl nochmal auf die Suche nach nem Guten GUI-Buch machen.


  • Mod

    C ist keine Voraussetzung für C++, es ist sogar eher so, dass es als eher hinderlich gilt, erst C zu lernen.



  • TizZel schrieb:

    Okay, dann muss ich mich wohl nochmal auf die Suche nach nem Guten GUI-Buch machen.

    Wozu?
    Lerne doch erstmal die Programmiersprache. Mit C++ bist Du sowieso 6-24 Monate beschäftigt. Danach kannst Du beim Stöbern in GUI-Büchern selbst viel besser entscheiden welches Dir zusagt.

    Würde übrigens auch empfehlen direkt mit C++ anzufangen. Es gibt keinen Grund vorher C zu lernen wenn C++ Dein Ziel ist.



  • Alles klar: dann C++ Prime direkt.
    Kann mir jemand sagen, ob es da auch Übungsaufgaben gibt, oder ob ch mir die selbst stellen muss?
    Zum GUI-Buch: Ich würde es mir gerne schon jetzt besorgen, denn dann kann ich's als Weihnachtsgeschenk vebuchen ;)(hat da zufällig jemand nen Tipp? Qt oder GTK?)
    Abschliesend würde mich mich noch über nen Link zu(m?) Stroustrup freuen - hab da nicht wirklich was gefunden, auser Informationen zum Entwickler von C++ - aber das hilft mir ja nun überhaupt nicht.



  • Sorry für Doppelpost, aber die Entscheidung ist gefallen: "C++Primer", "Einführung in die Programmierung mit C++" und "Die C++-Programmiersprache".
    Für den Fall, dass noch jemand ne Empfehlung oder nen Kommentar hat (auch zu nem GUI-Buch ;)), immer her damit - ich will nichts falsch machen.


  • Mod

    Sind sicherlich drei der besten Bücher am Markt. Ob man alle drei braucht, sei mal fraglich. Sie haben alle drei ziemlich unterschiedlichen Stil, inhaltlich gibt es aber natürlich deutliche Überschneidungen, da es eben Bücher für C++-Anfänger sind. Vielleicht magst du auch noch das Gratis-Ebook "Thinking in C++" angucken. Das ist inhaltlich auch ein Anfängerlehrbuch, aber mit nochmals einem komplett anderen Stil.

    Pass beim "C++ Primer" auf, nicht den "C++ Primer Plus" zu nehmen. Das ist ein komplett anderes Buch, ich würde fast schon behaupten ein Trittbrettfahrer.



  • Hmmm, okay...
    Naja, ich fand die beiden vom Stroutstrup auch praktisch als Referenz/Dokumentation - so wurden sie beschrieben.
    Gibt es den empfehlenswerte für "den Teil dannach"?
    Praktisch fand ich auch, dass sie gleich von Anfang an auf die grafische Entwicklung mit eingehen und Übungsaufgaben haben.
    Thinking in C++ gibbet nur in Eglisch, richtig?


  • Mod

    Lass dir nicht ausreden, alle drei zu nehmen. Schadet sicher nicht.

    Allgemein:
    http://www.c-plusplus.net/forum/310212
    Beachte vor allem die Links zu den Referenzen. Das sind jedoch hauptsächlich Referenzen zur Standardbibliothek, weniger zur Sprache selbst.

    Bücher "für danach" werden in den Bücherthreads ebenfalls empfohlen. Da ist die Auswahl auch nicht mehr so groß, es gibt ein paar Standardwerke, sonst nicht viel. Beachte aber, dass "danach" erst so ungefähr in 4-12 Monaten sein wird. Da würde ich jetzt noch nicht so viel drüber nachdenken.

    Grafische Entwicklung wird in keinem der Bücher vorkommen, außer eventuell ein bisschen in "Einführung in die Programmierung mit C++". Das ist kein Thema, mit dem man anfangen sollte. Wenn man die Sprache kann, guckt man sich an, wie das geht, falls man es braucht. Vorher nicht.



  • Dieser Thread wurde von Moderator/in SeppJ aus dem Forum C (C89, C99 und C11) in das Forum C++ (auch C++0x und C++11) verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • Alles klar, GUI fällt (erstmal) weg 🙂
    ist denn "Die C++-Standardbibliothek" ratsam, wenn man Anfänger ist?
    Danke fürs verschieben übrigens :=)



  • Oder machen Refernzbücher aktuell zuwenig sinn?



  • TizZel schrieb:

    Oder machen Refernzbücher aktuell zuwenig sinn?

    Nun, wenn du eins findest, was bereits C++11 unterstützt kannst du evtl drüber nachdenken.
    Generell find ich Referenzbücher aber schlecht. Online-Referenzen wie cppreference.com werden ständig aktuell gehalten und sind gratis verfügbar.


Anmelden zum Antworten