Forum: PC-Programmierung Suche ein gutes C-Buch für Fortgeschrittene


von Florian G. (Firma: Student) (flogo)


Lesenswert?

Hallo zusammen,

nunja, bei der Suche nach C-Büchern für Anfänger
wird man ja schon überhäuft...
Nach dem man so ein Buch durch hat, stellt man fest,
das es noch viel mehr gibt...

Schichtmodelle, Algorithmen, Kommunikationschnittstellen...
Also alles was über das einfache Programmieren hinausgeht.

Da ich mir das Programmieren selbst beibringe,
weiß ich natürlich nicht, was es noch alles großartiges gibt.

Deswegen wollte ich Euch fragen, welche geeigneten Bücher
Ihr mir ans Herz legen würdet?

Programmieren tue ich hauptsächlig mC (STM32)

Wenn Ihr gerade keine Bücher kennt,
aber eine Programmierausbildung hinter Euch habt,
wären Stichwörter zum Lehrinhalt auch von nutzen.

Danke Euch schonmal

: Verschoben durch Admin
von Udo S. (urschmitt)


Lesenswert?

Florian G. schrieb:
> Schichtmodelle, Algorithmen, Kommunikationschnittstellen...
> Also alles was über das einfache Programmieren hinausgeht.

Das hat dann aber nicht mehr unbedingt mit C zu tun.
Kommunikation und Schichtmodelle beschäftigen sich mit Protokollen und 
Protokollebenen, die Programmiersprache ist da egal.
Je nachdem ob es um serielle Schnittstelle TCP/IP oder USB oder andere 
Protokolle geht musst du entsprechend nach Büchern dazu suchen. Du 
kannst ja schauen ob die Beispiele dort in C gehalten sind.

Das gleiche gilt für Algorithmen. Wobei es hier vieleicht sinnvoller ist 
sich eine Handvoll herauszunehmen und im Internet zu stöbern um was es 
geht und selbst ein Beispiel zu programmieren. Dann versteht man es am 
besten.
Beispiele: (doppelt) verkettete Listen, Bäume, verschiedene Sorts etc.

Weiter gibt es Bücher in denen auf 'good practices' eigegangen wird, 
also wie man Fallstricke vermeidet und was sich in den letzten 30 Jahren 
als gute und weniger geeignete Methoden heraushestellt haben. Mir fällt 
dazu eines für C spontan ein (ist aber steinalt) "Writing solid code".

Lernen kannst du unendlich
Viel Spass dabei

von Andreas D. (rackandboneman)


Lesenswert?

Definitiv die "Deep C Secrets", auch wenn sie schon alt sind.

von Florian G. (Firma: Student) (flogo)


Lesenswert?

danke schön für die anregungen.

ok udo, mit den protokollen hast du recht,
mir gehts eher mit dem umgehen damit

werd mal schauen ob sich die alten kamellen noch finden lassen ;)

von XXX (Gast)


Lesenswert?

Hallo

Mir hat damals, lang ist's her, das Buch
Algorithmen in C  ( gab es auch für Pascal,.... )
sehr geholfen.

Weiterhin gab (gibt?) es da mal einen Doppelband über Compilerbau.
War ein roter Drache(?!) auf dem Einband.
Die Beschreibungen im Buch habe ich manchmal nicht wirklich verstanden!
Dafür konnte ich mir so einiges aus den Programmbeispielen
herausholen.

Gruß
Joachim

von Konrad S. (maybee)


Lesenswert?

XXX schrieb:
> Weiterhin gab (gibt?) es da mal einen Doppelband über Compilerbau.
> War ein roter Drache(?!) auf dem Einband.

"Compilerbau" Aho, Sethi, Ullmann

von Udo S. (urschmitt)


Lesenswert?

Ich habe gerade mal in Amazon gestöbert.
Bei den Kommentaren zu "Writing solid code" ist einer mit 2 Punkten. 
Über seine Argumente lässt sich streiten ist alles auch schon 11 Jahre 
her, aber er hat auch einige interessante Bücher aufgelistet.
Zitat:
"I rcommend "Extreme Programming Explained" by Beck, "Refactoring" by 
Fowler, and "Design Patterns" by Gamma et. al. Highly recommended. 
"Effective C++" and "More Effective C++" are also good."

Vor allem von den letzten beiden habe ich schon gehört. Vieleicht weiss 
jemand noch mehr darüber

von Arc N. (arc)


Lesenswert?

> Also alles was über das einfache Programmieren hinausgeht.

Falls es auch Online-Kurse sein dürfen (inkl. Skript, Fragen, 
Programmieraufgaben und z.T. Abschlussprüfungen)
Z.B.
"Design and Analysis of Algorithms I"
http://www.algo-class.org
und weitere von http://www.coursera.org (Stanford-Ausgründung) bzw. von 
der Konkurrenz:
http://www.udacity.com 1)
oder die normalen Kurse:
http://ocw.mit.edu
https://courseware.stanford.edu/pg/courses/current

Buch-Klassiker:
TAOCP, D.E. Knuth
ISBN: 978-0321751041

Compilers: Principles, Techniques, and Tools, Aho, Lam, Sethi, Ullman 
(das erwähnte Dragon Book)
ISBN: 978-0321486813

Compiler Construction, N. Wirth
ISBN: 0-201-40353-6
http://www.inf.ethz.ch/personal/wirth/Articles/CompilerConstruction/CBE.pdf

Code Complete: A Practical Handbook of Software Construction, S. 
McConnell
ISBN: 978-0735619678

Exceptional C++: 47 Engineering Puzzle, H. Sutter,
ISBN: 978-0201615623

Andere Programmiersprachen
Seven Languages in Seven Weeks, B.A. Tate
http://pragprog.com/book/btlang/seven-languages-in-seven-weeks
ISBN: 978-1-93435-659-3

(falls mehr Theorie gewünscht ist, könnte die Liste auch dahingehend 
erweitert werden...)

1) CS373 entspricht in etwa der im letzten Jahr gelaufenen 
www.ai-class.com.
"Knowledge of probability and linear algebra will be helpful." es werden 
u.a. Partikel- und Kalman-Filter angewandt...

von Kai S. (zigzeg)


Lesenswert?

Ein paar Kommentare zu den Buechern die ich davon kenne:

Arc Net schrieb:
>
> Buch-Klassiker:
> TAOCP, D.E. Knuth
> ISBN: 978-0321751041

Klassiker, aber nicht leich verdaulich, da alle Beispiele in einem 
abstrakten Assembler (MMIX). Eher ein absolutes Grundlagenbuch. Spaeter!

> Compilers: Principles, Techniques, and Tools, Aho, Lam, Sethi, Ullman
> (das erwähnte Dragon Book)
> ISBN: 978-0321486813

Auch so ein Klassiker, aber auch fuer eher noch weiter Fortgeschrittene.

> Exceptional C++: 47 Engineering Puzzle, H. Sutter,
> ISBN: 978-0201615623

Nettes Buch, aber fuer C++ - fuer C Programmierung eher sinnlos, denke 
ich.


Nachdem man die Grundlagen einer Programmiersprache gelernt hat ist 
sicherlich ein Buch ueber Datenstrukturen und Algorithmen das naechste, 
so wie das schon erwaehnte "Algorithmen" von Sedgewick. Gibt da durchaus 
noch ein paar andere, manche davon auch eher theoretisch. Ideal mal in 
einer Buchhandlung ein paar Buecher anschauen, und dann eins aussuchen 
was einem vom Stil zusagt (oder halt ueber z.B. Amazon mal ein Kapitel 
probelesen).

ZigZeg

von Arc N. (arc)


Lesenswert?

Kai S. schrieb:
> Ein paar Kommentare zu den Buechern die ich davon kenne:
>
> Arc Net schrieb:
>>
>> Buch-Klassiker:
>> TAOCP, D.E. Knuth
>> ISBN: 978-0321751041
>
> Klassiker, aber nicht leich verdaulich, da alle Beispiele in einem
> abstrakten Assembler (MMIX). Eher ein absolutes Grundlagenbuch.
> Spaeter!

Jein... es muß nicht unbedingt Knuth sein (s.u.).
Angewandt bzw. transferiert werden muss das Wissen in jedem Fall, da zum 
einen
> Programmieren tue ich hauptsächlig mC (STM32)
und zum anderen die neueren Bücher alle Java als Programmiersprache 
verwenden (auch dieses Umschreiben von Java/MMIX nach C kann u.U. beim 
Verständnis der Algorithmen helfen).
(Algorithms in C, Parts 1-4 von Sedgewick, ISBN: 978-0201314526 vs. 
ISBN: 978-0321573513 aktuelle Java-Version).

> Nachdem man die Grundlagen einer Programmiersprache gelernt hat ist
> sicherlich ein Buch ueber Datenstrukturen und Algorithmen das naechste,
> so wie das schon erwaehnte "Algorithmen" von Sedgewick. Gibt da durchaus
> noch ein paar andere, manche davon auch eher theoretisch.

Eins hatte ich noch vergessen:
Datenstrukturen und Algorithmen, R.H. Güting, S. Dieker
(u.a. z.T. so nicht in anderen Büchern zu findende geometrische 
Algorithmen http://dna.fernuni-hagen.de/publications.html)
ISBN: 978-3519221210
http://books.google.de/books/about/Datenstrukturen_und_Algorithmen.html?id=uXKyuK0jVJsC&redir_esc=y

> Ideal mal in
> einer Buchhandlung ein paar Buecher anschauen, und dann eins aussuchen
> was einem vom Stil zusagt (oder halt ueber z.B. Amazon mal ein Kapitel
> probelesen).

Besser Uni-Buchhandlung oder Bibliothek falls erreichbar, "normale" 
Buchhandlungen haben (hier) häufig nur noch irgendwelche 
Dummy-Irgendwas-Bücher im Regal.

von Florian G. (Firma: Student) (flogo)


Lesenswert?

puuh, da kam doch schon einiges zusammen

danke euch,
sehe schon, da kommt schwere kost auf mich zu ;)

von Alex (Gast)


Lesenswert?

Hallo !

Habe vor kurzem C/C++-Fernkurs bei SGD gemacht und da war mir von SGD 
das Buch "Algorithmen in C" empfohlen.
Sehr interessantes Buch mit vielen Beispielen..
[[http://www.tauschdeal.com/details.php?wareid=4]]

von Brater (Gast)


Lesenswert?

Wie wäre es mit Tanenbaum? Oder ist das zu speziell auf 
Systemprogrammierung ausgelegt?

von Jeje (Gast)


Lesenswert?

Brater schrieb:
> Wie wäre es mit Tanenbaum? Oder ist das zu speziell auf
> Systemprogrammierung ausgelegt?

Der Tanebaum ist eher ein Grundlagenwerk dessen Wissen einem hilft zu 
verstehen was eigentlich im Betriebssystem passiert, wenn man sich dann 
mit Systemprogrammierung beschäftigt.

Hab den Tanebaum die letzten 6 Monate fürs Studium durchgearbeitet und 
kann versichern, dass es nur sehr wenige Code-Beispiele gibt. Das meiste 
ist eben Prosa. Die wenigen Code-Beispiele beschränken sich dann auf 
Beispiele zu Semaphoren oder Dinge wie dem Philosophenproblem. Wo dann 
verdeutlicht wird, wie man sich im Laufe der Geschichte für ein Problem 
von Konzept zu Konzept gehangelt hat. Ich fande es interessant und für 
Leute die sich mit Systemprogrammierung beschäftigen wollen in meinen 
Augen eine Pflichtlektüre. Allerdings ist das eben nichts für "Learning 
by Doing".

Das Buch "Algorithmen in C" wurde ja schon erwähnt. Ich würde hier aber 
wirklich zur englischen Auflage greifen. Algorithmen in C ist von 1992. 
Die Englische Auflage ist von 2001 und mit 2 Büchern inzwischen deutlich 
umfangreicher im Inhalt: 
http://www.amazon.de/Algorithms-Parts-1-5-Bundle-Fundermentals/dp/0201756080/ref=sr_1_sc_1?ie=UTF8&qid=1379026108&sr=8-1-spell&keywords=Algorithsm+in+C

von Arc N. (arc)


Lesenswert?

Jeje schrieb:
> Das Buch "Algorithmen in C" wurde ja schon erwähnt. Ich würde hier aber
> wirklich zur englischen Auflage greifen. Algorithmen in C ist von 1992.
> Die Englische Auflage ist von 2001 und mit 2 Büchern inzwischen deutlich
> umfangreicher im Inhalt:
> 
http://www.amazon.de/Algorithms-Parts-1-5-Bundle-Fundermentals/dp/0201756080/ref=sr_1_sc_1?ie=UTF8&qid=1379026108&sr=8-1-spell&keywords=Algorithsm+in+C

Oder die Online-Variante
https://www.coursera.org/course/algs4partI (läuft noch)
https://www.coursera.org/course/algs4partII (ab 1. November)
Nachteil: Das ist die Java-Version...

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.