Hallo, zusammen. Ich bin auf der Suche nach einer guten Einstiegsliteratur für die Programmiersprache C. Im Internet finde ich leider häufig, so meine Erfahrung, eher nur Literatur, die mal schnell in C rein hüpfen will. Von anderen Rezensenten kriege ich dann auch immer wieder mit, dass die meisten modernen C-Einstiegsbücher nur so von Fehlern durchtränkt sind. Daher hoffe ich, dass hier einige vielleicht gute C Einstiegsliteratur kennen, die vor allem die Konzepte von C für Anfänger ausführlich erklärt und dabei auch die Praxis nicht außer Acht lässt. Vielleicht liegt es an mir, dass die Theorie mich fesselt, aber so war das bei mir schon immer. Ich verstehe und arbeite besser, wenn ich den Hintergrund genauer verstehe. Ich hoffe einige haben ein paar gute Empfehlungen. Vielen Dank im Voraus!
Gute Konzepte? Da musst du diejenigen fragen, die mit 1-2 Leuten Systeme zustande bringen, für die andere Firmen 100 Leute und 10 mal so viele Programmzeilen brauchen. Nicht die Eunuchen, die Lehrbücher schreiben, weil sie sonst nichts zustande bringen. Die beste Literatur sind die Quelltexte der genialen Programme. Das alte Mysql oder Ghostscript oder so etwas. Programme, die du locker durchlesen kannst. Bei denen du glaubst, das sei doch alles trivial.
Ein Kommentar schrieb: > Gute Konzepte? Da musst du diejenigen fragen, die mit 1-2 Leuten > Systeme > zustande bringen, für die andere Firmen 100 Leute und 10 mal so viele > Programmzeilen brauchen. Nicht die Eunuchen, die Lehrbücher schreiben, > weil sie sonst nichts zustande bringen. > > Die beste Literatur sind die Quelltexte der genialen Programme. Das alte > Mysql oder Ghostscript oder so etwas. Programme, die du locker > durchlesen kannst. Bei denen du glaubst, das sei doch alles trivial. Also ich weiß nicht so recht was diese Antwort soll. Sie hilft hier leider nicht weiter. Woher soll ich denn einfach Programmcode lesen und verstehen, wenn mir gerade die Grundlagen zu dem Thema fehlen und ich nicht mal weiß, was besagter Programmcode macht? Das ist doch Unfug. > Programme, die du locker durchlesen kannst. Bei denen du glaubst, das sei doch >alles trivial. Ich habe nirgendwo behauptet, dass das alles trivial sei.
:
Bearbeitet durch User
Der Standard fuer C waere eigentlich : Kernigham & Ritchie
Auch wenn’s nicht taufrisch aussieht, sind die Erfinder der Sprache keine schlechte Referenz: https://www.amazon.de/Programming-Language-Prentice-Hall-Software/dp/0131103628/ref=sr_1_1?ie=UTF8&qid=1366064447&sr=8-1&keywords=c+ritchie&tag=comput0d-21 Oliver
Kaje F. schrieb: > Ich habe nirgendwo behauptet, dass das alles trivial sei. So war es auch nicht gemeint. C-Code ist dann sehr gut, wenn er sich liest, als sei alles trivial. Und ist nicht klar, brauchst Du ein Buch zum Programmieren lernen? Dann nimm dir einen c-compiler und ein Buch mit interessanten Themen/Beispielen. Oder kannst Du programmieren, kennst EBNF und suchst jetzt C theoretisch zu erforschen? Dann nimm einen alten C standard (90-99) und ließ ihn durch.
Hallo, wie andere schon geschrieben haben ist "The C Programming Language" 2nd ed. von Kernighan und Ritchie immer noch eines der besten Bücher. Es gibt aber auch, meiner Meinung nach, gute online tutorials (auf englisch). Meine Favoriten: James Aspnes, Notes on Data Structures and Programming Techniques http://www.cs.yale.edu/homes/aspnes/classes/223/notes.html Stanford CS Education Library http://cslibrary.stanford.edu/ http://cslibrary.stanford.edu/101/EssentialC.pdf http://cslibrary.stanford.edu/102/PointersAndMemory.pdf C Programming https://www.eskimo.com/~scs/cclass/cclass.html C Programming Notes https://www.eskimo.com/~scs/cclass/notes/top.html Oder falls es doch ein (dickes) Buch sein soll: Stephen Prata, "C Primer Plus, 6th Ed" Die Suchmaschine liefert auch ein pdf der 5th Ed. (University of Cincinnati). Aber das Herunterladen ist natürlich verboten.
Ich würde die folgenden beiden Bücher empfehlen: "Effective C" von Robert Seacord "Modern C" von Jens Gustedt Im Gegensatz zum oben empfohlenen "The C Programming Language" beziehen sich diese beiden auf aktuellere Sprachstandards. Beide Autoren sind auch in der Normierung der Sprache C aktiv. P.S.: Auch der C Sprachstandard selbst ist halbwegs lesbar (nicht ganz so gut wie der von Scheme, aber immer noch deutlich besser als bei den meisten Sprachen).
:
Bearbeitet durch User
Kaje schrieb: > Daher hoffe ich, dass hier einige vielleicht gute C Einstiegsliteratur > kennen, die vor allem die Konzepte von C für Anfänger ausführlich > erklärt und dabei auch die Praxis nicht außer Acht lässt. Du brauchst mindestens 2 Bücher. Eines über die Sprache C, wie den Kernighan&Ritchie, der immer noch eines der besten und kürzesten Einstiegsbücher ist. Den ganzen modernen C Firlefanz hast du da nicht drinnen, aber das ist alles erst mal unwichtig. Dann brauchst du ein Buch über Algorithmen und Datenstrukturen, wie den Sedgewick "Algorithm in C", der dir die benötigten Datenstrukturen (und Denkstrukturen) nahebringt. Beides sind sehr gute und praktische Bücher, die ich empfehlen kann. Gruss, Udo
> von Kernighan und Ritchie immer noch eines der besten Bücher Jain... die Ansichten haben sich inzwischen geändert. Heutzutage haben wir doch ganz andere Konzepte. Damals wollten K&R ein Mehrbenutzersystem in 1MB quetschen und nahmen dafür fehleranfälligen Code in Kauf. Heutzutage haben wir Gigabyte an Programmcode. Finden die Fehler nicht mehr. Wir benutzen Konzepte, die zumindest einen Teil der Fehler vermeiden. Ich befürchte, das einzige man aus K&R noch lernen kann, ist die Sache mit Pointen und Arrays. > Woher soll ich denn einfach Programmcode lesen... Das lesen ist kein Problem. Hast du mit einem beliebigen Internettutorial in ein paar Tage drauf. Das Problem liegt wo anders. Du musst deine Konzepte so anlegen, dass du die Stärken der Sprache und der Libraries ausnutzen kannst. Erst gar nicht über die Unzulänglichkeiten stolperst.
Ein Kommentar schrieb: >> von Kernighan und Ritchie immer noch eines der besten Bücher > > Jain... die Ansichten haben sich inzwischen geändert. Heutzutage haben > wir doch ganz andere Konzepte. Und welche wären das konkret in C? Klingt so als hättest du keine Ahnung von C?
Kaje F. schrieb: > Woher soll ich denn einfach Programmcode lesen und > verstehen, wenn mir gerade die Grundlagen zu dem Thema fehlen und ich > nicht mal weiß, was besagter Programmcode macht? Das mußt Du Dir erarbeiten. Arschbacken zusammen kneifen und durchkämpfen. Oder glaubst Du etwa, jemand kaut Dir was mit einem Buch mundgerecht vor und Du kannst das dann auch? Was meinst Du, wo all die ihr Wissen herhaben, die guten Code schreiben können? Sicher nicht vom Bücherlesen. Ist wie Eiskunstlaufen: Du kannst 1000ende Bücher darüber lesen, selber machen mußt Du selber lernen. Erfahrung kann man nicht weitergeben. Die muß man sich selbst aneignen. Google mal nach Design Patters und Design Principles. Die sind sprachunabhängig, aber wertvoll, sie verstanden zu haben.
Wer 2022 noch mit dem K&R C lernt, hat die Kontrolle über sein Leben verloren ... (das war der Troll zum Sonntag) Im Ernst: Als historisches Dokument ist der K&R sicher sehr interessant und man kann sich den auf jeden Fall mal ins Regal stellen. Aber die Welt hat sich nun mal - sogar in C - weiter gedreht. Für die Basics sollten sich im Netz genügend und vor allem halbwegs aktuelle Informationen finden lassen. Zum Thema C gibt es halt leider sehr viele Bücher, die einfach Schrott sind ... Wenn es dann in die Tiefe geht, lernt man auch viel aus den Sprachstandards selbst oder auch aus den Handbüchern von Compilern und statischen Analyse-Tools. Wenn Embedded ein Thema ist, kann man sich für ne schmale Mark auch ein Exemplar des MISRA-C-Standards holen. Egal was man von diesem Standard halten mag: Die Code-Beispiele und Erklärungen ("Rationals") zu den einzelnen Regeln sind sehr lehrreich und Vertiefen das Verständnis. Vor allem über die dunklen Ecken von C ;) So oder so wirst du aber am wahrscheinlichsten vernünftige Lernergebnisse erzielen, wenn du ein konkretes Projekt hast, an dem du arbeiten und dich von Problem zu Problem durch hangeln kannst. Auf jeden Fall kann ich mir kaum vorstellen, dass nur "Programmcode lesen" einen nachhaltig weiter bringt.
:
Bearbeitet durch User
Markus L. schrieb: > Das mußt Du Dir erarbeiten. Arschbacken zusammen kneifen und > durchkämpfen. Ach was... 🙄 Das weiß ich selber auch. Aber erarbeiten tut man schon mal, indem man eine gute Referenz hat, an der man sich orientieren kann. Und da ich unerfahren in diesem Gebiet bin, kann ich schlecht beurteilen welche Bücher über C nun gut oder schlecht sind und es wäre blödsinnig jetzt irgendeinen voreiligen Unfug anzustellen und nachher mir falsche Gewohnheiten anzugewöhnen, die danach wieder schwer abzugewöhnen sind. Genau deswegen frage ich doch euch, die erfahrener sind auf dem Gebiet. Markus L. schrieb: > Oder glaubst Du etwa, jemand kaut Dir was mit einem Buch > mundgerecht vor und Du kannst das dann auch? Nein, das tue ich selbstverständlich nicht und man sieht doch auch in meiner Frage, dass es mir eben nicht darum geht irgendwas vorgekaut zu bekommen in einem Buch und schon gar nicht irgendwas einfach auswendig zu lernen, sondern zu verstehen :) Daher weiß ich nicht so ganz auf was deine Frage abzielt (oder andeuten möchte). Ich meine... das weiß ich offensichtlich ja wohl selbst :P Ich bin nicht mehr drei. Markus L. schrieb: > Was meinst Du, wo all die > ihr Wissen herhaben, die guten Code schreiben können? Sicher nicht vom > Bücherlesen. Das mag ja sein, aber sicher haben die das Wissen auch nicht einfach nur, indem sie ohne Referenz und ohne Vorwissen einfach Code angeschaut haben. Sprachen lernt man schließlich auch nicht indem man einfach nur Wörter der Fremdsprache anschaut, sondern zusätzlich ein Wörterbuch zur Hand hat, in welchem man die Wörter der Fremdsprache in die eigene übersetzen kann und eine Referenz hat bzgl. der grammatikalischen Struktur der Fremdsprache damit man auch selber Sätze bilden kann in dieser und dann erst kann man sich Sätze von anderen in der Fremdsprache anschauen und davon entsprechend lernen. Und nochmal: Hier redet ja niemand nur vom Bücherlesen. Wenn ich nur Bücher hätte lesen wollen, hätte ich mir ja auch gleich irgendein X-beliebiges C Buch kaufen können zum Zeitvertreib und das Thema gar nicht erst eröffnen müssen :P Markus L. schrieb: > Google mal nach Design Patters und Design Principles. Die sind > sprachunabhängig, aber wertvoll, sie verstanden zu haben. Vielen Dank :) Ich habe es mir mal notiert.
P. S. schrieb: > Für die > Basics sollten sich im Netz genügend und vor allem halbwegs aktuelle > Informationen finden lassen. Zum Thema C gibt es halt leider sehr viele > Bücher, die einfach Schrott sind ... Richtig. Und daher ist für die Basics immer noch der K&R, 2. Ausgabe, eine gute Wahl. Für die modernen Erweiterungen dann noch eins der o.a. Bücher. P. S. schrieb: > Aber die Welt hat sich nun mal - sogar in C - weiter gedreht. Natürlich hat sich die Welt ernsthaft weitergedreht. All die anderen Programmiersprachen wurden ja nicht erfunden, weil C so toll ist. Oliver
P. S. schrieb: > Wer 2022 noch mit dem K&R C lernt, hat die Kontrolle über sein > Leben > verloren ... (das war der Troll zum Sonntag) Im Ernst: Als historisches > Dokument ist der K&R sicher sehr interessant und man kann sich den auf > jeden Fall mal ins Regal stellen. Vielen Dank für deine Antwort erstmal :) Nun davon das K&R schon veraltet ist habe ich auch schon öfter gelesen bei meiner Recherche gestern, deshalb war ich mir nicht so sicher, und hab mal abgewartet was andere Erfahrene hier noch so sagen. Ich habe aber trotzdem mal vor das K&R C Buch im Hinterkopf zu behalten als zukünftige Referenz, weil ist ja immerhin von den Machern selbst, wenn ich das richtig sehe. P. S. schrieb: > Aber die Welt hat sich nun mal - sogar in C - weiter gedreht. Für die > Basics sollten sich im Netz genügend und vor allem halbwegs aktuelle > Informationen finden lassen. Zum Thema C gibt es halt leider sehr viele > Bücher, die einfach Schrott sind ... Ja, ich habe da auch viele Rezensionen gelesen von welchen, die da explizit vor solchen Büchern gewarnt haben. Nun ja, nach Tutorials habe ich schon gesucht, aber ich fand, dass mir da immer so ein bisschen der Hintergrund gefehlt hat bzw. man da gewisse Dinge einfach für selbstverständlich genommen hat, obwohl ich fand, dass man dazu hätte ausführlicher sein können. Oder ich habe bisher nur schlechte Tutorials gefunden. P. S. schrieb: > Wenn es dann in die Tiefe geht, lernt man auch viel aus den > Sprachstandards selbst oder auch aus den Handbüchern von Compilern und > statischen Analyse-Tools. Ja, ich glaube ich verfolge jetzt zunächst mal den folgenden Ansatz: Ein gutes C-Tutorial finden, das die Basics beibringt, danach wenn es in die Tiefe geht, dann deinen Vorschlag umsetzen und dabei vorher auch mal natürlich konkrete Projekte mal umsetzen. Da hätte ich schon einige kleine Ideen. Ich denke nämlich auch, dass das sehr lehrreich sein kann. Dabei kann ich mir dann auch mal Code aus anderen Projekten ansehen und wie die bestimmte Probleme gelöst haben, usw.
Kaje schrieb: > Vielleicht > liegt es an mir, dass die Theorie mich fesselt, aber so war das bei mir > schon immer. Dann such nach Programmiertechniken oder Methodiken und fachspezifischen Lösungsansätzen, aber nicht nach eine konkreten Programmiersprache wie 'C'. Das Stichwort dazu ist "Software-Engineering" Wahrscheinlich musste auch das Anwendungsgebiet (Embedded,DSP,Datenbanken,App,OS) benennen um das Zutreffende unter den teilweise widersprechenden Ansätzen (bspw. Hardwarespezif. vs. Abstraktion) zu finden. Für den Anfang ist vielleicht das hilfreich: ISBN:978-3897215672 Ansonsten schauen was hier diesbezüglich durchgekaut wurde: https://www.google.com/search?q=Software+engineering+site%3Amikrocontroller.net
My favoured bookz about: "Effective C", Robert Seacord "Modern C", Jens Gustedt "21st Century C", Ben Klemens "C Programming - A Modern Approach", K. King "Moderne_C-Programmierung", Helmut Schellong You can find all bookz here libgen.rs ! Ein Kommentar schrieb: > Die beste Literatur sind die Quelltexte der genialen Programme. Ganz dick unterstrichen, immer und immer wieder diagonal source code lesen!!! Damit lernt man sehr schnell zu unterscheiden zwischen gut, weniger gut und crap.
Kaje schrieb: > Ich hoffe einige haben ein paar gute Empfehlungen. Du schreibst eingangs viel unsinniges Zeug, also auch mal strukturierter Denken lernen UND selbstwirksam werden!
Apollo M. schrieb: > My favoured bookz about: > > "Effective C", Robert Seacord > "Modern C", Jens Gustedt > "21st Century C", Ben Klemens > "C Programming - A Modern Approach", K. King > "Moderne_C-Programmierung", Helmut Schellong > > You can find all bookz here libgen.rs ! Vielen Dank, die Bücher hab ich mir mal gerade notiert :) Apollo M. schrieb: > Du schreibst eingangs viel unsinniges Zeug, also auch mal strukturierter > Denken lernen UND selbstwirksam werden! Welche Stelle genau war denn an meinem Text deiner Meinung nach unsinnig? Das ich den Hintergrund beleuchtet habe und wiedergegeben habe was ich bisher selbst recherchieren konnte oder was genau? Ich jedenfalls sehe keinen Grund da mein strukturiertes Denken in Zweifel ziehen zu müssen (lernen tut man jedoch immer), denn ich kenne mich selber gut genug und kenne meine Fähigkeiten. Selbstwirksamkeit besitze ich, aber ich bin auch nicht naiv übermütig, weshalb ich hier auch nachfrage. Aber trotzdem danke nochmals für die Buchempfehlungen :)
Lerninstructor schrieb: > Dann such nach Programmiertechniken oder Methodiken und fachspezifischen > Lösungsansätzen, aber nicht nach eine konkreten Programmiersprache wie > 'C'. Das Stichwort dazu ist "Software-Engineering" Ahh, verstehe :) Ich behalte das mal im Hinterkopf. Auch dir danke vielmals für die Buchempfehlung. Und ja, ich werde mich mal durch die Seite durchstöbern. Da gibt es bestimmt viel zu finden.
Erlenkötter (ist didaktisch aufgebaut) K+R und ein Unix zum Üben.
Kaje schrieb: > Ich bin auf der Suche nach einer guten Einstiegsliteratur für die > Programmiersprache C. Da erhebt sih die Gegenfrage: Von welchem Kenntnis-Stand gehst du aus? Im Grunde braucht man 3 Dinge: 1. Kenntnisse, wie man ein Ziel erreichen kann, also Algorithmen 2. Ein Gefühl für sinnvolle Ordnung, also Sinn für Struktur in einer Software 3. Kenntnis der formalen Schreibweise einer Programmierspeache, also wie man etwas in der betr. Sprache formuliert. Das ist auch zum Verstehen beim Lesen von Quellcode vonnöten. Punkte 1 und 2 sind sprachunabhängig und Punkt 3 bringt rein garnix, wenn man zumindest bei Punkt 1 nix weiß. Also nochmal: was weißt du bereits? Das ist entscheidend für weitere Ratschläge. Ansonsten: Es ist immer ein guter Weg, sich irgendwelche Software-Projekte vorzunehmen, die man dann in der betreffenden Programmiersprache macht. Dabei stößt man wie von selbst auf all die Dinge, die man lernen muß. Und wenn man dann das Projekt lauffähig hat, fällt einem auf, daß man an tausend Stellen es hätte besser schreiben können. Das ist mMn wesentlich besser, als existierendes Zeugs nachäffen zu wollen. W.S.
Kaje F. schrieb: > Sprachen lernt man schließlich auch nicht indem man einfach nur > Wörter der Fremdsprache anschaut, sondern zusätzlich ein Wörterbuch zur > Hand hat, in welchem man die Wörter der Fremdsprache in die eigene > übersetzen kann und eine Referenz hat bzgl. der grammatikalischen > Struktur der Fremdsprache damit man auch selber Sätze bilden kann in > dieser und dann erst kann man sich Sätze von anderen in der Fremdsprache > anschauen und davon entsprechend lernen. Ja, so die klassische Lehre. Eine Fremdsprache lernt man aber am schlechtesten mit Wörter- und Grammatikbuch. Ein Lexikon in der Fremdsprache bringt 1000x mehr als ein Wörterbuch. Es befreit einem vom Korsett, immer das Wort in der eigenen Muttersprache im Kopf haben zu müssen und in der eigenen Muttersprache zu denken. Eine Sprache muß gesprochen werden, am besten zusammen mit Muttersprachlern. So, wie ich auf der Schule Fremdsprachen gelehrt bekam, Wörter und Grammatikregeln pauken, viel zu selten im Sprachlabor, viel zu wenig Konversation, habe ich in 13 Jahren Schulenglisch weniger mitgenommen als in einem Jahr mit meiner damaligen Freundin aus England zusammen in einer Clique aus Briten, Iren und Amerikanern.
"habe ich in 13 Jahren Schulenglisch weniger mitgenommen als in einem Jahr mit meiner damaligen Freundin aus England zusammen in einer Clique aus Briten, Iren und Amerikanern." Das hat aber noch ganz andere Gründe, weshalb das deutlich mehr bringt. Ganz so einfach herunterbrechen, wie du es gemacht hast, kann man es nicht. So einfach ist die Welt dann doch nicht;-) Nicht umsonst gibt es extra das Auslandsjahr in England z.B: Ist jetzt also kein wirklicher Geheimtipp
Ein Problem ist wohl auch - naja, dass z.B. K+C super mit gewissen technischen Sachen, für die man sich vielleicht interessiert, interagiert. D.h. nicht zu knappes Interesse für gewisse technische Dinge wären so schlecht nicht.
Markus L. schrieb: > Ja, so die klassische Lehre. Eine Fremdsprache lernt man aber am > schlechtesten mit Wörter- und Grammatikbuch. Ein Lexikon in der > Fremdsprache bringt 1000x mehr als ein Wörterbuch. > [...] habe ich in 13 Jahren Schulenglisch weniger > mitgenommen als in einem Jahr mit meiner damaligen Freundin aus England > zusammen in einer Clique aus Briten, Iren und Amerikanern. Das eine schließt das andere jedoch nicht aus, Markus. Ergänzend: Jemanden ohne irgendwelche Vorkenntnis in einer Fremdsprache ins entsprechende Land hineinzuwerfen (und darauf bezog sich auch meine Analogie) wird ebenso wenig bringen wie nur die ganze Zeit Bücher über die Sprache zu lesen. In meiner Antwort oben ging es lediglich darum eben genau schon mal so ein gewisses Fundament zu haben, damit man dann in der Praxis (in der Analogie bleibend: im Ausland) dann richtige Erfahrungen sammeln kann. Aber ich hatte das ja oben schon erklärt gehabt, weshalb das jetzt nicht noch weiter ausgeführt werden muss, da off-topic. Praxis und Theorie sollten selbstverständlich Hand in Hand gehen. Das bestreitet hier niemand :)
:
Bearbeitet durch User
W.S. schrieb: > 1. Kenntnisse, wie man ein Ziel erreichen kann, also Algorithmen Wir sprechen hier von Heuristik? Ja, in der Hinsicht habe ich einige Erfahrung, also was das Finden von Lösungen zu Problemen angeht. Allerdings kann ich bisher Algorithmen allgemein z.B. nicht mathematisch formulieren oder in einer Programmiersprache umsetzen bzw. solche Ausdrücke lesen und verstehen, da die Sprache mir unbekannt ist. Würde man einige Algorithmen mir dagegen mit reinen Worten erklären, würde ich diese relativ schnell begreifen können. Auch könnte ich selbst Lösungen finden und diese verbal, in reinen Worten, ausdrücken, aber bisher, wie erwähnt, nicht mathematisch oder programmiersprachlich abbilden können. W.S. schrieb: > 2. Ein Gefühl für sinnvolle Ordnung, also Sinn für Struktur in einer > Software Also ich würde sagen, dass ich (allgemein) dieses Gefühl für sinnvolle Ordnung habe. Ich meine, mein Alltag alleine ist schon sehr strukturiert und geordnet. Aber einen Sinn für Struktur in einer Software habe ich natürlich nicht, da mir natürlich bisher die Kenntnis darüber fehlt, wie so eine sinnvolle Struktur in einer Software eigentlich auszusehen hat (ich könnte hier lediglich spekulieren und mutmaßen). Sprechen wir von oberflächlichen Dingen, also das, was der Endnutzer sieht, dann würde mir das leichter fallen, da ich durchaus sagen könnte, was man hier vielleicht besser strukturieren oder anordnen könnte. Sprechen wir dagegen vom Hintergrund, also das was sich softwaretechnisch alles abspielt, was der Endnutzer nicht sieht, dann fehlen mir dazu natürlich bisher noch die Kenntnisse. W.S. schrieb: > 3. Kenntnis der formalen Schreibweise einer Programmierspeache, also wie > man etwas in der betr. Sprache formuliert. Das ist auch zum Verstehen > beim Lesen von Quellcode vonnöten. Richtig. Wie erwähnt oben, hadert es bei mir auch an Punkt 3.
:
Bearbeitet durch User
Kaje F. schrieb: > Allerdings kann ich bisher Algorithmen allgemein z.B. nicht mathematisch > formulieren oder in einer Programmiersprache umsetzen Wenn du noch überhaupt keine Programmiersprache beherrschst, warum dann gerade C? In C programmiert man doch nur noch, weil die Umstände einen dazu zwingen. Hat man die Wahl, gibt es sehr viel Schöneres. Denn wie ja weiter oben schon angemerkt wurde, hat sich die Welt seit der Erfindung von C weitergedreht. Oliver
Kaje F. schrieb: > Wir sprechen hier von Heuristik? Ja, in der Hinsicht habe ich einige > Erfahrung, also was das Finden von Lösungen zu Problemen angeht. > Allerdings kann ich bisher Algorithmen allgemein z.B. nicht mathematisch > formulieren oder in einer Programmiersprache umsetzen bzw. solche > Ausdrücke lesen und verstehen, da die Sprache mir unbekannt ist. Ähem... nein. Wir (zumindest ich) spreche hier nicht von Heuristik. Das wäre etwa so, als wenn du "Germanistik" sagtest, wenn ich über Lösungsansätze wie z.B. das Horner-Schema reden würde. Bloß weil ich dabei die deutsche Sprache gebrauche. Ich gebe dir mal 2 Beispiele, eines sozusagen Low-Level aus mathematischer Sicht und ein zweites vom gegententeiligen Ende: 1. Als ich mit den PIC16 Controllern anfing, mißfiel mir der damalige 'PICALC' von Microchip so sehr, daß ich mir nen eigenen Assembler für diese µC schrieb. So ein Programm(chen) beinhaltet einige Algorithmen wie z.B. wie man Marken, Mnemonics und Parameter im Quelltext erkennt und wie man Ausdrücke in Parametern auseinander nimmt und wie man Markennamen mit zugehörigen Adressen sozusagen buchhalterisch führt und so weiter. 2. Als ich für den Empfang von Radiosignalen begann, mir digitale Bandfilter zu schreiben, habe ich lange Zeit daran gekaut, wie man Bandfilter mit gleichzeitiger Phasendrehung schreibt, weil man das für den Empfang von SSB Aussendungen benötigt. In beiden Beispielen ist die zum finalen Schreiben des Quelltextes benutzte Programmiersprache nebensächlich. Es kommt vielmehr darauf an, wie man das jeweilige Problem angeht und löst. So etwas kann man auf verschiedene Arten schriftlich machen. Struktogramme, Programmablaufpläne oder reine Prosa gehen. Ich habe so den Eindruck, daß es für dich am besten wäre, das mittlerweile recht alte Buch "Arithmetische Algorithmen der Mikrorechentechnik" von Lampe,Jorke,Wengel zu lesen. Das ackert zwar letztlich in Assembler auf dem Z80 herum, ist aber im Grunde numerisch-mathematisch angelegt und behandelt arithmetische Algorithmen recht gründlich. Allerdings ist dort von C kein Wort zu finden. Aber bedenke, daß die Grundlagen eben die Grundlagen sind für alles, was man darauf aufbauen kann. Ansonsten rate ich dir, zunächst erstmal die Begleitbücher zu Borlands Pascal 7 zu besorgen und mit dem Programmieren in Pascal mittels des aktuellen Delphi-Radstudios von Embarcadero zu beginnen. Anschließend schaust du dir die Sprachdefinition von C an. W.S.
Warum heute in C einsteigen? Back to the Dampfmaschine?
Pandur S. schrieb: > Der Standard fuer C waere eigentlich : Kernigham & Ritchie Auch C entwickelt sich weiter? Ist dann noch ein Buch von 1970 empfehlenswert?
jens schrieb: > Auch C entwickelt sich weiter? Ist dann noch ein Buch von 1970 > empfehlenswert? um C zu lernen finde ich es auch heute noch empfehlenswert (nach dem Buch wirst Du auch modernen C-Code lesen und verstehen können), um heutzutage Programmieren zu lernen eher nicht!
Stellt euch vor, ein Physikprofessor würde seinen Studenten sagen "Liest bloss keine Originalveröffentlichungen von Einstein oder Planck - das Zeug ist hundert Jahre alt!". Darum ist Informatik auch keine Wissenschaft ;-) Und die theoretische Informatik - das ist einfach nur angewandte Mathe. Der Rest erfindet immer wieder das Rad neu. Und es ist jedes mal noch runder als das Alte ;-)
jens schrieb: > Pandur S. schrieb: >> Der Standard fuer C waere eigentlich : Kernigham & Ritchie > > Auch C entwickelt sich weiter? Ist dann noch ein Buch von 1970 > empfehlenswert? Nein, natürlich nicht. Abgesehen davon, daß die erste Ausgabe erst 1978 erschien, wurde die auch nicht empfohlen. Und wie schon gesagt wurde, ist die Frage die falsche. Wenn es darum geht, modernes Programmieren zu lernen, lernt man gar kein C, wenn es (danach) darum geht, C zu lernen, gehen die Grundlagen auch mit dem K&R. Oliver
:
Bearbeitet durch User
klammern schrieb: > Stellt euch vor,... Nanana, die Naturgesetze gab es schon seit ewig, bloß die Leute hatten die noch nicht gekannt. Das ist der prinzipielle Unterschied zwischen Naturwissenschaften und Ingenieurswissenschaften. Aber Programmiersprachen sind kein Teil der Ingenieurswissenschaften. Und schon gar nicht haben sie etwas mit Naturwissenschaften zu tun. K&R steht für das C, was vor ANSI-C war. K&R sollte inzwischen gründlich in der Versenkung verschwunden sein. W.S.
W.S. schrieb: > Aber Programmiersprachen sind kein Teil der Ingenieurswissenschaften. > Und schon gar nicht haben sie etwas mit Naturwissenschaften zu tun. > Was aber nichts daran ändert, das C sich bewährt hat. Die Sprache ist einfach zu lernen, und die Tools und Bibliotheken sind sehr stabil. > K&R steht für das C, was vor ANSI-C war. K&R sollte inzwischen gründlich > in der Versenkung verschwunden sein. Und warum? Das wichtige am Ansi Standard 1990 ist eigentlich nur, das C ab da ein offizieller Standard ist. Inhaltlich hat sich nicht viel geändert, vor allem nichts was Compiler nicht schon Jahre zuvor unterstützt hatten. Die neuere K&R Edition richtet sich übrigens am Ansi Standard aus. Das sind gerade mal 200 Seiten die keine Fragen offenlassen. Im Vergleich dazu hat das 2013 Stroustrup Standard C++ Buch 1300 Seiten, und es bleiben nachher sehr viele Fragen offen. Eigentlich müsste man am Ende gleich wieder von vorne zu lesen anfangen. Alleine die eigentlich triviale Frage, wie man ein Objekt richtig kopiert, füllt viele Internetseiten...
udok schrieb: > Die neuere K&R Edition richtet sich übrigens am Ansi Standard aus. > Das sind gerade mal 200 Seiten die keine Fragen offenlassen. Ich bin auch der Meinung, dass es sich lohnt, den K&R 2ed zu lesen. Aber der lässt schon noch viele Fragen offen. Selbst der Standard mit ~700 Seiten lässt Fragn offen.
Apollo M. schrieb: > "C Programming - A Modern Approach", K. King Mombert H. schrieb: > Ich bin auch der Meinung, dass es sich lohnt, den K&R 2ed zu lesen. "C Programming - A Modern Approach", K. King ist eher das bessere buch, umfangreicher und mit vielen beispielen sowie c99 standard mit abgedeckt.
Apollo M. schrieb: > Mombert H. schrieb: >> Ich bin auch der Meinung, dass es sich lohnt, den K&R 2ed zu lesen. > > "C Programming - A Modern Approach", K. King ist eher das bessere buch, > umfangreicher und mit vielen beispielen sowie c99 standard mit > abgedeckt. Manchmal ist umgangreicher nicht besser, Mehr als 800 Seiten finde ich für ein C-Buch schon etwas viel. Mit 200 Seiten mehr ist man schon beim "Der C++ Programmierer" ;-)
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.