C für Anfänger

da_andy

homo informaticus
Hallo,
eine sehr gute Freundin von mir, mit der ich/wir gerade noch studieren, wird uns zum WS verlassen und wechselt zu den Informatikern, weil ihr der Kram mit BWL & Co. bei uns net passt.
So zum Abschied möchten wir ihr ein Buch schenken, weil sie im ersten Semester die Sprache C lernen muss usw.

So nun die Frage, welches Buch kaufen?

Sie ist eigentlich ein absoluter Noob, fängt also komplett bei 0 an, hat bisher nur was mit Java gemacht (einer unserer Module). Über Amazon habe ich jetzt das hier (1) herausgesucht.
Kennt jemand von euch das Buch oder kann vll was anderes empfehlen, wäre echt cool, wenn da jemand ein wenig unter die Arme gereifen könnte.

Preislich soll es so bis max. 20 Euro kosten, weil wahrscheinlich max. 3 Leute mitmachen werden.

Danke im Voraus!

MfG
Andy

(1) http://www.amazon.de/C-Programmieren-Anfang-Helmut-Erlenkötter/dp/3499600749/ref=pd_sim_b_2
 
Wenigstens einer von euch ist vernünftig geworden. (:

Ich habe mal kurz in die Bewertungen geschaut: Viele mit fünf Sternen. Aber schon die erste Bewertung mit einem Stern ist vernichtend. (Soviel zum Thema Mittelwerte.) Der Schreiber legt detailliert dar, warum man die Finger von dem Buch lassen sollte und wenn auch nur ein Zehntel der genannten Punkte in neueren Auflagen noch zutreffen, dann schließe ich mich dem an.

Der Klassiker ist "The C Programming Language (ANSI C)" (2. Auflage) von Kernighan und Ritchie. Das ist leider etwas angestaubt (es behandelt C89), aber fundiert (was man von den Entwicklern der Sprache wohl erwarten darf). Bitte nicht in deutscher Übersetzung, denn die wurden üblicherweise von Leuten gemacht, die *hust* wenig Erfahrung mit Programmierung haben.
 
Ich kann mich Tron nur anschliessen. Das Buch von Kernighan und Ritchie ist wirklich zu empfehlen.
 
@da_andy: Ich habe aus dem Verlag das C++ Buch und das ist wirklich ganz schlecht, ich kann mir gut vorstellen, dass die C Version nicht viel besser ist.

Der K&R ist schon ziemlich gut, wenn du nicht die erste oder zweite Ausgabe nimmst (falls du die noch bekommen solltest. ;-) ). Die zweite Auflage habe ich und da finde ich die Übungsaufgaben sehr schwer, teilweise beziehen sie sich auf Dinge, die noch gar nicht vorgestellt worden sind.
Auch ist da beim Quellcode der Beispiele etwas unübersichtlich, hier sind oft Variablen wie "a", "b", "x", "y" benutzt, wo sprechende Namen gerade für Einsteiger logischer gewesen wären.
Da die beiden Autoren aber noch zu Zeiten programmiert haben, wo es auf jedes Byte ankam, ist das natürlich legitim. ;)
 
Ich hab' sowohl das Goto C und Standardwerk besessen und durchgelesen.
Goto C:
Pro: Aufgaben mit Lösung, guter Schreibstil und Illust., mit CD
Con: schwer und man braucht echt zu viel Zeit zum lesen

Standardwerk:
Pro: in ein paar Tagen durchgelesen, man versteht dadurch die Konzepte anderer Unixtools, ist billig und einsteigerfreundlich geschrieben
Con: Ich musste mir noch ein weiteres Buch holen für die Lösungen. Beispiele sind ein wenig "old school"
 
Hmm sehr schade, dass es scheinbar so wenige Bücher auf Deutsch gibt. Wollte das Mädel net gleich mit Englisch überfordern, obwohl sie recht gut ist, nur kenne ich sie ziemlich gut und ich weiß, so einen Schinken über 600-800 Seiten und dann noch auf Englisch wird sie leider eher nicht lesen wollen. Zumal in C nur die Grundlagen vermittelt werden, soweit ich das Modulhandbuch gesehen habe, ist da eher oberflächlich gehalten, in die Tiefe geht es eigentlich, wie fast überall, nur noch in Java, dafür sind die Module im Bachelor nicht ausreichend, dass man da in C, C++ und dann noch Java lernt.
Wie gesagt soweit ich informiert bin, wird es C geben (1. Semeser) dann im zweiten geht es um C++ und später nur noch Java (1x Grundlagen und dann Vertiefung) weder mit C noch mit C++ beschäftigt sich bei uns jemand tiefer :-/ was ich zwar schade finde, aber so ist es halt.

MfG
Andy
 
Hallo,

ich habe folgende durchgearbeitet:
Go To C-Programmierung, Krüger
C von A bis Z, Wolf
Programmierenlernen mit C, Zeiner
Programmieren in C, Kernighan/Ritchie
Das Lösungsbuch zu Kernighan/Ritchie
The Pratice Programming, Kernighan, Pike
C in a Nutshell, Prinz/Crawford

Was Du so beschreiben hast würde ich auch zu Go To C-Programmierung raten da:
- ausfürchlich erklärt
- absolut Anfänger tauglich
- ziemlich umfassend
(Grundlagen der Sprache wie Datentypen, Ausdrücke, Anweisungen, Präprozessor, Arrays, Funktionen, Zeiger, Dateien usw UND Tips und Tricks (auch wenns vlt. doof klingt), Debugging, Profiling, make, Emacs(leider kein vim :) )
- auf deutsch
- CD mit den Lösungen

Anschließend würde ich Deiner Bekannten C in a Nutshell empfehlen.

Meine 2 Cent
 
Viel wichtiger, als das richtige Buch zu finden, ist, Motivation zu haben/finden, damit man sich auch mal richtig reinkniet.
Sie müsste also mal ein kleines Projekt finden, an dem sie wirklich Interesse hat, das umzusetzen.
Wenn einer sagt: "Du musst jetzt C lernen, hier ist ein Buch, lies dir das durch und danach kannst du es." ist was anderes, als wenn ich selbst sage: "Ich habe gerade die superduper-Idee xy, das würd ich total gerne in C programmieren, das ist ne gute Gelegenheit, C zu lernen und Spaß dabei zu haben." :)
 
Viel wichtiger, als das richtige Buch zu finden, ist, Motivation zu haben/finden, damit man sich auch mal richtig reinkniet.
Sie müsste also mal ein kleines Projekt finden, an dem sie wirklich Interesse hat, das umzusetzen.
Wenn einer sagt: "Du musst jetzt C lernen, hier ist ein Buch, lies dir das durch und danach kannst du es." ist was anderes, als wenn ich selbst sage: "Ich habe gerade die superduper-Idee xy, das würd ich total gerne in C programmieren, das ist ne gute Gelegenheit, C zu lernen und Spaß dabei zu haben." :)
Und das ist in meinen Augen der Punkt, über den die meisten an Programmierung interessierten Leute stolpern, dass die Motivation zwar da ist sich in ein neues Gebiet einzuarbeiten, man aber nichts hat, um das Gelernte praktisch einzusetzen. Wie auch, die meisten Materialien geben stellen Aufgaben der Marke:
Code:
Ein Kleinhandelsladen verrechnet bei jedem Kunden der am Wochenende einkauft 
einen Aufschlag von 5%, sollte es ein Großkunde sein (Betrag > 500€) 
so verringert sich dieser Aufschlag auf 2,5%. Schreibe ein Programm, dass den 
Preis vor dem Aufschlag und nach dem Aufschlag berechnet.
Und das ist nicht nur nicht wirklich lehrreich sondern auch ziemlich demotivierend.
 
Einmal aus Erfahrung mit Praktikanten, unserem Azubi, interessierten Personen und so weiter gesprochen, muss man sich zwei Dinge vor Augen führen:

1. Es gibt einen Unterschied zwischen "Programmieren lernen" und "eine Programmiersprache lernen". Wenn man das Prinzip und die Denkweise der Programmierung einmal verstanden hat, kann man praktisch jede Sprache relativ schnell und einfach erlernen.

2. Eine gute Lernsprache ist vergleichsweise leicht verständlich, gibt gute Fehlermeldungen, hat eine gute Unterstützung durch leicht zu bedienende Tools und unterstützt vor allem aktuelle Paradigmen. Daraus folgt direkt, dass C und C++ zwar sehr gute Sprachen sein mögen, als erste Sprache zum Erlernen des Handwerks allerdings ungeeignet sind. C ist zu alt und C++ hat einen viel zu hohen "Frustfaktor".

Ich halte nach wie vor das Buch "Objects first with Java" von David Barnes und Michael Kölling (auf Deutsch als "Java lernen mit BlueJ" erhältlich) als die beste je geschriebene Grundlagenlektüre zum Programmieren. Es wählt einen gänzlich anderen Ansatz als gängige Programmierbücher, stellt Architektur und Paradigmen über Syntax und Semantik. Dabei geht es in sehr kleinen Schritten vor, unterlegt alles mit interessanten und halbwegs motivierenden Beispielen (mit Hilfe von BlueJ) und schaut über den Tellerrand hinaus. Am Ende hat man ein fundiertes Grundlagenwissen über Programmierung allgemein und Java speziell, auf das man in Form eines Java-Vertiefungskurses oder einem Wechsel auf eine andere Sprache aufsetzen kann.

Das alles nützt dem Threadstarter allerdings überhaupt nichts und ist daher offtopic. :)
 
[OT]
Oha, apropos BlueJ... Da gibts ja längst ne neue Version von, die nicht in den Ports ist. Böser Maintainer, ganz ganz böse, heute gibts keinen Nachtisch!
[/OT]
 
Zurück
Oben