C Programmieren - Buch

MoingMoing

New member
Hallo,
ich programmiere in meiner Arbeit zur Zeit in C (freiwillig als Grundbasis, obwohl ich es nicht brauche) und C# für Programme die dann verwendet werden, und möchte mir aber jetzt auch noch ein oder zwei Bücher als Hilfe zum C programmieren dazu kaufen. Jetzt ist die Frage, welches Buch?
Es stehen zur Auswahl:



  • The C Programming Language (von Dennis Ritchie)

  • The C Programming Language (Edition 2) (von Dennis Ritchie)

  • Programmieren in C (von Brian W. Kernighan)

  • C Programmierung Lernen (von Andre Willms)

  • C in 21 Tagen (von P. Aitken)

  • 21st Century C: C Tips from the new School (von Ben Klemens)

Meine Fragen:
1. Welches Buch würdet ihr Empfehlen? Bitte mit Begründung.
2. Sollte ich dann bei "The C Programming Language" die Edition 2 nehmen? - Die ist ja neuer, aber inwiefern ist diese anders zur 'ersten' Edition?
3. Gibt es auch eine Übersetzung von der 2. Edition von "The C Programming Language" ? - oder ist "Programmieren in C" bereits die Übersetzung der 2. Edition?
4. Werden einem in allen der genannten Büchern auch GUI-Anwendungen beigebracht, oder nur in manchen? - Bitte schreibt es rein, in welchen Büchern GUI-Anwendungen gemacht werden und in welchen nicht. (Hab schon Bücher gesehen, wo nur Konsole gemacht wurde)

An alle die mir helfen, Danke
 
Hallo MoingMoing

"The C Programming Language" ist ein Klassiker aber restlos veraltet - so programmiert heute niemand mehr C. Es ist zudem lediglich eine Sprachreferenz und zum lernen eher ungeeignet. Das Buch wird auch nur noch aus Nostalgie gründen empfohlen und gekauft. Von der Deutschen Übersetzung ist abzuraten, da die Übersetzung nicht gut ist und vom Inhalt ist die Problematik gleich dem Englischen Original. Von Büchern mit "21 Tagen" ist generell nichts zu halten.

Wahrscheinlich wird keines der Bücher auf die GUI Programmierung eingehen, und wenn dann nur mit speziellen Bibliotheken (welche zu Lernzwecken erstellt wurden) die in in der echten Praxis nicht zum Einsatz kommen. Eigentlich wird C nicht mehr für die GUI Programmierung genutzt, es sei denn in Spezialfällen im Embedded Bereich.

Das Einzige wirklich noch gut funktionierende Framework zur GUI Programmierung ist GTK+. Allerdings erweitert GTK+ den Sprachumfang von C bspw. mit Pseudo-Objektorientierung und speziellen Bibliotheken. Wenn man C nicht in seiner Gesamtheit verstanden hat, sollte man davon die Finger lassen. Zumal es nicht mehr lange dauern wird, da wird GTK+ nicht mehr für Linux eingesetzt werden, da der Gnome Desktop (bzw. das ganze X-Window-System) u.a bald ersetzt wird (und GTK+ hauptsächlich nur noch dafür - neben GIMP - gepflegt wird) und dann auch den Zulauf verlieren wird. Ich würde hier keine Zeit mehr investieren. Warum willst du das überhaupt? Du hast doch C#, das ist für GUI Programmierung doch eindeutig besser geeignet. Zum schnellen Prototyping würde ich selbst als C-Praktiker eher Python verwenden als C. Dann lieber nach C noch C++ obendrauf lernen - da gibt es viele gute Libarys zur GUI Programmierung (Qt, Wxwidgets, FLTK usw...).


Ein Buch das ich dir absolut empfehlen kann ist "C Programming" bzw. manchmal auch als "C Programming: A Modern Approach" betitelt von K.N.King. Das Buch vermittelt C, wie es heute in der Praxis tatsächlich eingesetzt wird. Zudem sind die Beispiele gerade zu Pointern absolut genial. Dort lernt man auch bereits die ersten weiterführenden Themen z. B. mit Pointern auf Datenstrukturen zu arbeiten (verkettete Listen).
 
Zuletzt bearbeitet:
Warum ich C lernen möchte?
Ich kann dir genauso die Frage stellen: warum gibt es überhaupt C dann noch, warum wird es noch verwendet (z.B. alle Betriebssysteme sind in C programmiert, viele Zeitkritische Programme wo Java oder C# zu "langsam" wären und man in C einfach viel mehr raus holen kann)? Warum gibt es dann auch noch C++, oder Java? Warum verwenden nicht einfach alle C#? Es gibt Gründe dafür..

In der Arbeit hat ein Kollege ein etwas älteres (aus dem Jahr 2000 oder so) Buch, C in 21 Tagen, ich finde es soweit eigentlich gar nicht schlecht - muss ich zugeben, da hatte ich schon wesentlich schlechtere Bücher in der Hand. Auch wenn es teilweise übertrieben scheint mit den ganzen Übungsaufgaben am Schluss, sind diese dennoch hilfreich.

Ich wollte C als komplette Basis lernen, in der Berufsschule lerne ich zur Zeit C++, in der Arbeit brauche ich C#. Ich will, abgesehen von einem breiten Spektrum, auch eben C++ und C# gut können, Java möchte ich nach ner Zeit auch noch lernen, aber das alles baut eben größtenteils (Syntaxmäßig) auf C auf - und da es wiederum einfacher ist zuerst eine prozedurale Programmiersprache zu lernen statt direkt eine OO - da man als 'Anfänger' von der OO eher erschlagen wird - wollte ich mich eben zuerst mit C befassen.

In C# GUI-Anwendungen zu programmieren ist keine Herausforderung, nicht einmal annähernd. In C aber erst einmal eine gute Konsolenanwendung zu programmieren wiederum schon, da allein das Einlesen von Variablen wieder recht aufwendig ist, dann mit fflush(stdin) wieder den Speicher "leeren", und und und.

Klar ist C wesentlich schwerer, aber als Grundbasis für die folgenden Programmiersprachen etwas C zu können kann nie verkehrt sein.
Es sei mal dahingestellt, ob ich danach wirklich noch (viel) in C programmieren werde, aber schaden kann es meiner Ansicht nach nicht.

Edit.
Weil es mir gerade so einfällt:
Ich würde eben auch deutsche Bücher bevorzugen, da sie natürlich einfacher verständlich sind, was C Programming von K N King leider nicht ist. Schade

Und welche Programmiersprachen benutzt du denn am Häufigsten?
 
Zuletzt bearbeitet:
Warum ich C lernen möchte?

Du scheinst mich missverstanden zu haben. Die Frage bezog sich nur auf den GUI-Teil. Also warum du mit C GUI Anwendungen machen möchtest - bei deinem Eingangspost kam es so rüber, als würdest du darauf großen Wert legen.

Vielleicht reicht dein Knowhow noch nicht, aber man kann auch mit anderen Programmiersprachen die GUI erstellen und C im Unterbau benutzen. Fast jede Sprache hat C-Bindings. Man kann auch in C viele Skriptsprachen einbinden (LUA, Python ...) Wie gesagt, in C werden heute keine GUI Anwendungen mehr gemacht. GTK+ ist im Auslauf und sonst gibt es da auch nichts.

Edit zu deinem Edit :

Ich benutze auf der Arbeit so gut wie nur C, ASM und Perl. Arbeite im embedded Bereich. Wenn ich mal eine GUI brauche, prototype ich mir die in Python. Es gibt wie gesagt keinen Grund, das in C tun zu wollen. Und selbst wenn man glaubt es zu wollen, will man das nach GTK+ nicht mehr.

Zum Buch, ja das ist in Englisch. Aber es ist ein einfaches Englisch. Ich würde dir empfehlen, es zu versuchen - es gibt für C einfach nichts vergleichbares auf dem Deutschen Buchmarkt. Ohne Englisch reißt du in der Informatik eh nichts mehr, da so gut wie alle Dokumentationen ausschließlich auf Englisch verfügbar sind. Damit fängt man am besten so früh wie möglich an - jetzt hast du noch Zeit dazu.
 
Zuletzt bearbeitet:
Eine GUI später mal zu programmieren wäre bestimmt hilfreich, anfänglich gehts mir jetzt erstmal darum dass ich alle Grundkonzepte wie Pointer lerne.

Und ich dachte, man kann GUIs auch mit XForms machen und dies würde noch recht gut funktionieren.

Ich selber bin mir aber auch noch nicht so sicher, ob ich jetzt wirklich "richtig" mit C anfangen soll oder nicht. Mich würd es schon irgendwie reizen, das Buch von dem Kollegen (C in 21 Tagen) finde ich soweit ja auch nicht schlecht, mit C kann ich die Grundkonzepte lernen - aber ob es mir später dann langfristig weiterhelfen wird ist das andere. Grundkonzepte kann ich ja beispielsweise auch in C++ genauso lernen,...
 

Online-Statistiken

Zurzeit aktive Mitglieder
2
Zurzeit aktive Gäste
26
Besucher gesamt
28

Beliebte Forum-Themen

Zurück
Oben Unten