Suche ein gutes C-Buch für Fortgeschrittene

OP (Firma: Student) #2536113
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
#2536125
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
Gast #2536521
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
#2536561
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
#2536579
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...
#2536622
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
#2536696
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.
Gast #3318934
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
#3318943
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...

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren