Hallo zusammen, da "C von A bis Z" von Jürgen Wolf völlig verpönt ist und das KR-Buch meines Erachtens einfach nicht mehr Up-To-Date ist, suche ich oft nach neuen Quellen für die Fortbildung in C. Dabei bin ich auf Seite [1] gestoßen, die eine frühe Online-Version eines C-Buchs darstellt. Frage: kennt jemand von euch diese Seite? Was ist euer erster spontaner Eindruck von der Qualität mit folgenden Kriterien: - Qualität des Quellcodes - didaktischer Aufbau - Auswahl der Themen - optische Präsentation Gruß Dennis [1]: http://c.learncodethehardway.org
Dennis S. schrieb: > das KR-Buch meines Erachtens einfach nicht mehr Up-To-Date ist Abgesehen davon, daß C99 nicht behandelt wird, was bitte spricht dagegen? Ansonsten ist das verlinkte "Buch" ein Tutorial, und kein Buch, das C beschreibt. Da sehe ich einen sehr deutlichen Unterschied. Obendrein ist das Tutorial nur unter unixoiden Betriebssystemen verwendbar:
1 | For Windows users I'll show you how to get a basic Ubuntu Linux |
2 | system up and running in a virtual machine so that you can still |
3 | do all of my exercises, but avoid all the painful Windows |
4 | installation problems. |
5 | |
6 | ... have to figure this one out. |
Das sind reichlich eng angeschnallte Scheuklappen.
:
Bearbeitet durch User
Rufus Τ. Firefly schrieb: > Abgesehen davon, daß C99 nicht behandelt wird, was bitte spricht > dagegen? Kannst du das genauer erläutern? K&R2 kam 1990 raus, dazwischen liegt (grob) C95, C99 und C11. An sich ist es doch nicht schlecht gleich mit modernen Konzepten in Berührung zu kommen? Oder sind neue Entwicklungen so unwichtig? > Ansonsten ist das verlinkte "Buch" ein Tutorial, und kein Buch, das C > beschreibt. Da sehe ich einen sehr deutlichen Unterschied. Da stimme ich dir zu, auch wenn ich das pauschal nicht nachteilig sehe, weil die Kapitel aufeinander aufzubauen scheinen. > Obendrein ist das Tutorial nur unter unixoiden Betriebssystemen > verwendbar: > >
1 | > For Windows users I'll show you how to get a basic Ubuntu Linux |
2 | > system up and running in a virtual machine so that you can still |
3 | > do all of my exercises, but avoid all the painful Windows |
4 | > installation problems. |
5 | > |
6 | > ... have to figure this one out. |
7 | > |
> > > Das sind reichlich eng angeschnallte Scheuklappen. Hmm.. da steht aber nicht "keiner dieser C-Beispiele ist unter Windows lauffähig". Versteh mich nicht falsch: ich finde es gut, dass du dich hier an der Diskussion beteiligst und ich bin mir auch sicher, dass du fachlich ausgezeichnete Kenntnisse hast. Dennoch würde ich mir hier etwas mehr "Substanz" wünschen. Mir geht es nicht darum die K&R-Fans zu bekehren (funktioniert eh nicht) sondern in erster Linie eine sinnvolle Alternative zu evaluieren. Wichtig ist hier mMn in erster Linie die Qualität des Codes. Sprich: wenn ein Einsteiger das Programmieren mit dieser Seite lernen würde, wird er dann für den Rest des Lebens unglücklich sein!? ;-) Gruß Dennis
Dennis S. schrieb: > K&R2 kam 1990 raus, dazwischen liegt > (grob) C95, C99 und C11. An sich ist es doch nicht schlecht gleich mit > modernen Konzepten in Berührung zu kommen? Oder sind neue Entwicklungen > so unwichtig? Nun, es gibt nach wie vor Compiler, die nichts neueres als C90 unterstützen. Das betrifft insbesondere kommerzielle Compiler. Und daß das "Tuotorial" hier in irgendeiner Weise auf "moderne Konzepte" eingeht, kann ich beim besten Willen nicht erkennen. Ja, stdint.h wird erwähnt, aber das war es dann auch schon. Dennis S. schrieb: > Da stimme ich dir zu, auch wenn ich das pauschal nicht nachteilig sehe, > weil die Kapitel aufeinander aufzubauen scheinen. Das tun sie zwar, aber erklären sie etwas? In http://c.learncodethehardway.org/book/ex3.html wird munter mit printf hantiert, ohne daß irgendwo erwähnt wird, was Datentypen sind. Die kommen erst einige "Kapitel" später, und http://c.learncodethehardway.org/book/ex6.html halte ich für sehr, sehr dürftig. Jemand, der keine Ahnung davon hat, was Variablen und Datentypen sind, kann hier zwar herumspielen, aber Verständnis, was das ganze ist, wozu es da ist, lernt man da nicht. Auch das hier http://c.learncodethehardway.org/book/ex21.html ist sehr fragwürdig. > Hmm.. da steht aber nicht "keiner dieser C-Beispiele ist unter Windows > lauffähig". Kein einziges der Beispiele ist mit der gelieferten Anleitung unter Windows zum Laufen zu bekommen. Da muss entweder mit cygwin ein kompletter Linux-Emulations-Layer verwendet werden, oder, wie der Autor vorschlägt, gleich mit einem Linux in einer virtuellen Maschine gearbeitet werden. Und durch die Verwendung von Sprachfeatures, die nach wie vor von vielen Compilern nicht unterstützt werden, werden die Nutzer dieser Compiler ausgeschlossen. (Wie z.B. hier: http://c.learncodethehardway.org/book/ex24.html) Ein gutes C-Buch konzentriert sich auf die Sprache, nicht auf die Nutzung eines spezifischen Compilers unter einem spezifischen Betriebssystem. Dieses Tutorial ist die Linux-Variante der etlichen "Ich-klicke-mich-durch-VC++(irgendeine-Version)-durch"-Bücher. Weniger Screenshots, aber auch kein Verständnis.
Es ist die Frage, was Du machen willst. Was nützt es Dir einen neuen Standard zu lernen, und dann zu merken, dass Dein Compiler den nicht so richtig unterstützt. Siehe auch http://herbsutter.com/2012/05/03/reader-qa-what-about-vc-and-c99/ http://blog.smartbear.com/codereviewer/c11-a-new-c-standard-aiming-at-safer-programming/ D.h. es kommt wirklich darauf an, was Du machen willst. Es ist nicht verkehrt den minimal-Standard (K&R) sehr gut zu kennen, um sich dann später die weiteren Möglichkeiten anzuschauen, um dann vor der jeweiligen Plattform vor der man Sitzt entsprechend Abstriche machen zu können.
Danke für eure Einschätzung.. ich persönlich werde mir das Ganze trotzdem genauer ansehen. Ich finde den Ansatz "Ausprobieren", "Verändern", "Verstehen" ganz gut. Auch, das Tools wie "Valgrind" und "GDB" eingeführt werden finde ich sinnvoll. Rufus Τ. Firefly schrieb: > Jemand, der keine Ahnung davon hat, was Variablen und > Datentypen sind, kann hier zwar herumspielen, aber Verständnis, was > das ganze ist, wozu es da ist, lernt man da nicht. Naja, wer - wie empfohlen - bereits eine Programmiersprache beherrscht und dann noch keine Ahnung hat was das ist, hat auch was falsch gemacht oder? Mal sehen wie die Seite aussieht wenn sie aus der Alpha-Version raus ist.. Gruß Dennis
Dennis S. schrieb: > Mal sehen wie die Seite aussieht wenn sie aus der Alpha-Version raus > ist.. Ich wollte mich da eigentlich nicht wirklich einmischen, aber ich hoffe dann doch, dass sich da noch viel tut bzw. im Hintergrund schon getan hat. Das Inhaltsverzeichnis dieses Tutorials liest sich ja nicht schlecht, aber wenn ich mir die einzelnen Kapitel ansehe, dann sind eigentlich die meisten Kapitel schon sehr dürftig abgehandelt. Eine Bildschirmseite Erklärung, dann ein längerer Programmtext. Soll sich der Leser die Details aus dem Programmtext herausfischen? > Kannst du das genauer erläutern? K&R2 kam 1990 raus, dazwischen > liegt (grob) C95, C99 und C11. An sich ist es doch nicht schlecht > gleich mit modernen Konzepten in Berührung zu kommen? Welche modernen Konzepte meinst du, die C99 (oder C11) so grundlegend von C90 unterscheiden? > Oder sind neue Entwicklungen so unwichtig? Keineswegs. Ich sehe das so. Wenn jemand einen wirklich soliden Grundstock in C90 hat, dann gibt es für ihn in C99 oder C11 nicht mehr allzuviel, was ein radikales Umdenken erfordern würde. C11 funktioniert zu mindestens 95% genau gleich wie C90 und die Basics ... sind nach wie vor genau dieselben. Gut, ok. die Neuerungen sind im K&R2 natürlich nicht drinnen, aber wer den K&R2 beherrscht, kann mehr als die meisten, die sich durch derartige Tutorien durchgearbeitet haben. Nur als Beispiel: http://c.learncodethehardway.org/book/ex9.html Was? Das ist alles was dem Autor zum Thema C-style Strings einfällt? Das kann doch nicht alles gewesen sein. Da ist ja der String-Teil hier in der FAQ umfangreicher und der ist schon auf das Aller-Aller-Notwendigste abgespeckt.
:
Bearbeitet durch User
Jedes Mal, wenn ich den K&R in die Hand nehme, denke ich mir: Dieses alte Buch kann unmoeglich noch die Referenz in Sachen C sein. Und in der Tat ist es recht angestaubt - aber ein wuerdiger Nachfolger ist mir noch nicht in die Finger gekommen. Es gibt dickere Buecher, umfangreichere Buecher - aber ich kenne keines, das so gut strukturiert und trotz seiner Kompaktheit auch mit Tiefgang alles Wichtige behandelt.
Karl Heinz Buchegger schrieb: > Ich wollte mich da eigentlich nicht wirklich einmischen, Ich eigentlich auch nicht -- aber sind die C Wikibooks denn nicht recht gut? http://en.wikibooks.org/wiki/C_Programming http://de.wikibooks.org/wiki/C-Programmierung Ich dachte eigentlich C wäre damit erschlagen. Für C++ wüsste ich nichts wirklich vollständiges freies aktuelles -- Thinking in C++ von Bruce Eckel ist ja schon etwas angestaubt, aber ich habe es auch auf Papier und werde es wohl noch mal lesen...
Stefan Salewski schrieb: > Ich eigentlich auch nicht -- aber sind die C Wikibooks denn nicht recht > gut? Gleich vorweg: Ich hab da jetzt nur schnell drübergeschaut und einzelne Kapitel überflogen. > > http://en.wikibooks.org/wiki/C_Programming Das macht eigentlich einen recht guten Eindruck > > http://de.wikibooks.org/wiki/C-Programmierung Ich dachte erst, das wäre eine deutsche Übersetzung vom ersten Link. Bei genauerem Hinsehen ist dem aber nicht so. Das englischsprachige Wiki ist definitiv besser. > Ich dachte eigentlich C wäre damit erschlagen. Ja, sieht gut aus. > Für C++ wüsste ich nichts wirklich vollständiges freies aktuelles -- > Thinking in C++ von Bruce Eckel ist ja schon etwas angestaubt, aber ich > habe es auch auf Papier und werde es wohl noch mal lesen... Ich out mich mal als Oldtimer. Ich hab generell die Papierversion lieber als eine Online-Version. Das Buch kann die ganze Zeit neben dem Monitor liegen, Postit's reingeklebt werden, mit Bleistift Anmerkungen gemacht werden. Ganz gerne hab ich dann auch zwischen den Seiten Ausdrucke von Programmen eingelegt, welche irgendwelche Besonderheiten zeigen, die im Buch vielleicht nur angesprochen werden, Alternativen. etc. etc. Kurz gesagt: Ich bin mit Online-Büchern nie richtig warm geworden. Allerdings bin ich auch Old-school mit Büchern aufgewachsen.
Ich oute mich dann auch mal als Oldtimer... Nein ernsthaft, ich empfehle dir unbedingt, den K&R zu lesen. Und zwar aus vielen Gründen: Zunächst kann man den tatsächlich lesen. Es ist ein (wirklich angenehm) lesbarer, zusammenhängender Text und kein Nachschlagewerk. Die aktuelle deutsche Übersetzung ist m.M.n. ganz hervorragend gelungen. Beispielsweise kommt der Übersetzer mit erstaunlich wenigen Lehnwörtern aus; stattdessen werden deutsche Fachbegriffe eingeführt und dann konsequent verwendet (das stiftet nämlich keine Verwirrung). Es liest sich also fast ganz ohne Denglisch. Dann wurde das Buch von den Erfindern dieser Programmiersprache (...) geschrieben und zwar zu einer Zeit, als die Sprache selbst auch noch nicht in aller Munde war. Es liest sich so, als ob jemand neben dir steht und dir etwas ganz neues vorstellen und erklären möchte. Beim Lesen bekommt man daher auch etwas Gefühl für die Programmiersprache, das halte ich für sehr wichtig. Man erfährt, warum etwas gerade so ist, wie es eben ist. Wie du anschließend den Schritt zu C99 und so weiter machst, dafür gibts viele Möglichkeiten. Aber es hilft in jedem Fall, C zu begreifen. Ein schönes Werk als Ergänzung wäre dann z.B. 'C in a nutshell' (O'Reilly).
Sven P. schrieb: > Die aktuelle deutsche Übersetzung ist m.M.n. ganz > hervorragend gelungen. Nur für Antiquare interessant: Die Übersetzung der ersten Ausgabe, also die, die das klassische K&R-C vor C89 beschreibt, die ist hingegen grauenerregend.
Dennis S. schrieb: > wenn ein Einsteiger das Programmieren mit dieser Seite lernen > würde, wird er dann für den Rest des Lebens unglücklich sein!? ;-) Wessen Glück DAVON abhängt, der sollte den Beruf wechseln oder sich gleich erschiessen. Gruss Reinhard
Stefan Salewski schrieb: > Karl Heinz Buchegger schrieb: >> Ich wollte mich da eigentlich nicht wirklich einmischen, > > Ich eigentlich auch nicht -- aber sind die C Wikibooks denn nicht recht > gut? > http://de.wikibooks.org/wiki/C-Programmierung > Ich dachte eigentlich C wäre damit erschlagen. Da fehlt ja die Hälfte. > Für C++ wüsste ich nichts wirklich vollständiges freies aktuelles -- > Thinking in C++ von Bruce Eckel ist ja schon etwas angestaubt, aber ich > habe es auch auf Papier und werde es wohl noch mal lesen... Das Buch ist grauenhaft, von jemandem geschrieben der nur die Sprachfeatures runterleiert und keine Ahnnung von der Praxis hat, der andere Guru mit der grottigen 70er Frisur dessen Name mit gerade nicht einfällt, gibt das sogar noch offen zu. Der macht ausser den Standard auswendig zu lernen und Bücher darüber zu schreiben/Vorträge zu halten nichts anderes, der hat das ganze Zeug nie in der Praxis benutzt, das ist doch lächerlich. Diese Zwangsneurose speziell unter deutschen Entwicklern sich penibel an den Standard einer Sprache zu orientieren ist eine typisch deutsche Beamtenmacke. In der Praxis hat man es immer mit einem konkreten Compiler zu tun der ist mehr oder weniger Standardkonform, an dem muss man sich orientieren, da nützt mir der Standard nix, wenn der Compiler sich nicht daran hält. Noch lustiger wird es wenn man auf einen anderen Compiler auch noch auf einem anderen System umsteigt der hat dann wieder andere Lücken was den Standard betrifft von noch ganz anderen Problemen wie Systemaufrufen,... Diese Standards sind eine Richtlinie für Compilerbauer, für Entwickler ist das verlorene Zeit bzw. vergebene Mühe sich penibel daran zu halten in der Hoffnung damit wenig Probleme zu haben. Da ist eher das Gegenteil der Fall, weil eben die meisten Compiler nicht 100% Standardkonform sind, ok vielleicht bei so Primitivsprachen wie C, da besteht ja eh der halbe Standard aus "not defined", das zeigt doch schon wie butterweich diese Standards sind, in C++ ist es ähnlich, da lässt man bewusst vieles offen, aber viele Entwickler die später mit dem Compiler arbeiten raffen nicht warum das so ist und der Standard deshalb kein Zwangskorsett ist und dass Code auch noch automatisch besser und portabler (LOL) macht. Lerne die Macken deiner Toolchain kennen (Compiler, Linker,..) damit wirst du dich mehr rumschlagen müssen als über Standardkonformität, das ist als Anfänger völlige Nebensache. An den Ursprungsposter: Nimm irgendein Buch, das "deine" Platform und Compiler behandelt die du später nutzt, das arbeitest du durch und wenn noch Lücken offen sind nimmst du das nächste Buch oder Tut. das kann dann auch allgemein gehalten sein oder für eine andere Platform/Compiler, meist hat man dann nur noch Detailfragen zu bestimmten Dingen, die das erste Buch nur streifte oder ganz weglies. Bücher über C für Microcontroller setzen andere Schwerpunkte als C-Bücher für Systemprogrammierung, also nicht verrückt machen lassen, von dem Oberlehrergelaber hier. Mach dir keinen Kopf über Standards, setz dich einfach hin und schreib fleissig Programme, mit C kannst du da nicht viel falsch machen von dem butterweichen "Standard" abzuweichen und wenn ist es auch erst mal egal. Gute Programme entstehen durch andere Dinge als sich penibel an ISO-Standards zu halten.
Schwen Gel schrieb: >> Ich eigentlich auch nicht -- aber sind die C Wikibooks denn nicht recht >> gut? >> http://de.wikibooks.org/wiki/C-Programmierung >> Ich dachte eigentlich C wäre damit erschlagen. > Da fehlt ja die Hälfte. > Mag sein, dass noch etwas fehlt. Soweit ich mich errinnere hatte ich mir auch mehr die englische Version angesehen -- wer sich auskennt und meint, dass etwas fehlt kann ja Ergänzungen schreiben. >> Für C++ wüsste ich nichts wirklich vollständiges freies aktuelles -- >> Thinking in C++ von Bruce Eckel ist ja schon etwas angestaubt, aber ich >> habe es auch auf Papier und werde es wohl noch mal lesen... > Das Buch ist grauenhaft, Nun, die letzte Auflage ist von 2000, damals hatte das Buch recht gute Bewertungen. Ich hatte es gekauft, da es auch als PDF frei verfügbar ist, das finde ich schon sehr löblich. Persönlich gefällt es mir nicht so ganz, ich hatte vor 6 Jahren die ersten 200 Seiten gelesen, dann aber unterbrochen, da mir C++ eh nicht wirklich gefällt und ich zum Glück C++ auch nicht benötigt habe -- mir einer Ausnahme, momentan nutze ich von Ruby aus einige Funktionen von CGAL und Boost, und musste die Binddings selber schreiben. Das Buch ist sicher mehr ein Anfängerbuch, das ist klar. Die ersten 100 Seiten haben mich sehr gelangweilt, da geht es allgemein um objektorientierte Programmierung, das kennt man ja eh. Templates kommen erst ganz hinten, mit denen kämpfe ich bei Boost und CGAL. Na ja, ich werde es nochmal zu ende lesen. Den Rest Deines Postings habe ich jetzt nicht mehr gelesen, ich hatte den Eindruck da kommt nicht mehr viel produktives.
Dennis S. schrieb: > - Qualität des Quellcodes Leider ist sehr viel Spaghetti-Code vorhanden: Keine Kommentare, keine Verbreitetet Coding-Rules. Nur beim Überfliegen gesehen: int = 32 Bit ist schon mal ein Killer-Kriterium, es kann ebenso 16 oder 64 Bit groß sein oder sogar 128, auch wenn ich keine Implementation kenne die 128 verwendet. > - didaktischer Aufbau > - Auswahl der Themen Auf Dinge wie Dinge wie "Duff's Device" lann man locker verzichten, man muß nicht die komplette Vorhölle von C durchwandern, um es zu lernen. "Awesome Debug Macros" ist m.E. ebenfalls übel und zeigt alles andere als gute Coding-Rules (Makro-Wahn, goto aus Makros heraus, etc.) > - optische Präsentation Fehlende Coding-Rules machen sich unangenehm bemerkbar, etwa bei sehr langen Zeilen, die aus dem Design rausschießen. Für meinen Geschmack ist die Source-Formatierung sehr unruhig. Eine rein farbliche Unterlegung der Quelle ist m.E. besser und ermüdungsfreier lesbar als alldauern den Schriftschitt zu wechseln (Makros, Kommentare, Klammern, ...) An vielen Stellen wird sich auf Zeilen der Quelle bezogen, ohne daß die Quellzeilen nueriert sind. Jedenfalls lernt man zählen beim Lesen :-P > [1]: http://c.learncodethehardway.org Insgesamt ist das, was ich gesehen habe, nicht dazu angetan es weiter zu lesen oder jemand zu empfehlen, der gerne C lernen möchte.
Rufus Τ. Firefly schrieb: > Und durch die Verwendung von Sprachfeatures, die nach wie vor von vielen > Compilern nicht unterstützt werden, werden die Nutzer dieser Compiler > ausgeschlossen. > (Wie z.B. hier: http://c.learncodethehardway.org/book/ex24.html) Das wäre mir ehrlich gesagt aber auch egal. Es ist ja nicht so, daß diese Features erst seit gestern existieren. Vielmehr sind sie seit fast 15 Jahren eigentlich Pflicht für jeden konformen C-Compiler. Bei den meisten Features war es zusätzlich schon Jahre davor bekannt, daß sie Teil von C werden sollten. Es gab also schon genug Vorlauf, um bereits 1999 einen zu C99 konformen Compiler rauszubringen. Was kann das Tutorial dafür, wenn Microsoft das bis heute nicht geschafft hat? > Ein gutes C-Buch konzentriert sich auf die Sprache, nicht auf die > Nutzung eines spezifischen Compilers unter einem spezifischen > Betriebssystem. Das dürfte außer unter Windows eigentlich unter fast jedem halbwegs aktuellen Betriebssystem funktionieren. Und es ist auch nicht nur für einen spezifischen Compiler gemacht. cc ist unter Unix-artigen Systemen traditionell der Link auf den default-Compiler des Systems. Das muß nicht zwingend gcc sein.
@Johann: Danke für deine interessante Einschätzung! Ich denke dann kann ich mir das Durcharbeiten dieser Seite sparen. ;-) Gruß Dennis
Schwen Gel schrieb: > Diese Zwangsneurose speziell unter deutschen Entwicklern sich penibel an > den Standard einer Sprache zu orientieren ist eine typisch deutsche > Beamtenmacke. In der Praxis hat man es immer mit einem konkreten > Compiler zu tun der ist mehr oder weniger Standardkonform, an dem muss > man sich orientieren, da nützt mir der Standard nix, wenn der Compiler > sich nicht daran hält. Etwas kurzsichtig gedacht. Es gibt ein Leben ausserhalb deines Lieblingsbetriebssystems / Compilers. Unser Produkt hier musste auf Windows, OS/2, Linux, HP-UX, Sun, Vax, IBM-Z/OS, AS400 und Siemens BS2000 compilierbar und Lauffähig sein. Inzwischen istdie Plattformvielfalt zum Glück etwas geschrumpft. Aber da lernt man Standards zu schätzen und Compiler zu verfluchen die sich nicht daran halten!
Rolf Magnus schrieb: > Das wäre mir ehrlich gesagt aber auch egal. Es ist ja nicht so, daß > diese Features erst seit gestern existieren. Vielmehr sind sie seit fast > 15 Jahren eigentlich Pflicht für jeden konformen C-Compiler. Der Verzicht auf diese Features aber ist kein Beinbruch, insbesondere sehe ich bei diesem Tutorial hier auch keinerlei didaktischen Mehrwert. > cc ist unter Unix-artigen Systemen > traditionell der Link auf den default-Compiler des Systems. Wenn man die Scheuklappen absetzt, erkennt man, daß es tatsächlich auch nicht-unixoide Betriebssysteme gibt. Ob man das schön findet oder nicht, hilft nicht. Und auch wenn sich MS Mühe gibt, Windows immer unbedienbarer zu machen, so weit verschwunden, daß es irrelevant ist, ist es noch lange nicht.
Johann L. schrieb: >> [1]: http://c.learncodethehardway.org > > Insgesamt ist das, was ich gesehen habe, nicht dazu angetan es weiter zu > lesen oder jemand zu empfehlen, der gerne C lernen möchte. Jetzt mal abgesehen vom C Teil. Was ich löblich finde, ist der Versuch, grundlegende Konzepte zu vermitteln. Wie zb Listen, Hashmaps oder auch einfache Binary Trees. zb http://c.learncodethehardway.org/book/ex40.html Aber: Ich will ja nicht sagen, dass meine Art diese Dinge zu vermitteln die einzige wahre ist, möchte aber schon auch anführen, dass solche Konzepte (gilt auch für Listen bzw. meistens für dynamische Datenstrukturen) meiner Erfahrung nach am schnellsten und einprägsamsten mit einer paar Grafiken gezeigt werden. Sowohl den generellen Aufbau der Datenstruktur, die Zusammenhänge in der Struktur als auch den Ablauf der Operationen kann man mit Diagrammen so präsentieren, dass jeder Neuling auf Anhieb versteht was das wichtige daran ist und wie die Operationen prinzipiell laufen müssen. Die für einen Neuling spannende Frage ist dann, wie bzw. wo findet sich die Operation im Code wieder. Wobei ihm das vorhergehende konzeptionelle Verständnis der jeweils untersuchten Funktionalität aus dem Diagramm enorm hilft, die einzelnen Anweisungen zuzuordnen. Mal ganz davon abgesehen, dass derartige Grafiken auch eine nicht zu unterschätzende Hilfe beim Debuggen sind, wenn der Neuling wieder mal die Reihenfolge der Pointer-Manipulationen so durcheinander gebracht hat, dass er sich einen Pointer unter dem Allerwertesten weggeschossen hat, den er später noch brauchen würde. Ein Buch, welches bei der Besprechung von dynamischen Datenstrukturen kein einzige derartige Grafik/Diagramm zeigt, ist m.M. nach in diesem Bereich unbrauchbar. Wir Mensch sind nun mal visuelle Tiere. Ich kann nur hoffen, dass der Autor in diesem Bereich noch nachbessert. So ist das nicht Fisch, nicht Fleisch.
Rufus Τ. Firefly schrieb: >> cc ist unter Unix-artigen Systemen >> traditionell der Link auf den default-Compiler des Systems. > > Wenn man die Scheuklappen absetzt, erkennt man, daß es tatsächlich auch > nicht-unixoide Betriebssysteme gibt. Ich weiß das. Ich würde da eher dir die Scheuklappen vorwerfen. Denn für dich gibt's offenbar nur zwei Systeme, nämlich Windows und Linux, denn du behauptest ja, es funktioniere nur auf genau einem Betriebssystem, weil es mit Windows nicht geht. Ich behaupte dagegen, daß es nicht mit allen, aber vielen Betriebssystemen geht. > Und auch wenn sich MS Mühe gibt, Windows immer unbedienbarer zu machen, > so weit verschwunden, daß es irrelevant ist, ist es noch lange nicht. Richtig. Aber wenn man ein C-Tutorial so aufbaut, daß es mit allen Betriebssystemen und Compilern funktioniert, sind 90% davon Beschreibungen von IDEs, Makefiles und Compiler-Optionen, und das Erlernen der Sprache geht dazwischen unter. Der Autor hat sich halt dazu entschieden, sich auf Unixoide Systeme zu konzentrieren.
Rolf Magnus schrieb: > Denn für > dich gibt's offenbar nur zwei Systeme, nämlich Windows und Linux, denn > du behauptest ja, es funktioniere nur auf genau einem Betriebssystem, > weil es mit Windows nicht geht. Wo soll ich so etwas behauptet haben? Ich schrieb
1 | Obendrein ist das Tutorial nur unter unixoiden |
2 | Betriebssystemen verwendbar. |
> Aber wenn man ein C-Tutorial so aufbaut, daß es mit allen > Betriebssystemen und Compilern funktioniert, sind 90% davon > Beschreibungen von IDEs, Makefiles und Compiler-Optionen Nein. Wenn man ein C-Tutorial so aufbaut, daß es universell verwendbar ist, dann geht es auf diese Dinge überhaupt nicht ein. Sondern nur auf die Programmiersprache an sich, nicht, wie man den Compiler bedient.
Rufus Τ. Firefly schrieb: > Rolf Magnus schrieb: >> Denn für dich gibt's offenbar nur zwei Systeme, nämlich Windows und >> Linux, denn du behauptest ja, es funktioniere nur auf genau einem >> Betriebssystem, weil es mit Windows nicht geht. > > Wo soll ich so etwas behauptet haben? Ich beziehe mich auf diese Aussage: Rufus Τ. Firefly schrieb: > Ein gutes C-Buch konzentriert sich auf die Sprache, nicht auf die > Nutzung eines spezifischen Compilers unter einem spezifischen > Betriebssystem. Rufus Τ. Firefly schrieb: > Nein. Wenn man ein C-Tutorial so aufbaut, daß es universell verwendbar > ist, dann geht es auf diese Dinge überhaupt nicht ein. Sondern nur auf > die Programmiersprache an sich, nicht, wie man den Compiler bedient. Du findest es also besser, wenn man dem Lernenden gar nicht sagt, wie er aus seinem Code ein lauffähiges Programm bekommt, als wenn man es ihm zumindest für manche, aber eben nicht für alle Systeme sagt? C kann man nicht als "Trockenübung" lernen. Man muß Code schreiben und ausprobieren, also muß man zwingendermaßen die Nutzung eines Compilers zusammen mit der Sprache lernen.
Rolf Magnus schrieb: > Du findest es also besser, wenn man dem Lernenden gar nicht sagt, wie er > aus seinem Code ein lauffähiges Programm bekommt, als wenn man es ihm > zumindest für manche, aber eben nicht für alle Systeme sagt? Ob das besser ist oder nicht, will ich nicht beurteilen. Aber ja, genau so haben wir das damals gelernt. Die Bedienung des Compilers, Switches etc. musste man sich dann eben aus den Dokus rauslesen. Meiner Erinnerung nach gab es im Ur-K&R keine einzige Zeile darüber, wie Editor, Compiler, Linker aufzurufen sind. C haben wir trotzdem damit gelernt.
Rolf Magnus schrieb: > also muß man zwingendermaßen die Nutzung eines Compilers > zusammen mit der Sprache lernen. Lernen muss man das, es hat aber mit der Sprache garnichts zu tun, bei Pascal ist das nicht anders als bei C. Andrerseits hat man ja in den meisten Fällen die Wahl unter mehreren IDEs oder auch garkeiner, man kann das auch zu Fuss erledigen oder sich ein Makefile schreiben - aber die Make-Logik ist ganz sicher nicht etwas was zur Sprache gehört, das ist vielmehr eine eigene Sprache. Es ist auch für einen Lernenden nicht hilfreich, wenn man ihm weismacht, C wäre etwas Buntes mit Menüs und Buttons. Gruss Reinhard
Dennis S. schrieb: > da "C von A bis Z" von Jürgen Wolf völlig verpönt ist und das KR-Buch > meines Erachtens einfach nicht mehr Up-To-Date ist, suche ich oft nach > neuen Quellen für die Fortbildung in C. Mal eine frage von einem abseluten C-Dummy: Was ist das "KR Ruch"? Bei Ama***on hab ich nichts passendes gefunden...
Kernighan&Ritchie Programming in C (oder in der deutschen Version: The C Programming Languag) Der C-Klassiker schlechthin. http://de.wikipedia.org/wiki/The_C_Programming_Language
:
Bearbeitet durch User
Karl Heinz Buchegger schrieb: > (oder in der deutschen Version: The C Programming Languag[e]) Das Buch heißt in der deutschsprachigen Ausgabe "Programmieren in C". ISBN 978-3446154971
Rufus Τ. Firefly schrieb: > Karl Heinz Buchegger schrieb: >> (oder in der deutschen Version: The C Programming Languag[e]) > > Das Buch heißt in der deutschsprachigen Ausgabe "Programmieren in C". > > ISBN 978-3446154971 Oh, danke. Da ist mir was durcheinander gekommen. Ich wollte eigentlich den englischen Titel noch richtig stellen und hab den deutschen verändert. Heut ist wieder mal ein Tag, an dem sollte man gar nicht erst aufstehen :-)
Karl Heinz Buchegger schrieb: > Heut ist wieder mal ein Tag, an dem sollte man gar nicht erst aufstehen Das heisst du liegst noch im Bett und surfst da im Forum? :-)
Karl Heinz Buchegger schrieb: > Meiner Erinnerung nach gab es im Ur-K&R keine einzige Zeile darüber, wie > Editor, Compiler, Linker aufzurufen sind. Ich sach mal, zu Zeiten des Ur-K&R brauchte man das auch nicht zu wissen. Da hat man seinen Lochkartenstapel mit dem Programm ins Eingangsfach des Rechenzentrums abgelegt, und durfte sich dann ein paar Tage später den Ausdruck abholen. Der war dann lkeider meistens arg kurz, meistens in der Art: "Syntax Error in line #2"... Oliver
Oliver schrieb: > Der war dann lkeider meistens arg > kurz, meistens in der Art: "Syntax Error in line #2"... Zu Zeiten der 2. Auflage von K&R gabs sogar schon Turbo-C. Die erste IDE, die ihren Namen wirklich verdiente und die dem damaligen MS-C ganz schön den Rang abgelaufen hat. :-)
Damit ist dieses Buch gemeint: http://www.amazon.de/Programmieren-C-Reference-Manual-deutscher-Sprache/dp/3446154973/ref=sr_1_1?ie=UTF8&qid=1381824342&sr=8-1&keywords=programmieren+in+c+kernighan+ritchie
Udo Schmitt schrieb: > Zu Zeiten der 2. Auflage von K&R gabs sogar schon Turbo-C. Je nun, zu Zeiten der ersten aber nicht. > Die erste IDE, die ihren Namen wirklich verdiente Nur der Vollständigkeit halber: Das war Turbo-Pascal. Turbo-C kam erst viel später. Oliver
Udo Schmitt schrieb: > Zu Zeiten der 2. Auflage von K&R gabs sogar schon Turbo-C. Erstaunlicherweise implementierte Turbo-C 2.0 (Anfang '89) bereits den in der 2. Auflage des K&R beschriebenen C-Standard und nicht das damals schon arg steinzeitliche "K&R-C". Das war die erste brauchbare C-IDE, und das war einer der seltenen Fälle, wo die eingedeutschte Version dem englischen Original deutlich überlegen war, insbesondere die Dokumentation. Die hatte Arne Schäpers übersetzt, wenn nicht eher komplett neugeschrieben.
Rufus Τ. Firefly schrieb: > Die hatte Arne Schäpers übersetzt, wenn nicht eher komplett > neugeschrieben. Die Firma Heimsoeth war ja auch weit mehr als bloss ein Distributor von US-Paketen. So viel Service würde jeden heutigen Softwarevertrieb binnen Tagen in den Ruin treiben. Gruss Reinhard
Oliver schrieb: > Das war Turbo-Pascal. Turbo-C kam erst > viel später. Ich meinte für C. Turbo Pascal hatte ab Version 4 ine gute IDE. Rufus Τ. Firefly schrieb: > Das war die erste brauchbare C-IDE, und das war einer der seltenen > Fälle, wo die eingedeutschte Version dem englischen Original deutlich > überlegen war, insbesondere die Dokumentation. Ich hatte die 2.0 Doku. Das war wenn ich mich erinnere fast ein drittel Meter Bücher. Von sowas träumt man heutzutage.
Ich hab vor ein paar Jahren einen laufenden Meter 3.0-Doku ins Altpapier gegeben. Der halbe Zemtimeter K&R steht aber immer noch im Regal ;) Oliver
Oliver schrieb: > Ich hab vor ein paar Jahren einen laufenden Meter 3.0-Doku ins Altpapier > gegeben. > > Der halbe Zemtimeter K&R steht aber immer noch im Regal ;) Jepp, das gleiche bei mir. Die Turbo C 3.0 Doku war noch besser. Früher war halt alles besser, da habe ich noch dynamische Listen und Hash-Tabellen selbst programmiert, heute sage ich nur noch "new HashMap()" und bin schon fertig. :-)
Udo Schmitt schrieb: > Ich hatte die 2.0 Doku. Das war wenn ich mich erinnere fast ein drittel > Meter Bücher. Nein, das war später. Die Dokumentation von "Borland C++ 3.0", das war ein fetter Schuber, eher fast ein halber Meter. Turbo C 2.0 kam mit zwei Handbüchern, die zusammen keine 10 cm dick waren. Das englische Original war noch dünner.
Rufus Τ. Firefly schrieb: > Nein, das war später. Die Dokumentation von "Borland C++ 3.0", das war > ein fetter Schuber, eher fast ein halber Meter. > > Turbo C 2.0 kam mit zwei Handbüchern, die zusammen keine 10 cm dick > waren. Das englische Original war noch dünner. Kann sein, war das dann TurboC++ für Windows mit dem ganzen Packen an farbigen Büchern? Sorry dann hatte ich das verwechselt. Habe die ganzen Pakete (Pascal und C) vor 3-4 Jahren endlich schweren Herzens entsorgt :-(
Udo Schmitt schrieb: > Kann sein, war das dann TurboC++ für Windows mit dem ganzen Packen an > farbigen Büchern? Möglich, richtig fett war Borland C++, aber es gab zeitgleich eine mit reduziertem Umfang, die noch als Turbo C++ vertrieben wurde. Das Windows-Geraffel hat das so aufgebläht. Das erste Turbo C++ hingegen kam mit hellrosa oder hellgrünen Handbüchern und war in einem vielleicht 10cm dicken Schuber untergebracht. Die deutschen Handbücher waren im Gegensatz zu denen von Turbo-C 2.0 deutlich schlechter.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.